我在《Programming Clojure》一书的第二章中,看到了这一段——
由于 Clojure 数据结构是不可变的并且正确实现了 hashCode,因此任何 Clojure 数据结构都可以成为映射中的键。
我无法理解上面引用中提到的功能有何优势。如果有人可以通过示例帮助我理解这一点或为我指出正确的资源,我将不胜感激。
当形成具有复合键(即由多条信息组成的键)的数据结构时,这可能很有用。
举一个简单的例子,假设我们有一个带有顶点的图:a :b,并且:c我们希望有一个数据结构,可以查找与任何边相关的成本度量。我们可以使用 Clojure 映射,其中每个键都是一个集合:
(def cost {#{:a :b} 5
#{:b :c} 6
#{:c :a} 2})
Run Code Online (Sandbox Code Playgroud)
我们现在可以查找与任何边相关的成本:
(get cost #{:c :b}) ; => 6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |