w3future.com

Javascript Y Combinator

Last Update

10/16/2005; 1:34:36 AM

Try XHTML 2.0
Src XHTML 2.0
RDF Metadata


Site Colors

Syn Atom 1.0
Syn RSS 0.91
Syn Subscribe

CC Licensed
Geo URL
With Radio

A famous lambda trick, in Javascript:

// The Y Combinator
var Y=function (gen) {
 return function(f) {return f(f)}(
  function(f) {
   return gen(function() {return f(f).apply(null, arguments)})})}
 
// An example
var fact=Y(function(h){
 return function(n){
  return (n<2)?1:n*h(n-1)}});

Not that you actually need a Y combinator of course. This is a shorter version the anonymous factorial function:

function(n){return (n<2)?1:n*arguments.callee(n-1)}