Perl6 Feed Operator 左右自在に流れるパイプライン!
http://perl6advent.wordpress.com/2010/12/10/day-10-feed-operators/
Unixのパイプラインって左から右に流れる:
cat hoge.log | grep foo | sed 's/.*foo//' | cut -f2 | sort | uniq -c
ところが、perlのパイプと言うかリスト処理のチェーンは右から左に流れる。
関数の組合せは右から左なので仕方ない。しかしシックリこない。
my @new = sort { ... } map { ... } grep { ... } @original;
Perl6には「feed operator」ってのがあって、方向を明示的に表わす:
これなら方向を間違えて読むことはない。
my @new <== sort { ... } <== map { ... } <== grep { ... } <== @original;
しかし、Perl6はそれぐらいじゃスマさない。逆行も可能なのだ!
Unixのパイプ愛用者としては嬉しい表記法だ。
@original ==> grep { ... } ==> map { ... } ==> sort { ... } ==> my @new;