【发布时间】:2013-04-23 16:53:12
【问题描述】:
在clojure中,
(assoc {})
抛出一个arity异常,但是
(dissoc {})
没有。为什么?我本来希望他们俩都抛出异常,或者在没有提供键或值时都不会进行任何更改。
编辑:我看到了允许这些表格的理由;这意味着我们可以将 assoc 或 dissoc 应用于可能为空的参数列表。我只是不明白为什么一个会被允许而另一个不会,我很好奇我是否有充分的理由错过这一点。
【问题讨论】:
-
(assoc {})没有意义,因此是不允许的。 -
请注意,
(dissoc {})也不是。 -
我的论点是要么两者都有意义,要么都没有意义;但一个是允许的,另一个是不允许的(至少在 clojure 1.5.1 上)。我很好奇为什么。
标签: clojure