blob: d8a2140635a5341aa932a70f657af4429d4b5ecf (
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
28
29
30
31
32
33
34
35
36
37
38
39
|
// Fibonacci sequence
`export fib_recursive : {[I64.n]
? {
n < 0 { %.error ~ "#BOLD#RED#Invalid n Got %#" `format n }
n = 0 { 0 }
n < 2 { 1 }
{ + (fib `sync n - 1; fib `sync n - 2) }
}
}
`export fib_iterative : {[I64.n]
? n < 0 {
`return.error ~ "#BOLD#RED#Invalid n Got %#" `format n
}
a : 0
b : 1
@ 0 .. n {
c : b
b : a + b
a : c
}
a
}
`export fib_array : {[I64.n]
? {
n < 0 {
`return.error ~ "#BOLD#RED#Invalid n Got %#" `format n
}
n > 0 { n :- 1 }
}
arr : Array $ (0; 1)
@ 0 .. n {
arr `push + (arr `get -2; arr `get -1)
}
arr
}
|