【问题标题】:Clojure extend Assotiative arityClojure 扩展了关联性
【发布时间】:2017-11-20 00:54:04
【问题描述】:

我需要实现自定义关联,但它不适用于多个参数。它只处理第一对。好像是直接调用assoc,而不是通过core assoc再RT/assoc。

(def my-assoc (reify
                clojure.lang.Associative
                  (assoc [_ k v]
                    (println "assoc!!" k v))))

(assoc my-assoc :a 2 :b 3) ;; prints only :a 2

应该怎么做才能支持multi arity?

【问题讨论】:

    标签: clojure extend associative reify


    【解决方案1】:

    println 返回零。所以返回原值:

    (def my-assoc (reify
                    clojure.lang.Associative
                    (assoc [m k v]
                      (println "assoc!!" k v)
                      m)))
    
    (assoc my-assoc :a 2 :b 3) ;; prints both
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多