【问题标题】:What happens when I pass arguments to a Clojure symbol?当我将参数传递给 Clojure 符号时会发生什么?
【发布时间】:2012-01-03 09:27:43
【问题描述】:

如果我这样做:

('a 'b 'c)

我明白了:

c

为什么?

【问题讨论】:

  • 不应该是(list 'a 'b 'c)

标签: clojure symbols


【解决方案1】:

Hauleth 发布的链接很好地概述了符号,但您的问题的答案是,将符号作为函数调用等同于在第一个参数中查找该符号。

('a 'b)

等价于

(get 'b 'a)

get 的文档显示您可以传递一个可选的第三个参数作为默认值。在您的示例中,'c 被视为默认值并返回,因为 'b 不是地图并且 'a 无法找到。

【讨论】:

  • 你有(get)倒退的论据,否则我想接受你的回答
  • Sooooo,不仅是关键字,还有符号......作为示例,我们总是放置一个未定义的未引用符号,我们从未考虑过符号本身......那是...... hrm,习惯了语法糖...集合,符号和关键字也是IFn ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多