Perl6の構文を見ていたのですが、面白い感じですね。メタオペレータという関数型言語由来の演算子があります。
というわけで、Perl6, Haskell, Scala の比較
2つのリストの和リスト:
Perl 6
my @a = (1, 2, 3, 4, 5);
my @b = (6, 7, 8, 9, 10);
my @c = @a >>+<< @b;
Haskell
zipWith (+) a b
Scala
List.map2(a, b)(_+_)
負値リスト:
Perl6
-<<@a
Haskell
map (0-) a
Scala
a.map(-_)
リストの総乗:
Perl6
[*]@a
Haskell
foldl1 (*) a
Scala
(1 /: a)(_*_)