# This program computes fib(10) * 2 = 110.
define(fib_recursive, n: Int, Int,
{ if(n <= 1, ret(n)); fib_recursive(n - 1) + fib_recursive(n - 2) }
)
define(fib_loop, n: Int, Int,
{
if(n <= 1, ret(n))
let(a = 0)
let(b = 1)
let(i = 2)
while(i <= n, { let(t = a + b); a = b; b = t; i += 1 })
b
}
)
assert(fib_recursive(10) == fib_loop(10) == 55, "fib error")
export(fib_recursive, fib_loop)