shawndumas

The Y Combinator (Crockford)

See Crockford’s article.

Head over to remy sharp’s JS Bin and play.

 1 var Y = function (le) {
 2   return ((function (f) {
 3     return f(f);
 4   })(function (f) {
 5     return le(function (x) {
 6       return f(f)(x);
 7     });
 8   }));
 9 };
10 
11 var factorial = Y(function (fac) {
12   return function (n) {
13     return (n <= 2) ? n : n * fac(n - 1);
14   };
15 });
16 
17 !!(factorial(5) === 120); //true
Filed under: combinator javascript
11
To Posterous, Love Metalab