procedure acker(i,j) local args, k static ackermem initial ackermem := table() args := i || "," || j if k := \ackermem[args] then return k if i = 0 then return ackermem[args] := j + 1 if j = 0 then return ackermem[args] := acker(i - 1,1) return ackermem[args] := acker(i - 1,acker(i,j - 1)) end