
[]
Поистине магической силой обладает пара квадратных скобок. Какой в perl 6 самый быстрый способ посчитать сумму m + m+1 + m+2 ... + n? Очевидно, такой:
| | #!/usr/bin/perl6
my ($m,$n)=(1000,2000);
say [+] $m .. $n; | | 1501500 |
В квадратных скобках может быть любой инфиксный оператор. Например <=. И это может быть иногда полезным.| | #!/usr/bin/perl6
my @list=<1 5 7 11 13 29 111 118>;
say [<=] @list;
# 1 <= 5 <= 7 <= 11 <= 13 <= 29 <= 111 <= 118
@list=<1 5 7 11 29 13 111 118>;
say [<=] @list; | | Bool::True
Bool::False |
В первом случае последовательность восходящая. Во втором - не совсем. Это можно использовать для проверки последовательностей. Аналогично можно проверить расположены ли какие-то слова по алфавиту или нет.| | #!/usr/bin/perl6
my @list=<aeque capra coma constantia fulmen>;
say [le] @list; # le - аналог <= для букв
@list=<aeque coma capra constantia fulmen>;
say [le] @list; | | Bool::True
Bool::False |
Можно придумать, наверное, и другие полезные применения квадратных скобок. # mutatio postrema: 8 Sep 2010
|