Anonymous user
Anonymous recursion: Difference between revisions
edit a lambdatalk task
m (→{{header|J}}) |
(edit a lambdatalk task) |
||
Line 1,662:
=={{header|Lambdatalk}}==
<lang scheme>
1) defining a
{def fibo {lambda {:n}
{{{lambda {:f
{lambda {:f :n :a :b}
{if {< :n 0}
Line 1,670:
else {if {< :n 1}
then :a
else {:f :f {- :n 1} {+ :a :b} :a}}}}} :n 1 0}}}
-> fibo
2) testing:
Line 1,677 ⟶ 1,678:
{fibo 8} -> 34
{fibo 1000} -> 7.0330367711422765e+208
{S.map fibo {S.serie 1 20}}
-> 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946
We could also avoid any name and write an IIFE
{{lambda {:n}
{{{lambda {:f
{lambda {:f :n :a :b}
{if {< :n 0}
Line 1,689 ⟶ 1,690:
else {if {< :n 1}
then :a
else {:f :f {- :n 1} {+ :a :b} :a}}}}} :n 1 0}}
8}
-> 34
</lang>
|