sábado, 26 de octubre de 2013

Memoize in lua

I love how simple and codeless it looks.
 function memoize(func)
   return setmetatable({}, {
     __index = function(self, k) local v = func(k); self[k] = v; return v end,
     __call = function(self, k) return self[k] end
   })
 end