Erlang中的map函数

6

除了拥有多个元数的映射功能(高达4个)外,Prolog还允许您(在某些情况下)将多元数函数映射到单个列表上。假设您想测试“x”是否是多个列表的成员。您可以执行以下操作:

maplist(member(x),[[a,b,c,x],[3,f,s,x]]).

member函数的第一个参数被包含在结果中,然后整个结果映射到列表上。

问题1:Erlang是否有类似的函数?我在文档中找不到它,但在Prolog文档中也找不到。

问题2:如何使用map(以及类似的函数)进行多元性操作?需要自己编写。

谢谢。

2个回答

3
也许可以这样表达:

也许可以这样说:

23> lists:map(fun(L) -> lists:member(42,L) end, [[1,5,8,4],[13,42],[7,2,10]]).
[false,true,false]
24>

3

lists:map/2和列表推导式两种方法:

1> lists:map(fun(L) -> lists:member(42,L) end, [[1,5,8,4],[13,42],[7,2,10]]).
[false,true,false]
2> [ lists:member(42,L) || L <- [[1,5,8,4],[13,42],[7,2,10]] ].
[false,true,false]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接