Loop
From Perl6 Wiki
The Perl6 equivalent of the Perl5 for statement, loop is also now the prefered way of doing infite loops.
Contents |
[edit] Description
Loop takes a declaration which is lexically scoped, (it is not seen after the loop is done) and it takes a condition to check for in the main loop and then a function to do in each iteration although you can just append that to the end of statements yourself.
[edit] General Structure
loop( &declaration, &condition, &iteration ) { &statements }
[edit] Desugared Structure
{
&declaration();
loop {
leave if &condition();
&statements();
&iteration();
}
}();
[edit] Examples
[edit] Multiplication Table
MultiplicationTable(12,12);
sub MultiplicationTable( Int $height, Int $width ) returns Bool {
loop( my Int $y = 1; $y <= $height; $y++) {
loop( my Int $x = 1; $x <= $width; $x++ ) {
[ ($x*$y), "\t" ].join.print; # Separate each column by a tab character, \t
}
"\n".print();
}
return ?(1);
}
| Output... |
|---|
1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144 |
