Clojure 数据结构的不可变性、持久性与瞬态性
在 Clojure 编程中,数据结构的操作和特性十分关键。下面我们将深入探讨 Clojure 数据结构的不可变性、持久性以及瞬态性等重要特性。
1. 构建嵌套映射
我们可以使用 assoc-in 函数结合 reduce 来构建嵌套映射。示例代码如下:
(reduce #(apply assoc-in %1 %2) {} flat-breakup)
;= {"Elmer Fudd" {"Shells" 100,
;= "Anvil" 300,
;= "Shotgun" 800},
;= "Wile Coyote" {"Hole" 1000,
;= "Dynamite" 5000,
;= "Clock" 300,
;= "Anvil" 900}}
flat-breakup 映射提供的序列中的每个值都是一个类似 [["Wile Coyote" "Anvil"] 900] 的映射条目。当我们的归约函数对这些映射条目使用 apply 时,对 assoc-in 的调用会利用每个条目中的数据来定义结果映射的结构和最深层的值。
2. 不可变性与持久性
Clojure 的
超级会员免费看
订阅专栏 解锁全文
137

被折叠的 条评论
为什么被折叠?



