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

mad*_*tap 6 clojure

为什么地图和关键字都有一个带有默认参数的额外arity,而set则没有?

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

({: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
Run Code Online (Sandbox Code Playgroud)

ama*_*loy 3

我不认为有任何令人信服的理由:他们当然可以,而且对我来说似乎足够合理。该功能是在3b7c1612中为地图和关键字添加的,此后一直没有被触及;我想它只是没有包含在最初的承诺中,而且从那以后就没有充分的理由重新审视这个决定。