pha*_*age 3 haskell immutability key-value data-structures
我对Haskell - Map中的这种数据类型感到困惑.特别是,有一个函数调用插入(来自Data.Map模块),它允许您将新值附加到Map数据结构.所以,这是我的困惑.如果haskell数据结构是不可变的,那么如何将新数据插入到现有的Map数据结构中?
insert
实际上并没有修改输入Map
.它返回一个新的 Map
,包含与原始条目相同的条目Map
,以及您要插入的条目.
但是,在引擎盖下,编译器可能实际上不必将所有旧条目复制到新条目中Map
; 如果它确定没有其他东西在使用输入,它可以重用原始文件Map
.不变性是语言的一种属性,不一定是语言的实现.