a={} function a:fact(n) if n == 1 then return 1 else return a:fact(n - 1) * n end end may be write a={fact = function(selF, n) if n == 1 then return 1 else return selF:fact(n - 1) * n end end} print(a:fact(5)) So the trick ? 33 on the face.