RosettaCodeData/Task/Fibonacci-sequence/Bruijn/fibonacci-sequence-1.bruijn

21 lines
518 B
Text
Raw Permalink Normal View History

2024-03-06 22:25:12 -08:00
:import std/Combinator .
:import std/Math .
:import std/List .
# unary/Church fibonacci (moderately fast but very high space complexity)
fib-unary [0 [[[2 0 [2 (1 0)]]]] k i]
:test (fib-unary (+6u)) ((+8u))
# ternary fibonacci using infinite list iteration (very fast)
fib-list \index fibs
2026-04-30 12:34:36 -04:00
fibs head <$> (iterate &[[0 : (1 + 0)]] ((+0) : (+1)))
2024-03-06 22:25:12 -08:00
:test (fib-list (+6)) ((+8))
# recursive fib (very slow)
fib-rec y [[0 <? (+1) (+0) (0 <? (+2) (+1) rec)]]
2026-04-30 12:34:36 -04:00
rec (1 --0) + (1 --(--0))
2024-03-06 22:25:12 -08:00
:test (fib-rec (+6)) ((+8))