Fold
例題
すべて開く すべて閉じる例 (4)
スコープ (8)
Foldと一緒に純関数を使う:
Fold[{2 #1, 3#2}&, x, {a, b, c, d}]1つの引数にFoldの演算子形を使う:
Fold[f][{a, b, c, d}]2つの引数の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は第1引数としてシードを取る関数 f を必要とする:
Fold[g, x, {a, b, c, d}]第2引数のシードが使いたければ,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}]第2引数を無視する関数はNestにおけるのと同じ結果を与える:
Fold[f[#1]&, x, Range[5]]Nest[f[#1]&, x, 5]FoldListはNestWhileListで計算できる:
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)
Fold[f, {}]しかし,FoldListの動作はよく定義されている:
FoldList[f, {}]おもしろい例題 (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 Language. 1991. "Fold." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/Fold.html.
APA
Wolfram Language. (1991). Fold. Wolfram Language & System Documentation Center. Retrieved from 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: 03-July-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: 03-July-2026]}