为什么评估列表在其他情况下仅返回数字和错误?

问题描述 投票:0回答:1

在 Clojure REPL 中:

('+ 1 2) ; 2
('+ 1 2 3) ; (err) clojure.lang.ArityException: Wrong number of args (3) passed to: clojure.lang.Symbol

为什么会发生以及它是如何运作的?我试图检查代码,但我无法弄清楚函数位置中调用了什么

clojure
1个回答
0
投票

Clojure 符号也是函数,其实现方式类似于

get
。所以你在这里调用的是
(get '+ 1 2)
,这是可以的(尝试在
'+
中查找
1
,这是行不通的,因此返回
2
的后备)。然后数量就不起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.