Ho creato un protocollo in Clojure 1.2 che gestisce le mie proprie classi Java e ha una gestione predefinita per un java.lang.Object generico. Il codice simile a:Protocolli estesi per classi personalizzate, mappe e sequenze Java in Clojure
(extend-protocol PMyProtocol
my.java.ClassName
(protocol-function [c]
"My Java class result")
java.lang.Object
(protocol-function [c]
"Default object result"))
Come dovrei estendere questo per avere un trattamento speciale per le strutture dati Clojure standard (in particolare mappe, vettori e sequenze)?
Per denominarli esplicitamente nel caso sia necessaria una diversa gestione: 'c.l.IPersistentMap',' c.l.IPersistentVector', 'c.l.IPersistentSet' (c'è un qualche sistema in là ...) e per le sequenze' c.l.ISeq'. – kotarak
Grazie Michal e kotarak! Ho finito per usare clojure.lang.IPersistentMap e clojure.lang.ISeq che funzionano bene. – mikera