Может ли сбор использоваться для развертывания перекрестков? - PullRequest
6 голосов
/ 26 сентября 2019

В этой программе:

use v6;
my $j = +any "33", "42", "2.1";
gather for $j -> $e {
    say $e;
} # prints 33␤42␤2.1␤

for $j -> $e {
    say $e; # prints any(33, 42, 2.1)
}

Как gather перед for меняет поведение Junction, позволяя создать цикл над ним?Документация , похоже, не отражает такое поведение.Это спецификация?

1 Ответ

3 голосов
/ 26 сентября 2019

Файл подан .

Гольф:

    do put .^name for any 1 ; # Int
       put .^name for any 1 ; # Mu

Можно использовать любой из десяти из тринадцати префиксов операторов, перечисленных в документе вместо do или gather с тем же результатом.(supply неудивительно, что ничего не выводится, а hyper и race являются красными сельдями, потому что они пытаются и не могут применить методы к значениям соединения.)

Любой тип соединения дает те же результаты.

Любое количество элементов соединения приводит к одинаковому результату для цикла for без префикса оператора, а именно одного Mu. С префиксом оператора цикл for повторяет основной оператор (put ...) соответствующее количество раз.

Я искал проблемы как с rt, так и с gh и не смог найтисвязанный отчет об ошибке.

...