mirror of
https://github.com/teo3300/rust-mal.git
synced 2026-01-12 01:05:32 +01:00
20 lines
530 B
Plaintext
20 lines
530 B
Plaintext
(def! n-fib (fn* [n]
|
|
(if (< n 2) n ; base
|
|
(+ (n-fib (- n 1)) (n-fib (- n 2)))))) ; recursive
|
|
|
|
(def! assert-fib (fn* [n expected] ; check fibonacci result
|
|
(if (not (= (n-fib n) expected))
|
|
(do (prn (list
|
|
"Expected"
|
|
expected
|
|
"got"
|
|
(n-fib n)))
|
|
(assert nil))))) ; cause test panic
|
|
|
|
(assert-fib 0 0)
|
|
(assert-fib 1 1)
|
|
(assert-fib 2 1)
|
|
(assert-fib 3 2)
|
|
(assert-fib 4 3)
|
|
(assert-fib 5 5)
|
|
(assert-fib 6 8) |