Perl中是否有zip和fold之类的函数?
我想在perl中使用一些函数,例如,和。(就像在哈斯凯尔一样)我找到了地图,而且效果很好。那么,有拉链和折叠吗?非常感谢。该库包括Perl中是否有zip和fold之类的函数?,perl,map,zip,fold,Perl,Map,Zip,Fold,我想在perl中使用一些函数,例如,和。(就像在哈斯凯尔一样)我找到了地图,而且效果很好。那么,有拉链和折叠吗?非常感谢。该库包括reduce(),它基本上完成了fold的功能 包含一个zip()函数 两者都不是内置的,主要是因为Perl不是一种函数式编程语言。如果您对在Perl中使用函数式编程概念感兴趣,那么我强烈建议您阅读。我已经在我的模块中实现了许多函数(甚至像Haskell一样的惰性函数) 或者使用glob功能构建范围: use List::Gen 'glob'; say <1
reduce()
,它基本上完成了fold
的功能
包含一个zip()
函数
两者都不是内置的,主要是因为Perl不是一种函数式编程语言。如果您对在Perl中使用函数式编程概念感兴趣,那么我强烈建议您阅读。我已经在我的模块中实现了许多函数(甚至像Haskell一样的惰性函数) 或者使用
glob
功能构建范围:
use List::Gen 'glob';
say <1 .. 4>->zip(<a .. d>)->reduce('$a.$b'); # 1a2b3c4d
或有关Haskell版本,请参阅提供功能性编程工具的模块:
- Perl的和
- 和(包括惰性列表)
您可能还对这本(现在可以免费下载)书感兴趣。非常感谢,@Wooble!它们就是我所需要的@madper:请注意Perl有内置的and(过滤器)。
reduce
不是内置的,但它是核心Perl的一部分。您可能会发现另一个有趣的模块是。
use List::Gen 'glob';
say <1 .. 4>->zip(<a .. d>)->reduce('$a.$b'); # 1a2b3c4d
say <[.]>->(<1..4>|<a..d>);