He creado un protocolo en Clojure 1.2 que maneja mis propias clases de Java y tiene un manejo predeterminado para un java.lang.Object genérico. El código es algo como:Prolongar protocolos para clases, mapas y secuencias personalizados de Java en Clojure
(extend-protocol PMyProtocol
my.java.ClassName
(protocol-function [c]
"My Java class result")
java.lang.Object
(protocol-function [c]
"Default object result"))
Cómo debería extender esto para tener un manejo especial para las estructuras de datos estándar Clojure (en particular los mapas, vectores y secuencias)?
Para nombrarlos explícitamente en caso de que sea necesario un manejo diferente: 'c.l.IPersistentMap',' c.l.IPersistentVector', 'c.l.IPersistentSet' (hay algún sistema allí ...) y para las secuencias' c.l.ISeq'. – kotarak
¡Gracias Michal y kotarak! Terminé usando clojure.lang.IPersistentMap y clojure.lang.ISeq, que funcionan bien. – mikera