RosettaCodeData/Task/Anonymous-recursion/Falcon/anonymous-recursion.falcon

26 lines
424 B
Plaintext

function fib(x)
if x < 0
raise ParamError(description|"Negative argument invalid", extra|"Fibbonacci sequence is undefined for negative numbers")
else
return (function(y)
if y == 0
return 0
elif y == 1
return 1
else
return fself(y-1) + fself(y-2)
end
end)(x)
end
end
try
>fib(2)
>fib(3)
>fib(4)
>fib(-1)
catch in e
> e
end