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;
                        })
                    }
           ...