我試圖定義的Clojure 1.4與原始參數的協議(讓我能避免性能敏感的代碼不必要的原始拳):使用與原始參數的協議
(defprotocol A
(foo [a ^long x]))
(extend-type java.lang.String A
(foo [s ^long x] (.charAt s x)))
這個樣子吧工作正常,但我嘗試使用它時出現異常:
(foo "abracadarbra" 3)
=> ClassCastException XXXX cannot be cast to clojure.lang.IFn$OLO
我在做什麼錯?
感謝亞瑟!這有效 - 但它實際上是使用函數的原始版本嗎? – mikera
它似乎不是......: -/ –
嗯,不完全解決這個問題,然後我的意圖是找到一種方法來避免拳擊原始參數..... – mikera