用短路来证明真理

时间:2017-08-31 19:24:42

标签: functional-programming erlang

我想知道某些非常大的列表f(X)中的X是否属于L。 现在我有:

lists:foldl(fun(X, Last) -> f(X) andalso Last end, true, L)

问题是我不认为这种短路。即使L中的第一个元素为假,它​​也会一直持续,并且与false一起使用。

是否有折叠标志,这样会短路或我可以使用的其他功能?

我现在看到有一个名为all的函数,但它也没有说它是否短路。

1 个答案:

答案 0 :(得分:5)

padding-left没有办法停止折叠并立即返回值。您可以使用lists:all/2,如果传递的函数为列表中的任何项返回lists:foldl/3,它将停止处理列表的其余部分:

false
相关问题