Vector: Difference between revisions

1,095 bytes added ,  1 year ago
Add Lang example
No edit summary
(Add Lang example)
Line 1,393:
11 * v2 = (22.0, 33.0)
v1 / 2 = (2.5, 3.5)
</pre>
 
=={{header|Lang}}==
<syntaxhighlight lang="lang">
&Vector = {
$x
$y
}
 
fp.initVector = ($x, $y) -> {
return fn.structOf(&Vector, fn.double($x), fn.double($y))
}
 
fp.addVector = ($a, $b) -> {
return parser.op(fn.structOf(&Vector, $a::$x + $b::$x, $a::$y + $b::$y))
}
 
fp.subVector = ($a, $b) -> {
return parser.op(fn.structOf(&Vector, $a::$x - $b::$x, $a::$y - $b::$y))
}
 
fp.mulVector = ($vec, $scalar) -> {
return parser.op(fn.structOf(&Vector, $vec::$x * $scalar, $vec::$y * $scalar))
}
 
fp.divVector = ($vec, $scalar) -> {
return parser.op(fn.structOf(&Vector, $vec::$x / $scalar, $vec::$y / $scalar))
}
 
fp.printVector = ($vec) -> {
fn.println([parser.op($vec::$x), parser.op($vec::$y)])
}
 
$vec1 = fp.initVector(5, 7)
$vec2 = fp.initVector(2, 3)
 
fp.printVector($vec1)
fp.printVector($vec2)
fn.println()
 
fp.printVector(fp.addVector($vec1, $vec2))
fp.printVector(fp.subVector($vec1, $vec2))
fp.printVector(fp.mulVector($vec1, 11))
fp.printVector(fp.divVector($vec1, 2))
</syntaxhighlight>
 
{{out}}
<pre>
[5.0, 7.0]
[2.0, 3.0]
 
[7.0, 10.0]
[3.0, 4.0]
[55.0, 77.0]
[2.5, 3.5]
</pre>
 
168

edits