Tom*_*mmy 0 erlang functional-programming
我想知道在一些非常大的列表中f(X)是否适用于所有人.现在我有:XL
lists:foldl(fun(X, Last) -> f(X) andalso Last end, true, L)
Run Code Online (Sandbox Code Playgroud)
问题是我不认为这种短路.即使它的第一个元素是错误的,L它仍然会一直持续着false.
是否有折叠标志,这样会短路或我可以使用的其他功能?
我现在看到有一个被调用的函数,all但它没有说它是否短路.
lists:foldl/3没有办法停止折叠并立即返回一个值.你可以使用lists:all/2这个,如果传递的函数返回false列表的任何项目,它将停止处理列表的其余部分:
lists:all(fun(X) -> f(X) end, L)
% or
lists:all(fun f/1, L)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |