Birkaç aynı Swing bileşeni için yazdığım bir Clojure defprotocol
'e birkaç yöntem eklemem gerekiyor:Bir clojure makrosundan birden çok değer döndürme
(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]))
Yöntem imzalarının üçünü döndüren bir makro yazabileceğim herhangi bir yol var mı (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))
Bu makro, her bir çağrı ile büyüyen defprotocol
'ye üç öğe eklemelidir.
Makro `[email protected]
döndürüp "yerinde" genişleyebilir mi?
Bunu, Stuart Sierra'nın "do-template" makrosuna bakarak öğreniyorum (http://clojure.github.com/clojure/clojure.template-api.html). Konuştuğumuz gibi deney yapıyorum :-). Teşekkürler. – Ralph