Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl中是否有zip和fold之类的函数?_Perl_Map_Zip_Fold - Fatal编程技术网

Perl中是否有zip和fold之类的函数?

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

我想在perl中使用一些函数,例如,和。(就像在哈斯凯尔一样)我找到了地图,而且效果很好。那么,有拉链和折叠吗?非常感谢。

该库包括
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>);