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