Vector: Difference between revisions

1,026 bytes added ,  3 years ago
Added Wren
(Added solution for Fortran)
(Added Wren)
Line 2,650:
<pre>[3; 7; 5]
[3; 15; 30]</pre>
 
=={{header|Wren}}==
<lang ecmascript>class Vector2D {
construct new(x, y) {
_x = x
_y = y
}
 
static fromPolar(r, theta) { new(r * theta.cos, r * theta.sin) }
 
x { _x }
y { _y }
 
+(v) { Vector2D.new(_x + v.x, _y + v.y) }
-(v) { Vector2D.new(_x - v.x, _y - v.y) }
*(s) { Vector2D.new(_x * s, _y * s) }
/(s) { Vector2D.new(_x / s, _y / s) }
 
toString { "(%(_x), %(_y))" }
}
 
var times = Fn.new { |d, v| v * d }
 
var v1 = Vector2D.new(5, 7)
var v2 = Vector2D.new(2, 3)
var v3 = Vector2D.fromPolar(2.sqrt, Num.pi / 4)
System.print("v1 = %(v1)")
System.print("v2 = %(v2)")
System.print("v3 = %(v3)")
System.print()
System.print("v1 + v2 = %(v1 + v2)")
System.print("v1 - v2 = %(v1 - v2)")
System.print("v1 * 11 = %(v1 * 11)")
System.print("11 * v2 = %(times.call(11, v2))")
System.print("v1 / 2 = %(v1 / 2)")</lang>
 
{{out}}
<pre>
v1 = (5, 7)
v2 = (2, 3)
v3 = (1, 1)
 
v1 + v2 = (7, 10)
v1 - v2 = (3, 4)
v1 * 11 = (55, 77)
11 * v2 = (22, 33)
v1 / 2 = (2.5, 3.5)
</pre>
 
=={{header|zkl}}==
9,476

edits