Fold
范例
打开所有单元 关闭所有单元基本范例 (4)
范围 (8)
将纯函数与 Fold 一起使用:
Fold[{2 #1, 3#2}&, x, {a, b, c, d}]对一个参数使用 Fold 的算子形式:
Fold[f][{a, b, c, d}]对两个参数使用 Fold 的算子形式:
Fold[f][x, {a, b, c, d}]Fold[Power, {a, b, c, d}]Fold[ReverseApplied[Power], Reverse@{a, b, c, d}]Fold[Permute, {a, b, c, d}, {{1, 4, 3, 2}, {3, 2, 4, 1}}]Fold[Cross, {{1, -1, 1}, {0, 1, 1}, {1, 1, -1}}]第三个参数的标头不必是 List:
Fold[f, x, p[a, b, c, d]]FoldList[# ^ 2 + #2&, 2, Range[6]]Catch[Fold[If[# > 10 ^ 6, Throw[#], # ^ 2 + #2]&, 2, Range[6]]]应用 (9)
Fold[x #1 + #2&, 0, {a, b, c, d, e}]HornerForm 直接产生输出:
HornerForm[Reverse[{a, b, c, d, e}].x ^ Range[0, 4], x]Fold[1 / (#2 + #1)&, x, Reverse[{a, b, c, d}]]Fold[10#1 + #2&, 0, {4, 5, 1, 6, 7, 8}]Fold[#2 - #1&, 0, Reverse[{a, b, c, d, e}]]Fold[List, x, {a, b, c, d}]Fold[{#2, #1}&, x, {a, b, c, d}]Fold[#2[#1]&, x, {a, b, c, d}]Fold[{f[#, #], g[#]}[[#2]]&, e, {1, 1, 2, 1, 2}]Fold[Partition, Range[30], {2, 4, 3}]Dimensions[%]属性和关系 (9)
Fold[f, x, {}]Fold[f, {a}]Fold[f, x, {a, b, c}]FoldList[f, x, {a, b, c}]Last[%]Fold 要求函数 f 在第一个参数中使用种子:
Fold[g, x, {a, b, c, d}]如果想要在第二个参数中使用种子,可使用 ReverseApplied:
Fold[ReverseApplied[g], x, {a, b, c, d}]Fold 从左到右获取列表中的元素:
Fold[g, x, {a, b, c, d}]用 Reverse 从右到左获取元素:
Fold[g, x, Reverse@{a, b, c, d}]合并使用 Reverse 和 ReverseApplied:
Fold[ReverseApplied[g], x, Reverse@{a, b, c, d}]Fold[f, x, {a, b, c}]f[Fold[f, x, {a, b}], c]Fold[f,x,{a,b,…}] 等价于 Fold[f,f[x,a],{b,…}]:
Fold[f, x, {a, b, c, d}]Fold[f, f[x, a], {b, c, d}]忽略第二自变量的函数给出 Nest 中相同的结果:
Fold[f[#1]&, x, Range[5]]Nest[f[#1]&, x, 5]可用 NestWhileList 计算 FoldList:
FoldList[f, x, {a, b, c}]foldStep[f_][{x_, {a_, b___}}] := {f[x, a], {b}}
First /@ NestWhileList[foldStep[f], {x, {a, b, c}}, MatchQ[{_, {__}}]]Fold[Append,{},list] 等价于 list:
Fold[Append, {}, {1, 2, 3, 4, 5}]可能存在的问题 (1)
巧妙范例 (3)
基本递归函数的显示形式 r[z,r[s,r[s,r[s,p[2]]]]] [更多信息]:
Array[Fold[Fold[2 ^ Ceiling[Log[2, Ceiling[(#1 + 2) / (#2 + 2)]]] (#2 + 2) - 2 - #1&, #2, Range[#1]]&, 0, Range[#]]&, 100]Fold[Function[{s, e}, Join[s, Append[#, e]& /@ s]], {{}}, {a, b, c}]Fold[Union[#1, #1 + #2]&, {0}, {1, 2, 2, 8}]第四斯维讷通-戴尔(Swinnerton–Dyer)多项式 [更多信息]:
Fold[Expand[(#1 /. x -> x + #2)(#1 /. x -> x - #2)]&, x, Sqrt[Prime[Range[4]]]]技术笔记
-
▪
- 函数的重复调用
相关指南
-
▪
- 函数迭代 ▪
- 函数式编程 ▪
- 循环结构 ▪
- 列表中的数学和统计运算
历史
1991年引入 (2.0) | 在以下年份被更新:1996 (3.0) ▪ 2014 (10.0) ▪ 2016 (11.0)
文本
Wolfram Research (1991),Fold,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Fold.html (更新于 2016 年).
CMS
Wolfram 语言. 1991. "Fold." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2016. https://reference.wolfram.com/language/ref/Fold.html.
APA
Wolfram 语言. (1991). Fold. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Fold.html 年
BibTeX
@misc{reference.wolfram_2026_fold, author="Wolfram Research", title="{Fold}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/Fold.html}", note=[Accessed: 05-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_fold, organization={Wolfram Research}, title={Fold}, year={2016}, url={https://reference.wolfram.com/language/ref/Fold.html}, note=[Accessed: 05-October-2026]}