-- Chapter 27 example: Point class. local Point = {} Point.__index = Point function Point.new(x, y) local self = setmetatable({}, Point) self.x = x self.y = y return self end function Point:distance(other) local dx = self.x - other.x local dy = self.y - other.y return math.sqrt(dx * dx + dy * dy) end local a = Point.new(0, 0) local b = Point.new(3, 4) print(a:distance(b)) -- 5.0 -- Try-this: add Point:move(dx, dy) and call it on `a`.