gpt4 book ai didi

raku - 为什么 Perl6 序列上没有 "each"方法?

转载 作者:行者123 更新时间:2023-12-03 21:50:14 24 4
gpt4 key购买 nike

有时我会开始在 Perl 6 REPL 中编写一系列方法调用,例如:

".".IO.dir.grep(...).map(...).

...然后我意识到我想要对最终列表做的是将每个元素打印在自己的行上。我希望序列有类似 each方法,所以我可以用 .each(*.say) 结束链,但是我找不到这样的方法。相反,我必须返回到行首并添加 .say for .感觉就像它打破了我的思绪。

这是一个小烦恼,但它让我感到如此明显的遗漏,以至于我想知道我是否错过了一些简单的替代方案。我能想到的只有 ».say.join("\n").say ,但前者可以无序地对元素进行操作(如果我理解正确的话),后者构造一个可能有问题的单个字符串,具体取决于输入列表。

最佳答案

你可以自己滚动。

use MONKEY;

augment class Any
{
method each( &block )
{
for self -> $value {
&block( $value );
}
}
};

List.^compose;
Seq.^compose;

(1, 2).each({ .say });
(2, 3).map(* + 1).each({ .say });

# 1
# 2
# 3
# 4

如果您喜欢这个,那么您的第一个 CPAN 模块机会就在那里。

关于raku - 为什么 Perl6 序列上没有 "each"方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com