|
Y = { f => {x=> {n => f(x(x))(n)}} ({x=> {n => f(x(x))(n)}}) }
|
|
facStep = { f => {x => x < 1 ? 1 : x*f(x-1) }}
|
|
fibStep = { f => {x => x == 0 ? 0 : (x == 1 ? 1 : f(x-1) + f(x-2))}}
|
|
|
|
YFac = Y(facStep)
|
|
YFib = Y(fibStep)
|
|
|
|
> "Factorial 10: ", YFac(10)
|
|
> "Fibonacci 10: ", YFib(10)
|