RosettaCodeData/Task/Anonymous-recursion/Icon/anonymous-recursion-2.icon

10 lines
268 B
Plaintext

procedure fib(n)
local source, i
if type(n) == "integer" & n >= 0 then
return n @ makeProc {{
i := @(source := &source)
if i = (0|1) then i@source
((i-1)@makeProc(^&current) + (i-2)@makeProc(^&current)) @ source
}}
end