erlang映射函数和haskell映射函数有什么不同?Haskell和Erlang映射函数
in erlang map - >M1 = #{name=>john,age=>25}
。
在哈斯克尔地图 - >map :: (a -> b) -> [a] -> [b]
erlang映射函数和haskell映射函数有什么不同?Haskell和Erlang映射函数
in erlang map - >M1 = #{name=>john,age=>25}
。
在哈斯克尔地图 - >map :: (a -> b) -> [a] -> [b]
在二郎,则maps
是数据结构,您在其中存储你准值与键。它的工作原理类似于字典。然而二郎具有map
function:
map(Fun, Map1) -> Map2
类型:
Fun
=fun((K, V1) -> V2)
Map1
=Map2
#{}
=K
=V1
=V2
=term()
就像@Pascal在他的回答中所说的,map
函数是在各种数据结构(数组,......)上定义的。
的map
在哈斯克尔你形容不是一个数据结构,是函数变换元素的列表为元素的另一个列表。这是以懒惰的方式完成的。请注意,这里map
因此适用于特定的数据结构:列表[a]
。虽然这可能在未来发生变化。
这两者并没有太大的关系。他们共享一个名字,因为“映射”通常意味着你在其他值上投射值。
为了完成Willem的回答,erlang提供了各种数据结构的map函数:用于已经提到的地图,还有数组,dicts,gb-trees,列表,orddicts。 – Pascal
这不是Erlang的地图功能,那是地图数据结构。 – Dogbert
可以请你解释一下erlang地图数据结构@Dogbert –