RosettaCodeData/Task/Y-combinator/Lambdatalk/y-combinator.lambdatalk

23 lines
393 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
1) defining the Ycombinator
{def Y {lambda {:f} {:f :f}}}
2) defining non recursive functions
2.1) factorial
{def almost-fac
{lambda {:f :n}
{if {= :n 1}
then 1
else {* :n {:f :f {- :n 1}}}}}}
2.2) fibonacci
{def almost-fibo
{lambda {:f :n}
{if {< :n 2}
then 1
else {+ {:f :f {- :n 1}} {:f :f {- :n 2}}}}}}
3) testing
{{Y almost-fac} 6}
-> 720
{{Y almost-fibo} 8}
-> 34