wl/examples/tailcalls.scm

17 lines
301 B
Scheme

(def fib-iter (fn (n a b)
(if (= n 0)
a
(fib-iter (- n 1) b (+ a b)))))
(def fib (fn (n) (fib-iter n 0 1)))
(write "(fib 50) = ")
(println (fib 50))
(def sum
(fn (n acc)
(if (= n 0)
acc
(sum (- n 1) (+ n acc)))))
(write "(sum 1000000) = ")
(println (sum 1000000 0))