我有这个Erlang代码:
not lists:any(fun(Condition) ->Condition(Message) end, Conditions).
Run Code Online (Sandbox Code Playgroud)
任何人都可以用外行的话来解释整个声明吗?对于您的信息Condition是一个函数,Conditions是一个数组.什么fun(Condition) ->Condition(Message) end意思?以及的含义not lists:any.
fun(Condition) ->Condition(Message) end
Run Code Online (Sandbox Code Playgroud)
是一个lambda函数,它将函数应用于Condition值Message(作为周围代码的闭包).
lists:any
Run Code Online (Sandbox Code Playgroud)
是一个函数,它接受一个谓词和一个值列表,并依次调用每个值的谓词,并在true任何谓词调用时返回原子.
总体而言,结果是原子true,如果没有的Condition列表功能Conditions返回true的Message值.
编辑 - 添加文档 lists:any
any(Pred, List) -> bool()
Run Code Online (Sandbox Code Playgroud)
类型:
Pred = fun(Elem) -> bool()
Elem = term()
List = [term()]
Run Code Online (Sandbox Code Playgroud)
如果Pred(Elem)为ElemList 中的至少一个元素返回true,则返回true .