Files
rust-mal/tests/fibonacci.mal
teo3300 0b47444836 Applied step 5 TCO
- Some tests disabled for incompatibility
- next step is to restore those tests, as well as a whole "eval" test
2023-12-21 19:25:24 +09:00

20 lines
532 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 false))))) ; 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)