答案 0 :(得分:10)
答案 1 :(得分:8)
我已经在我的模块List::Gen中实现了许多这些函数(甚至是类似Haskell的函数)
use List::Gen qw(zip reduce);
my @list = zip [1 .. 4], ['a' .. 'd'];
my $str = reduce {$a . $b} @list;
say $str; # 1a2b3c4d
或使用glob
函数构建范围:
use List::Gen 'glob';
say <1 .. 4>->zip(<a .. d>)->reduce('$a.$b'); # 1a2b3c4d
使用->reduce('.')
或->reduce(sub {$a . $b})
也可以。
或者如果你打高尔夫球:
say <[.]>->(<1..4>|<a..d>);
或者对于Haskell版本,请参阅List::Gen::Haskell
答案 2 :(得分:5)
如果您对在Perl中使用函数式编程概念感兴趣,那么我强烈建议您阅读Higher Order Perl。
答案 3 :(得分:2)
提供函数式编程工具的模块:
map
和grep
您可能也对({免费下载)图书Higher Order Perl感兴趣。