【Erlang】lists:all/2 和 lists:any/2 对于空列表运算结果是啥?

先说结果, 无论F是什么, 结果都是这样:

    lists:all(F, []) = true
    lists:any(F, []) = false

换成其它语言也一样.

lists:all(F, []) = true

从逻辑上, 假如 A 和 B 是两个列表, 那么:

all(F, A ++ B) = all(F, A) andalso all(F, B)

显然, 如果一个大列表全部都是true, 把大列表分割成两个子列表后, 每个子列表中所有元素也都是true.

Erlang中, A = A ++ [], 所以

all(F, A ++ []) = all(F, A) andalso all …
more ...