Generator/Exponential: Difference between revisions

Content added Content deleted
(Add Perl. Tweak C, Ruby.)
(→‎{{header|Perl 6}}: add Perl 6 entry)
Line 396: Line 396:


Output: <pre>[529, 576, 625, 676, 784, 841, 900, 961, 1024, 1089]</pre>
Output: <pre>[529, 576, 625, 676, 784, 841, 900, 961, 1024, 1089]</pre>
=={{header|Perl 6}}==
As with Haskell, generators are disguised as lazy lists in Perl&nbsp;6.
<lang perl6>sub powers($m) { 0..* X** $m }

my @squares := powers(2);
my @cubes := powers(3);

sub infix:<without> (@orig,@veto) {
gather for @veto -> $veto {
take @orig.shift while @orig[0] before $veto;
@orig.shift if @orig[0] eqv $veto;
}
}

say (@squares without @cubes)[20 ..^ 20+10].join(', ');</lang>


=={{header|PicoLisp}}==
=={{header|PicoLisp}}==