Анализ примеров — 8. loop()
В каталоге parrot/languages/perl6/examples есть небольшой скрипт mandel.p6, который строит множество Мандельброта. Точки на плоскости отображаются на экране разными символами (это не что иное, как ASCII-графика).
Здесь появился оператор loop(), функционирование которого в этом примере семантически совпадает с работой оператора цикла for(), доступного в Perl 5. Так ли это в общем случае, сказать пока не могу. В примере вложено в друг друга три цикла:
loop ($y=30; $C = $y*0.1 - 1.5, $y--;) {
loop ($x=0; $c = $x*0.04 - 2.0, $z=0.0,
$Z=0.0, $x++ < 75;) {
loop ($r=$c, $i=$C, $k=0;
$t = $z*$z - $Z*$Z + $r,
$Z = 2.0*$z*$Z + $i, $z=$t, $k<112;
$k++) {
. . .
Вот так выглядит результат выполнения программы:
................::::::::::::::::::::::::::::::::::::::::::::...............
...........::::::::::::::::::::::::::::::::::::::::::::::::::::::..........
........::::::::::::::::::::::::::::::::::,,,,,,,:::::::::::::::::::.......
.....:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::....
...::::::::::::::::::::::::::,,,,,,,,,,,,;;;!:H!!;;;,,,,,,,,:::::::::::::..
:::::::::::::::::::::::::,,,,,,,,,,,,,;;;;!!/>&*|& !;;;,,,,,,,:::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,;;;;;!!//)|.*#|>/!;;;;;,,,,,,:::::::::::
::::::::::::::::::,,,,,,,,,,,,;;;;;;!!!!//>|: !:|//!!;;;;;,,,,,:::::::::
:::::::::::::::,,,,,,,,,,;;;;;;;!!/>>I>>)||I# H&))>////*!;;,,,,::::::::
::::::::::,,,,,,,,,,;;;;;;;;;!!!!/>H: #| IH&*I#/;;,,,,:::::::
::::::,,,,,,,,,;;;;;!!!!!!!!!!//>|.H: #I>!!;;,,,,::::::
:::,,,,,,,,,;;;;!/||>///>>///>>)|H %|&/;;,,,,,:::::
:,,,,,,,,;;;;;!!//)& :;I*,H#&||&/ *)/!;;,,,,,::::
,,,,,,;;;;;!!!//>)IH:, ## #&!!;;,,,,,::::
,;;;;!!!!!///>)H%.** * )/!;;;,,,,,::::
&)/!!;;;,,,,,::::
,;;;;!!!!!///>)H%.** * )/!;;;,,,,,::::
,,,,,,;;;;;!!!//>)IH:, ## #&!!;;,,,,,::::
:,,,,,,,,;;;;;!!//)& :;I*,H#&||&/ *)/!;;,,,,,::::
:::,,,,,,,,,;;;;!/||>///>>///>>)|H %|&/;;,,,,,:::::
::::::,,,,,,,,,;;;;;!!!!!!!!!!//>|.H: #I>!!;;,,,,::::::
::::::::::,,,,,,,,,,;;;;;;;;;!!!!/>H: #| IH&*I#/;;,,,,:::::::
:::::::::::::::,,,,,,,,,,;;;;;;;!!/>>I>>)||I# H&))>////*!;;,,,,::::::::
::::::::::::::::::,,,,,,,,,,,,;;;;;;!!!!//>|: !:|//!!;;;;;,,,,,:::::::::
::::::::::::::::::::::,,,,,,,,,,,,,;;;;;!!//)|.*#|>/!;;;;;,,,,,,:::::::::::
:::::::::::::::::::::::::,,,,,,,,,,,,,;;;;!!/>&*|& !;;;,,,,,,,:::::::::::::
...::::::::::::::::::::::::::,,,,,,,,,,,,;;;!:H!!;;;,,,,,,,,:::::::::::::..
.....:::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::....
........::::::::::::::::::::::::::::::::::,,,,,,,:::::::::::::::::::.......
...........::::::::::::::::::::::::::::::::::::::::::::::::::::::..........26 октября 2003