Fold (高阶函数) 在函数式编程中折叠fold也称为归约reduce积累accumulate聚集aggregate压缩compress或注入inject指称一组高阶函数它们分析递归数据结构并通过使用给定组合运算将递归的处理它的构成部件建造一个返回值的结果重组起来典型的要向折叠提供一个组合函数一个数据结构的顶端节点英语Node computer science和可能的在特定条件下使用的某些缺省值折叠接着以系统性方式使用这个函数进行组合这个数据结构的层级中的元素 折叠在某种意义上是展开英语Anamorphismunfold的对偶它接受一个种子值并共递归的应用一个函数来确定如何进一步的构造一个共递归的数据结构折叠递归的分解这个数据结构在每个节点应用一个组合函数于它的终结值和递归结果之上用得到这个结果替代它折叠是catamorphism英语catamorphism而展开是anamorphism英语anamorphism