tengo que añadir varios métodos a una Clojure defprotocol
que estoy escribiendo para varios componentes Swing idénticos:devolver varios valores de una clojure macro
(defprotocol view-methods
(ok-button-add-action-listener [this listener])
(ok-button-set-enabled [this enabled])
(ok-button-set-selected [this selected])
(cancel-button-add-action-listener [this listener])
(cancel-button-set-enabled [this enabled])
(cancel-button-set-selected [this selected])
(other-button-add-action-listener [this listener])
(other-button-set-enabled [this enabled])
(other-button-set-selected [this selected]))
¿Hay alguna manera de que puedo escribir una macro que devuelve todos tres de las firmas de método (xxx-button-add-action-listener
, xxx-button-set-enabled
, xxx-button-set-selected
)?
(defprotocol view-methods
(add-methods ok)
(add-methods cancel)
(add-methods other))
Esta macro tiene que añadir tres elementos a la creciente defprotocol
con cada invocación.
¿Puede una macro devolver `[email protected]
y expandir "en su lugar"?
Estoy descubriendo eso al mirar la macro 'do-template' de Stuart Sierra (http://clojure.github.com/clojure/clojure.template-api.html). Estoy experimentando con esto mientras hablamos :-). Gracias. – Ralph