Edit in JSFiddle

((function (fn) {
    return (function (g) {
        return g(g);
    })(function (h) {
        return fn(function (n) {
            return h(h)(n);
        });
    });
})(function (f) {
    return function (n) {
        return n === 1 ? 1 : n + f(n - 1);
    };
}))(5); // => 15