Generator/Exponential: Difference between revisions

Added Wren
(Add SenseTalk)
(Added Wren)
Line 3,612:
for I:= 1 to 10 do [IntOut(0, Filter); ChOut(0, ^ )]; \show next 10 values
]</lang>
 
{{out}}
<pre>
529 576 625 676 784 841 900 961 1024 1089
</pre>
 
=={{header|Wren}}==
Closure based solution. Similar approach to Go (first example).
<lang ecmascript>var powers = Fn.new { |m|
var i = 0
return Fn.new {
var p = i.pow(m)
i = i + 1
return p
}
}
 
var squaresNotCubes = Fn.new { |squares, cubes|
var sq = squares.call()
var cu = cubes.call()
return Fn.new {
var p
while (true) {
if (sq < cu) {
p = sq
sq = squares.call()
return p
}
if (sq == cu) sq = squares.call()
cu = cubes.call()
}
}
}
 
var squares = powers.call(2)
var cubes = powers.call(3)
var sqNotCu = squaresNotCubes.call(squares, cubes)
for (i in 0..29) {
var p = sqNotCu.call()
if (i > 19) System.write("%(p) ")
}
System.print()</lang>
 
{{out}}
9,482

edits