summaryrefslogtreecommitdiff
path: root/fib.kpl
blob: bf2d384fb473d870ca8e3a81f655978e09015f68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

/*
    Fibonacci sequence
*/

`export fib : ([I64; I64.n]
    ? {
        n = 0 { 0 }
        n < 2 { 1 }
        { `sync(fib; n - 1) + fib `sync n - 2 }
    }
)

`export fib_string : ([String; I64.n]
    "#MAGENTA#fib#(#CYAN#%#) #WHITE#=# #GREEN#%#\n" `format (n; fib `sync n)
)

`is_main ([Void]
    `use "sys" [args]
    ? 3 != `length args {
        `return `error String $ (
            "#BOLD#RED#Got: %#\n" `format " " `join args
            "#BOLD#WHITE#Usage: % % <n>#\n" `format (args `get 0; args `get 1)
         )
    }
    `value fib_string `sync I64 $ args `get -1
)