list - 滑动文档错误???[乐]
问题描述
在类 Slip ( https://docs.raku.org/type/Slip ) 的 raku 文档中以及“列表、序列和数组”文档中 (slips 部分: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;
他们三个的结果都是一样的:
(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)
有问题还是文档错误?
解决方案
再往下看文档,您会发现 (a?) 差异的示例:
请注意,prefix:<|> 也会以不灵活的方式将参数应用于例程调用。它不会将 Slip 转发到被调用的例程,包括返回和获取。
my \l = gather for 1..10 -> $a, $b { take |($a, $b) }; say l.perl;
# OUTPUT: «((1, 2), (3, 4), (5, 6), (7, 8), (9, 10)).Seq
my \m= gather for 1..10 -> $a, $b { take ($a, $b).Slip }; say m.perl;
# OUTPUT: «(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).Seq
推荐阅读
- c# - 使用 Guid 书签的 C# 表达式
- database - 跨多个重复数据的微服务的数据一致性
- javascript - 如何找到所有包含 X 个字符的单词?
- python - 如何使用 python 的 guppy 打印所有行
- maven - 由于找不到 web.xml,Maven-war-plugin 在 mvn install 执行期间失败
- symfony - 使用外键关系验证表单
- python-3.x - 无法在python中附加文件
- php - 找不到类“Pbmedia\LaravelFFMpeg\FFMpegServiceProvider\FFMpeg”
- c# - 如果记录的记录超过 50000 条,则获取总记录数
- php - 无法使用 PHP (put request) 更新 CouchDB 文档,一直以“Forbidden”响应:“Invalid Data”