为什么不知道clojure集接受默认参数?

时间:2016-07-18 16:37:50

标签: clojure

为什么地图和关键字都有一个带有默认参数的额外arity,而设置为don?#?t?

这是实施细节还是具体的设计决策?

({:a 2} :b :not-found) ;;=> :not-found

(:b {:a 2} :not-found) ;;=> :not-found

;; This seems counter intuitive.
(#{:a} :b :not-found) ;;=> clojure.lang.ArityException

(:b #{:a} :not-found) ;;=> :not-found

1 个答案:

答案 0 :(得分:3)

我认为没有任何令人信服的理由:他们当然可以,而且对我来说似乎足够合理。该功能已添加到3b7c1612中的地图和关键字中,并且此后未被触及;我想它只是没有被包含在那个初始提交中,因此没有很好的理由重新审视这个决定。