Generator/Exponential: Difference between revisions
Content added Content deleted
(→{{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 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}}== |