36 lines
496 B
Plaintext
36 lines
496 B
Plaintext
Y := function(f)
|
|
local u;
|
|
u := x -> x(x);
|
|
return u(y -> f(a -> y(y)(a)));
|
|
end;
|
|
|
|
fib := function(f)
|
|
local u;
|
|
u := function(n)
|
|
if n < 2 then
|
|
return n;
|
|
else
|
|
return f(n-1) + f(n-2);
|
|
fi;
|
|
end;
|
|
return u;
|
|
end;
|
|
|
|
Y(fib)(10);
|
|
# 55
|
|
|
|
fac := function(f)
|
|
local u;
|
|
u := function(n)
|
|
if n < 2 then
|
|
return 1;
|
|
else
|
|
return n*f(n-1);
|
|
fi;
|
|
end;
|
|
return u;
|
|
end;
|
|
|
|
Y(fac)(8);
|
|
# 40320
|