[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Functional programming
- From: David Kastrup <dak@...>
- Date: Wed, 21 Jan 2009 11:39:27 +0100
Hi, I just tried
print((function (f,x) return f(f,x) end)(function (f,x) if x>1 then return f(f,x-1)*x else return 1 end end,5))
120
And was impressed. This is a rather direct rendition of the functional
teaser "how do I use a recursive function call without permanent
binding" which is solved in Scheme by saying
((lambda(f x) (f f x))(lambda (f x) (if (> x 1) (* (f f (- x 1)) x) 1)) 5)
120
--
David Kastrup