FoldWhileList
FoldWhileList[f,x,{a1,a2,…},test]
返回 {x,f[x,a1],f[f[x,a1],a2],…},在对结果应用 test 产生 True 之前,反复对下一个值 ai 应用 f.
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] 在同样的结果出现过两次前会不断重复应用 f.
- 你可以使用 Throw 在 FoldWhileList 结束之前退出该函数.
- FoldWhileList[f,test][list] 等价于 FoldWhileList[f,list,test].
- FoldWhileList[f,test][x,list] 等价于 FoldWhileList[f,x,list,test].
范例
打开所有单元关闭所有单元基本范例 (3)
范围 (8)
从原点开始计算一个随机游走,然后返回第一个范数超过 5 的点:
将 Cross 叠在一个随机单位向量列表上,直到结果的范数大于 0.1:
增加 1/n8 项,直到 Unequal 在机器运算精度上对连续两个结果产生 False:
在所有结果都不同的时候,将随机个数的整数加到 0 上,然后返回第一个重复的值:
用运算符形式的 FoldWhileList:
属性和关系 (4)
如果 test[x] 不产生 True,则 FoldWhileList[f,x,alist,test] 返回 {x}:
FoldWhile[f,x,alist,test,…] 等价于 Last[FoldWhileList[f,x,alist,test,…]]:
FoldWhileList[f,x,list,True&] 等价于 FoldList[f,x,list]:
对于只有一个参数的函数 f 而言,FoldWhileList[f,x,list,test,m,n] 等价于 NestWhileList[f,x,test,m,Length[list],n]:
文本
Wolfram Research (2020),FoldWhileList,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FoldWhileList.html.
CMS
Wolfram 语言. 2020. "FoldWhileList." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/FoldWhileList.html.
APA
Wolfram 语言. (2020). FoldWhileList. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FoldWhileList.html 年