Haskell 不可变数据结构 - Map 数据类型

标签 haskell data-structures immutability key-value

我对 Haskell - Map 中的这种数据类型感到困惑。特别是,有一个函数调用 insert(来自 Data.Map 模块),它允许您将新值附加到 Map 数据结构。所以,这是我的困惑。如果 haskell 数据结构是不可变,那么如何将新数据插入到现有的 Map 数据结构中?

最佳答案

insert 实际上并不修改输入Map。它返回一个Map,其中包含与原始Map相同的条目,以及您要插入的条目。

不过,在幕后,编译器实际上可能不必将所有旧条目复制到新的 Map 中;如果它确定没有其他东西正在使用输入Map,则它可以重用原始 map 。不变性是语言的一个属性,不一定是该语言的实现

关于Haskell 不可变数据结构 - Map 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49879057/

相关文章:

haskell - 我想将 Lucid 添加到 Yesod 的 defaultLayout 中

data-structures - Erlang 中 "mutable"记录的最佳策略

python - 使用python实现队列

javascript - 使用 Redux Reducer 的 Immunity Helper 迭代数组并更改特定属性

java - 回收不可变字符串的第一个引用

haskell - Haskell 中的约束值类型

haskell - 将字节串流式传输为 WAI HTTP 服务器响应正文

haskell - 嵌套序列到分支/树数据结构

list - Haskell 中的置换实现

c - 无法从我的邻接矩阵代码中获取结果来声明图