perl6 - 为什么在Perl6序列上没有each方法?

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


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



我希望有类似each方法的东西,我希望可以用.each(*.say)结束,但是没有找到方法,

我能想到的唯一的是».say和.join("n").say,但是前者可以对单个的元素进行操作。

时间:

你可以尝试在最后一个映射语句之后调用.sink方法。


".".IO.dir.grep({$_.contains('e')}).map(*.uc).map(*.say).sink



你可以自己写一个。


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



...