Lambda Calculus Factorial
by Paulpro
JavaScript
// Convert from natural number to Church numeral
function ntoc(n) {
var c = function(f) {
return function(x) {
return x;
}
};
for (var i = 0; i < n; i++)
c = (function(c) {
return function(f) {
return function(x) {
return f(c(f)(x));
}
}
})(c);
return c;
}
// Convert from Church numeral to natural number
function cton(c) {
return c(function(x) {
return x + 1;
})(0);
}
var x = ntoc(8);
var y =
// Lambda Calculus
(function(x) {
return (function(f) {
return (f(f))(x)
})(function(f) {
return function(n) {
return (function(n) {
return n(function(x) {
return function(x) {
return function(y) {
return y;
}
}
})(function(x) {
return function(y) {
return x;
}
});
})(n)(function(n) {
return function(f) {
return function(x) {
return f(x);
}
}
})(function(n) {
return (function(m) {
return function(n) {
return function(f) {
return m(n(f));
}
}
})(n)(f(f)(function(f) {
return function(x) {
return n(function(g) {
return function(h) {
return h(g(f));
}
})(function(u) {
return x;
})(function(u) {
return u;
})
}
}));
...