fib=lambda -> { fib1=lambda (x)->If(x>1->lambda(x-1)+lambda(x-2), x) =lambda fib1 (x) -> { If x<0 then Error "argument outside of range" If x<2 then =x : exit =fib1(x) } }() ' using () execute this lambda so fib get the returned lambda Module CheckIt (&k()) { Print k(12) } CheckIt &Fib() Try { Print fib(-2) } Print Error$ Z=Fib Print Z(12) Dim a(10) a(3)=Z Print a(3)(12)=144 Inventory Alfa = "key1":=Z Print Alfa("key1")(12)=144