Loops/For with a specified step: Difference between revisions

→‎{{header|Wren}}: Now uses Wren-trait module.
(→‎{{header|Wren}}: Oops, wrong class name.)
(→‎{{header|Wren}}: Now uses Wren-trait module.)
Line 2,472:
</pre>
<br>
{{libheader|Wren-trait}}
A further and more general approach is to createuse a wrapper class which can iterate any sequence in a stepped fashion using Wren's ''iterator protocol''.
<lang ecmascript>classimport Stepped"/trait" isfor Sequence {Stepped
construct new(seq, step) {
_seq = seq
_step = step
}
 
iterate(iter) {
if (!iter || _step < 2) {
return _seq.iterate(iter)
} else {
var count = _step
while (count > 0 && iter) {
iter = _seq.iterate(iter)
count = count - 1
}
return iter
}
}
 
iteratorValue(iter) { _seq.iteratorValue(iter) }
}
 
// Print odd numbers under 20.
9,485

edits