4
使用Clojure周圍玩,我注意到,('+ 2 2)沒有把這樣的錯誤我會一直期待 - 它返回2.我已經花了幾分鐘打轉轉:在clojure中,符號投射到什麼功能?爲什麼('+ 2 2)= 2?
(def f (cast clojure.lang.IFn 'a-symbol))
(f 5) ;; => nil
(f 5 5) ;; => 5
(f 5 5 5) ;; ArityException Wrong number of args (3) passed to: Symbol
(f "hey") ;; => nil
(f "foo" "bar") ;; => "bar"
(f "foo" "bar" "baz") ;; => ArityException Wrong number of args (3) passed to: Symbol
據我所知,符號被轉換爲名稱爲Symbol的函數,該函數接受兩個參數並返回第二個參數。我猜它與符號類的實現有關?
這是一個字典查找操作。例如'(:字典)'<=>'(得到字典:a)'。 – SaltyEgg