FoldWhileList[f,x,{a1,a2,…},test]
test を結果に適用した結果がTrueではなくなるまで,f を後続の値 aiに繰り返し適用して{x,f[x,a1],f[f[x,a1],a2],…}を返す.
FoldWhileList[f,list,test]
FoldWhileList[f,First[list],Rest[list],test]と等しい.
FoldWhileList[f,x,{a1,a2,…},test,m]
各ステップでの test の引数として,最新の m 個の結果を提供する.
FoldWhileList[f,x,{a1,a2,…},test,All]
各ステップでの test の引数して,それまでのすべての結果を提供する.
FoldWhileList[f,x,{a1,a2,…},test,m,n]
test が失敗した後で f を n 回余分に適用して n 個の追加的な結果を返す.
FoldWhileList[f,x,{a1,a2,…},test,m,-n]
n 個少ない結果を返す.
FoldWhileList[f,test]
式に適用可能なFoldWhileListの演算子形を返す.
FoldWhileList
FoldWhileList[f,x,{a1,a2,…},test]
test を結果に適用した結果がTrueではなくなるまで,f を後続の値 aiに繰り返し適用して{x,f[x,a1],f[f[x,a1],a2],…}を返す.
FoldWhileList[f,list,test]
FoldWhileList[f,First[list],Rest[list],test]と等しい.
FoldWhileList[f,x,{a1,a2,…},test,m]
各ステップでの test の引数として,最新の m 個の結果を提供する.
FoldWhileList[f,x,{a1,a2,…},test,All]
各ステップでの test の引数して,それまでのすべての結果を提供する.
FoldWhileList[f,x,{a1,a2,…},test,m,n]
test が失敗した後で f を n 回余分に適用して n 個の追加的な結果を返す.
FoldWhileList[f,x,{a1,a2,…},test,m,-n]
n 個少ない結果を返す.
FoldWhileList[f,test]
式に適用可能なFoldWhileListの演算子形を返す.
詳細
- FoldWhileList[f,x,{a1,a2,…},test]は最初の要素が x で最後の要素が test を適用してもTrueにならない最初の式 f[… f[f[x,a1],a2]…,ak]であるリストを返す.
- test[x]がTrueを与えなければ,FoldWhileList[f,x,alist,test]は{x}を与える.
- FoldWhileList[f,x,alist,test]はFoldWhileList[f,x,alist,test,1]に等しい.
- FoldWhileList[f,x,alist,test,m]はFoldWhileList[f,x,alist,test,m,0]に等しい.
- FoldWhileList[f,x,alist,UnsameQ,All]は,同じ結果がはじめて2つ以上になるまで f を適用し続ける.
- Throwを使って終了前にFoldWhileListから抜け出すことができる.
- FoldWhileList[f,test][list]はFoldWhileList[f,list,test]に等しい.
- FoldWhileList[f,test][x,list]はFoldWhileList[f,x,list,test]に等しい.
例題
すべて開く すべて閉じる例 (3)
結果が整数ではなくなるまで5!を徐々に大きくなる正の整数で割る:
FoldWhileList[Divide, 5!, Range[10], IntegerQ]Unequalが機械演算で連続する2つの結果についてFalseを返すまで1/n8項を足す:
FoldWhileList[Plus, 0., 1 / Range[100] ^ 8, Unequal, 2]FoldWhileList[Divide, 5!, Range[10], IntegerQ, 1, -1]スコープ (8)
12から始め,残りが正の間徐々に大きくなる整数を引いていく:
FoldWhileList[Subtract, 12, {1, 2, 3, 4, 5, 6}, Positive]原点から始めてランダムウォークを計算し,ノルムが5を超える最初の点を返す:
FoldWhileList[Plus, {0, 0}, AngleVector /@ RandomReal[2Pi, 50], Norm /* LessThan[5]]%//Last//Norm結果のノルムが0.1より大きい限りランダムな単位ベクトルのリストにCrossを折り重ねる:
FoldWhileList[Cross, Normalize /@ RandomReal[1, {100, 3}], Norm /* GreaterThan[0.1]]%//Last//NormUnequalが機械演算で連続する2つの結果に対してFalseを返すまで1/n8項を足す:
FoldWhileList[Plus, 0., 1 / Range[200] ^ 8, Unequal, 2]結果がすべて異なる間ランダムな整数を0に加え,繰り返された最初の値を返す:
SeedRandom[123];FoldWhileList[Plus, 0, DeleteCases[RandomInteger[{-10, 10}, 100], 0], UnsameQ, All]5!を連続する正の整数で割り,整数ではなくなる最初の結果を返す:
FoldWhileList[Divide, 5!, Range[10], IntegerQ, 1, 0]FoldWhileList[Divide, 5!, Range[10], IntegerQ, 1, -1]FoldWhileList[Divide, 5!, Range[10], IntegerQ, 1, -2]Catch[FoldWhileList[If[# > 25, Divide[#1, #2], Throw[$Failed]]&, 5!, Range[10], IntegerQ]]FoldWhileListの演算子形を使う:
FoldWhileList[Subtract, Positive][12, {1, 2, 3, 4, 5, 6}]FoldWhileList[Plus, LessThan[20]][Range[10]]特性と関係 (4)
test[x]がTrueを与えなければ,FoldWhileList[f,x,alist,test]は{x}を返す:
FoldWhileList[Divide, 0, {2, 3, 4, 5}, Positive]FoldWhile[f,x,alist,test,…]はLast[FoldWhileList[f,x,alist,test,…]]に等しい:
FoldWhileList[Divide, 5!, Range[10], IntegerQ]Last[%]FoldWhile[Divide, 5!, Range[10], IntegerQ]FoldWhileList[f,x,list,True&]はFoldList[f,x,list]に等しい:
FoldWhileList[Plus, 0, Range[10], True&]FoldList[Plus, 0, Range[10]]FoldWhileList[f,x,list,test,m,n]は,引数を1つしか取らない関数 f について,NestWhileList[f,x,test,m,Length[list],n]に等しい:
FoldWhileList[Sqrt[#]&, 10 ^ 6, Range[4], GreaterThan[2], 1, 0]NestWhileList[Sqrt[#]&, 10 ^ 6, GreaterThan[2], 1, 4, 0]関連するガイド
-
▪
- 関数反復
テキスト
Wolfram Research (2020), FoldWhileList, Wolfram言語関数, https://reference.wolfram.com/language/ref/FoldWhileList.html.
CMS
Wolfram Language. 2020. "FoldWhileList." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FoldWhileList.html.
APA
Wolfram Language. (2020). FoldWhileList. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FoldWhileList.html
BibTeX
@misc{reference.wolfram_2026_foldwhilelist, author="Wolfram Research", title="{FoldWhileList}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/FoldWhileList.html}", note=[Accessed: 14-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_foldwhilelist, organization={Wolfram Research}, title={FoldWhileList}, year={2020}, url={https://reference.wolfram.com/language/ref/FoldWhileList.html}, note=[Accessed: 14-November-2026]}