The lua examples in the May 2012 article "Object-Oriented Programming with Lua" do not seem to work as presented in either version 5.4.1 or 5.2. In particular using:
function Point.new(self, o)
local p = o or {x=0, y=0}
return p
end
and the print method given. Then using:
p1 = Point.new({x=10, y=10})
Point.print(p1)
Gives (0,0) instead of (10,10).
The problem appears to be the "self" in the constructor makes to ctor fail to process the object {x=10, y=10}. Is something missing from the article?