Integral Calculus in Lambda Calculus (Lisp)
A Lisp version of the code from this article –>
http://iam.elbenshira.com/archives/151_integral-calculus-in-haskell/
**********
For those that are unhappy about this not being a Symbolic Integration example then please read Norvig’s “Paradigms of Artificial Intelligence Programming – Case Studies in Common Lisp”, Chapter 8 – Symbolic Mathematics : A Simplification Program, 8.6 – Integration, page 252.
http://norvig.com/paip.html
**********
(defparameter *small-dx* 0.0001) (defun integrate(f a b) "integrate a function f from a to b" (defun integrate-gen(f x b dx sum) "the generalized inner function for tail-recursion. integrate a function f from x to b" (if (> x b) sum (integrate-gen f (+ x dx) b dx (+ sum (* (funcall f x) dx))))) (integrate-gen f a b *small-dx* 0)) (let ((f1 (lambda (x) 1)) (f2 (lambda (x) (expt x 2))) (f3 (lambda (x) (* x (exp (expt x 2)))))) (print (integrate f1 0 5)) (print (integrate f3 0 1)))