2017-06-20 114 views
-6

erlang映射函数和haskell映射函数有什么不同?Haskell和Erlang映射函数

in erlang map - >M1 = #{name=>john,age=>25}

哈斯克尔地图 - >map :: (a -> b) -> [a] -> [b]

+2

这不是Erlang的地图功能,那是地图数据结构。 – Dogbert

+0

可以请你解释一下erlang地图数据结构@Dogbert –

回答

9

二郎,则maps数据结构,您在其中存储你准。它的工作原理类似于字典。然而二郎具有map function

map(Fun, Map1) -> Map2 

类型:

  • Fun = fun((K, V1) -> V2)
  • Map1 = Map2#{} =
  • K = V1 = V2 = term()

就像@Pascal在他的回答中所说的,map函数是在各种数据结构(数组,......)上定义的。

map哈斯克尔你形容不是一个数据结构,是函数变换元素的列表为元素的另一个列表。这是以懒惰的方式完成的。请注意,这里map因此适用于特定的数据结构:列表[a]。虽然这可能在未来发生变化。

这两者并没有太大的关系。他们共享一个名字,因为“映射”通常意味着你在其他值上投射值。

+0

为了完成Willem的回答,erlang提供了各种数据结构的map函数:用于已经提到的地图,还有数组,dicts,gb-trees,列表,orddicts。 – Pascal