class &Vector { +$x +$y +construct = ($x{number}, $y{number}) -> { ::$x $= double($x) ::$y $= double($y) } +op:add = ($op{OBJECT}) -> { return parser.op(&Vector(::$x + $op::$x, ::$y + $op::$y)) } +op:sub = ($op{OBJECT}) -> { return parser.op(&Vector(::$x - $op::$x, ::$y - $op::$y)) } +op:mul = ($op{number}) -> { return parser.op(&Vector(::$x * $op, ::$y * $op)) } +op:div = ($op{number}) -> { return parser.op(&Vector(::$x / $op, ::$y / $op)) } +to:text = () -> { return [parser.op(::$x), parser.op(::$y)] } } $vec1 = &Vector(5, 7) $vec2 = &Vector(2, 3) fn.println($vec1) fn.println($vec2) fn.println() fn.println(parser.op($vec1 + $vec2)) fn.println(parser.op($vec1 - $vec2)) fn.println(parser.op($vec1 * 11)) fn.println(parser.op($vec1 / 2))