RosettaCodeData/Task/Anonymous-recursion/Crystal/anonymous-recursion.cr
2026-04-30 12:34:36 -04:00

14 lines
305 B
Crystal

def fib (n : Int64)
raise "only positive numbers allowed" if n < 0
# it needs to be declared beforehand to be able to call it
# from inside itself
fib1 = uninitialized Int64 -> Int64
fib1 = -> (n : Int64) {
if n < 2
n
else
fib1[n - 1] + fib1[n - 2]
end
}
fib1[n]
end