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
Leave a comment...