Anonymous user
Fibonacci sequence: Difference between revisions
no edit summary
No edit summary |
No edit summary |
||
Line 4,903:
=={{header|lambdatalk}}==
<lang scheme>▼
▲<lang scheme>
1) basic version
{def
{lambda {:n}
{if {< :n
then 1
else {+ {
{fib1 16} -> 987 (CPU ~ 16ms)
2) tail-recursive version (very fast)▼
{fib1 30} = 832040 (CPU > 12000ms)
{def fib▼
{def fib.r ▼
{lambda {:a :b :i}
{if {< :i 1}
then :a
else {
{lambda {:n} {
{fib2 16} -> 987 (CPU ~ 1ms)
3) Dijkstra Algorithm (very fast)▼
{fib2 30} -> 832040 (CPU ~2ms)
{def fib▼
{fib2 1000} -> 4.346655768693743e+208 (CPU ~ 22ms)
{def fib.r▼
{lambda {:a :b :p :q :count}
{if {= :count 0}
then :b
else {if {= {% :count 2} 0}
then {
{+ {* :p :p} {* :q :q}}
{+ {* :q :q} {* 2 :p :q}}
{/ :count 2}}
else {
{+ {* :b :p} {* :a :q}}
:p :q
{- :count 1}} }}}}
{lambda {:n}
{
{fib3 16} -> 987 (CPU ~ 2ms)
{fib3 30} -> 832040 (CPU ~ 2ms)
{fib3 1000} -> 4.346655768693743e+208 (CPU ~ 3ms)
{def
{lambda {:n}
{let { {:n :n} {:sqrt5 {sqrt 5}} }
{round {/ {- {pow {/ {+ 1 :sqrt5} 2} :n}
{pow {/ {- 1 :sqrt5} 2} :n}} :sqrt5}}} }}
</lang>▼
{fib4 16} -> 987 (CPU ~ 1ms)
{fib4 30} -> 832040 (CPU ~ 1ms)
{fib4 1000} -> 4.346655768693743e+208 (CPU ~ 1ms)
▲</lang>
=={{header|Lasso}}==
|