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 –