4.3BSD/usr/contrib/icon/book/07/fib2.icn

procedure fib(i)
   static fibmem
   local j
   initial {
      fibmem := table()
      fibmem[1] := fibmem[2] := 1
      }
   if j := \fibmem[i] then return j
   else return fibmem[i] := fib(i - 1) + fib(i - 2)
end