[英]Basic example of Map in Erlang
学习Erlang的第2天。 我试图通过创建一个简单的map函数来学习在Erlang中使用Map的基础知识,该函数接受任何谓词和列表(由用户传入)并检查谓词是返回true还是false并将结果存储在列表中。
因此,如果用户传入(> 3)
作为谓词并且列表包含[3,4,5]
则所需的输出将是[false, true, true]
。
这是我试过的:
applyMap (P, LST) -> lists:map(P LST).
我很感激有关如何做到这一点的任何建议。
提前谢谢了!
我认为你只是缺少一个,
之间的P
和LST
在调用lists:map
。 试试这个:
applyMap (P, LST) -> lists:map(P, LST).
如果你将匿名函数fun(X) -> X > 3 end
传递给你的applyMap
,你应该得到你想要的输出。
例:
applyMap (fun(X) -> X > 3 end, LST).
有两个问题:首先,你错过了P
和LST
之间的逗号,但其次,你不能使用Haskell风格的curried函数,如(> 3)
。 lists:map((> 3), [1,2,3])
在Erlang中不正确。
在Haskell中, (> 3)
是\\n -> n > 3
的curry形式。 在Erlang中,您必须明确地编写它:
lists:map(fun(N) -> N > 3 end, [2,4,6])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.