lambdaspeech
::
fibonacci
1
[
pages
][
login
][
load
]
_h1 fibonacci _h3 1. following the definition {pre '{def fibo {lambda {:n} {if {< :n 2} then 1 else {+ {fibo {- :n 1}} {fibo {- :n 2}}}}}} -> {def fibo {lambda {:n} {if {< :n 2} then 1 else {+ {fibo {- :n 1}} {fibo {- :n 2}}}}}} '{fibo 10} -> {fibo 10} } _h3 2. tail-recursive with a Y-combinator {prewrap '{def ifibo {lambda {:n} {{lambda {:f :n :a :b} {:f :f :n :a :b}} {lambda {:f :n :a :b} {if {< :n 1} then :a else {:f :f {- :n 1} {+ :a :b} :a}}} :n 1 0}}} -> {def ifibo {lambda {:n} {{lambda {:f :n :a :b} {:f :f :n :a :b}} {lambda {:f :n :a :b} {if {< :n 1} then :a else {:f :f {- :n 1} {+ :a :b} :a}}} :n 1 0}}} '{ifibo 50} -> {ifibo 50} '{map ifibo {serie 1 50}} -> {map ifibo {serie 1 50}} }
lambdaspeech v.20180812