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