可以使用收集来展开Junctions吗?

jjm*_*elo 7 perl6 perl6-junction raku

在此程序中:

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)
}
Run Code Online (Sandbox Code Playgroud)

如何gather在眼前for变化的结的行为,允许建立在它的循环?该文档似乎并不反映该行为。那是规格吗?

rai*_*iph 4

由 jnthn 在代码测试提交中修复。


问题已提交

打高尔夫球:

    do put .^name for any 1 ; # Int
       put .^name for any 1 ; # Mu
Run Code Online (Sandbox Code Playgroud)

可以使用文档中列出的十三个语句前缀中的任何一个来代替dogather获得相同的结果。(supply毫不奇怪,不会产生任何输出,并且hyperrace是转移注意力的东西,因为它们尝试将方法应用于结点值,但失败了。)

任何类型的连接都会产生相同的结果。

任意数量的连接元素都会为没有for语句前缀的循环产生相同的结果,即单个. 使用语句前缀,循环会重复主语句 (the ) 适当的次数。Muforput ...

我搜索了 rt 和 gh 问题,但未能找到相关的错误报告。

  • 就称其为功能吧。 (3认同)
  • @jjmerelo 这就是我所期望的。(我大多避免使用[“应该”这个词](https://www.google.com/search?q=the+word+%22should%22)。但是撇开迂腐不谈,一个烘焙测试指定“对于任何 1 ` 和 `quietly for any 1` 和 `for (any 1,)` 都传递一个 `any 1` 对我来说是有意义的。)昨晚我认为传递 `Mu` 类型的对象是非常无用的,而且是一个错误。睡过之后我仍然这样做。(我赞成霍利的讽刺评论,但这只是因为它的冷酷幽默。) (2认同)