
rand
Теперь вместо for ($i=0; $i<10; $i++) введен loop ( то же )
| | #!/usr/bin/perl6
my $i;
loop ($i=0; $i < 10; $i++) {$i.say} | | 0
1
2
3
4
5
6
7
8
9 |
Ну, что ж. Главное про это не забыть. Как написано на blog.perl6doc.ru, теперь loop пригоден для бесконечных циклов.| | #!/usr/bin/perl6
my $rand;
loop { # это было бы вечно, если не условие внутри
$rand=1000.rand;
last if $rand < 1;
}
$rand.say; | | 0.971776528093216 |
Bene. А как же while?| | #!/usr/bin/perl6
my $rand;
while ('вечность') {
$rand=1000.rand;
last if $rand < 1;
}
$rand.say; | | 0.0956970331529305 |
Работает, как и раньше.Extra http://blog.perl6doc.ru
# mutatio postrema: 24 Aug 2010
Теперь rand(1000) не работает. Надо 1000.rand
| | #!/usr/bin/perl6
my $rand=1000.rand;
$rand.say; | | 989.115628021867 |
Scilicet. А если надо целое число? Сейчас нет int(). Можно так:| | #!/usr/bin/perl6
my $rand=(1..1000).pick;
$rand.say; | | 29 |
А можно и иначе, очевидно. TODO. Найти способ сделать 1000.rand более целым. Оператор pick, кстати, довольно удобен.| | #!/usr/bin/perl6
say ('aaa'..'zzz').pick ~ (100..999).pick; | | mmb683 |
Получилась симпатичная программа генерации паролей. pick лучше, чем $list[int(rand(@list))] # mutatio postrema: 24 Aug 2010
|