Files
lci/bin/fibonacci-fixed-point.minifun

16 lines
333 B
Plaintext
Raw Normal View History

lambda n: int -> int =>
let fib = lambda f : (int -> int) -> int -> int =>
\ n : int -> int =>
if n == 0 then 0
else if n == 1 then 1
else f (n - 1) + f (n - 2)
in
let rec fix f : ((int -> int) -> int -> int) -> int -> int =
\ x : int -> int =>
f (fix f) x
in
fix fib n