19 lines
401 B
Plaintext
19 lines
401 B
Plaintext
define y<S..., T...> (S..., (S..., (S... -> T...) -> T...) -> T...):
|
|
-> f; { f y } f call
|
|
|
|
define fac (Int32, (Int32 -> Int32) -> Int32):
|
|
-> x, rec;
|
|
if (x <= 1) { 1 } else { (x - 1) rec call * x }
|
|
|
|
define fib (Int32, (Int32 -> Int32) -> Int32):
|
|
-> x, rec;
|
|
if (x <= 2):
|
|
1
|
|
else:
|
|
(x - 1) rec call -> a;
|
|
(x - 2) rec call -> b;
|
|
a + b
|
|
|
|
5 \fac y say // 120
|
|
10 \fib y say // 55
|