为什么clojure中的符号可以用作函数?

时间:2014-01-23 15:37:44

标签: clojure symbols

我推荐你这个简短的代码:

('a 1)
;==> nil
('a 1 2)
;=>2

为什么符号a可以在此上下文中用作函数?

1 个答案:

答案 0 :(得分:1)

它允许您以一种很好的语法查找带有符号作为键的地图。

以下是等效的:

('a my-hash-map)
(get my-hash-map 'a)  ; returns value associated with 'a or nil if not present

为了更方便,您还可以提供默认值作为可选的第二个参数:

('a my-hash-map 42)  ; returns 42 if my-hash-map does't have the key 'a

至于你的例子,('a 1)返回 nil ,因为(get 1'a)返回 nil ,和('a 1 2)返回提供的默认值,2。