RosettaCodeData/Task/Vector/Lang/vector-2.lang
2026-04-30 12:34:36 -04:00

41 lines
783 B
Text

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))