31 lines
601 B
JavaScript
31 lines
601 B
JavaScript
|
|
/* @providesModule Fun */
|
|
|
|
function eq(x:number,y:number) { return true };
|
|
function sub(x:number,y:number) { return 0; }
|
|
function mul(x:number,y:number) { return 0; }
|
|
|
|
function fix(fold) {
|
|
var delta = function(delta) {
|
|
return fold(
|
|
function(x) { var eta = delta(delta); return eta(x); }
|
|
);
|
|
};
|
|
return delta(delta);
|
|
}
|
|
|
|
function mk_factorial() {
|
|
return fix(function(factorial) {
|
|
return function(n) {
|
|
if (eq (n, 1)) { return 1; }
|
|
return mul (factorial (sub (n, 1)), n);
|
|
};
|
|
});
|
|
}
|
|
|
|
|
|
var factorial = mk_factorial();
|
|
factorial("...");
|
|
|
|
module.exports = {fn: fix};
|