RosettaCodeData/Task/Y-combinator/JavaScript/y-combinator-4.js

14 lines
259 B
JavaScript

function pseudoY(f) {
return function g() {
return f.apply(g, arguments);
};
}
var fac = pseudoY(function(n) {
return n > 1 ? n * this(n - 1) : 1;
});
var fib = pseudoY(function(n) {
return n > 1 ? this(n - 1) + this(n - 2) : n;
});