2016-07-18 14 views
6

Neden haritalar ve anahtar kelimeler hem varsayılan bir argüman ile fazladan Arity var? Bu bir uygulama ayrıntı veya belirli bir tasarım kararıNeden Clojure yok setleri varsayılan bir argüman kabul? kümeler yok ederken

mi?

({: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

Bu kolayca ve yararlı sildim olabilir bir anomali mutlaka geçerli: bakınız [amalloy cevabı @] (http://stackoverflow.com/a/38444128/1562315). – Thumbnail

cevap

3

Zorlayıcı bir sebep olduğunu düşünmüyorum: Kesinlikle yapabilirler ve bana göre makul görünüyor. özelliği 3b7c1612 haritalar ve anahtar kelimeler için eklenmiş, ve o zamandan beri dokunulmaz değildir; Bunu sadece taahhüt o baş harfi dahil edilmedi ve o zamandan beri bu kararı tekrar hiçbir büyük sebebi var oldu sanırım.