繁体   English   中英

Erlang中Map的基本示例

[英]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).  

我很感激有关如何做到这一点的任何建议。

提前谢谢了!

我认为你只是缺少一个,之间的PLST在调用lists:map 试试这个:

applyMap (P, LST) -> lists:map(P, LST).

如果你将匿名函数fun(X) -> X > 3 end传递给你的applyMap ,你应该得到你想要的输出。

例:

applyMap (fun(X) -> X > 3 end, LST).

有两个问题:首先,你错过了PLST之间的逗号,但其次,你不能使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM