滑动文档错误???[乐]

jak*_*kar 5 documentation list raku

在 Slip 类的 raku 文档(https://docs.raku.org/type/Slip)以及“列表、序列和数组”文档(幻灯片部分:https : //docs.raku.org/language/list)中),据说“slip”、“Slip(方法)”和“|(前缀)”可用于创建slip,但它们的行为略有“不同”。

问题是我试图确认上述声明,但结果令人失望。

我运行以下测试以找出差异:

my $l = (1, 2, 3);

say (0, slip($l, 4)).perl;
say (0, ($l, 4).Slip).perl;
say (0, |($l, 4)).perl;

say '------------------------------';

say (slip($l, 4)).perl;
say (($l, 4).Slip).perl;
say (|($l, 4)).perl;

say '------------------------------';

say (0, slip($l)).perl;
say (0, ($l).Slip).perl;
say (0, |($l)).perl;

say '------------------------------';

say (0, slip $l).perl;
say (0, $l.Slip).perl;
say (0, |$l).perl;

say '------------------------------';

say (slip $l).perl;
say ($l.Slip).perl;
say (|$l).perl;
Run Code Online (Sandbox Code Playgroud)

他们三个的结果都是一样的:

(0, $(1, 2, 3), 4)
(0, $(1, 2, 3), 4)
(0, $(1, 2, 3), 4)
------------------------------
slip($(1, 2, 3), 4)
slip($(1, 2, 3), 4)
slip($(1, 2, 3), 4)
------------------------------
(0, 1, 2, 3)
(0, 1, 2, 3)
(0, 1, 2, 3)
------------------------------
(0, 1, 2, 3)
(0, 1, 2, 3)
(0, 1, 2, 3)
------------------------------
slip(1, 2, 3)
slip(1, 2, 3)
slip(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

有问题还是文档错误?

Hol*_*lli 4

在文档的更下方,您会发现 (a?) 差异的示例:

\n\n
\n

请注意,前缀:<|> 还将以一种滑动\n 的方式将参数应用于例程调用。它不会将 Slip 转发到被调用的例程,包括 return 和 take。

\n
\n\n
my \\l = gather for 1..10 -> $a, $b { take |($a, $b) }; say l.perl;\n# OUTPUT: \xc2\xab((1, 2), (3, 4), (5, 6), (7, 8), (9, 10)).Seq\nmy \\m= gather for 1..10 -> $a, $b { take ($a, $b).Slip }; say m.perl;\n# OUTPUT: \xc2\xab(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).Seq\n
Run Code Online (Sandbox Code Playgroud)\n

  • 接得好。这确实是文档中的一个错误。Liz 刚刚修复了它,更改应该很快就会上线。 (3认同)