diff options
Diffstat (limited to 'fib.kpl')
| -rw-r--r-- | fib.kpl | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -0,0 +1,38 @@ + +// Fibonacci Example + +fib_recursive : `{[I64 n] + ? n < 0 { .error $ "n Cannot Be Negative" } + fib : `{[I64 n] + ? { + n = 0 { 0 } + n < 2 { 1 } + { + (fib `sync n - 1; fib `sync n - 2) } + } + } + fib `sync n +} + +fib_loop : `{[I64 n] + ? n < 0 { `return.error $ "n Cannot Be Negative" } + a : 0 + b : 1 + @ 0 .. n { + c : b + b +: a + a : c + } + a +} + +fib_array : `{[I64 n] + ? { + n < 0 { `return.error $ "n Cannot Be Negative" } + n > 1 { n -: 1 } + } + arr : Array (0; 1) + @ 0 .. n { + arr `push arr[-2] + arr[-1] + } + arr +} |
