相关疑难解决方法(0)

为什么使用关键字或符号作为函数来查找地图中的值有效?

引用Clojure的喜悦,第4.3.1节 -

因为关键字是自我评估并提供快速相等性检查,所以它们几乎总是在地图键的上下文中使用.使用关键字作为映射键的一个同样重要的原因是它们可以用作函数,将映射作为参数,以执行值查找:

(def population {:zombies 2700, :humans 9})
(:zombies population)
;=> 2700
(println (/ (:zombies population)
(:humans population))
"zombies per capita")
; 300 zombies per capita
Run Code Online (Sandbox Code Playgroud)

我不清楚这里发生了什么.不知何故(:zombies population)必须转变成对(get population :zombies)吧?这究竟是如何工作的?关键字评估自身,而不是函数.读者是否注意列表中的第一件事是关键字的情况,并添加get并将关键字移动到列表的末尾?

clojure

21
推荐指数
3
解决办法
3726
查看次数

在clojure源代码中,RT代表什么?

clojure/src/jvm/clojure/lang/RT.java

以上似乎是clojure源代码中最重要的源文件之一.为了理解架构,RT代表什么?

clojure

13
推荐指数
1
解决办法
525
查看次数

标签 统计

clojure ×2