Dato un insieme, mappa e vettore in Clojure implementare sia IPersistentCollection e IFN, come fa Clojure decidere quale implementazione di SayHi da utilizzare:Risoluzione di chiamata protocollo Clojure quando classe implementa diverse interfacce
(defprotocol SayHi
(hi [this]))
(extend-protocol SayHi
clojure.lang.IPersistentCollection
(hi [_] (println "Hi from collection"))
clojure.lang.IFn
(hi [_] (println "Hi from Fn!"))
clojure.lang.IPersistentSet
(hi [_] (println "Hi from set!")))
(hi #{})
Hi from set!
(hi [])
Hi from collection
può puntare al codice sorgente clojure in cui questo è fatto? Non sono stato in grado di trovarlo – DanLebrero
@dAni ha aggiornato la risposta –