Как мне параметризовать доступ к Java Enum в Clojure?

скажем, у меня есть java enum. Например:

public enum Suits {CLUBS, DIAMONDS, HEARTS, SPADES};

нормально Сделайте что-нибудь в Clojure с этим enum, как:

(defn do-something []
   (let [s Suits/DIAMONDS] (...)))

, но я хочу написать функцию Clojure, которая позволяет абоненту указывать, какой экземпляр Enum использовать:

(defn do-something-parameterized [suit]
   (let [s  Suits/suit] (...)))

Идея состоит в том, чтобы позволить абоненту пройти в » Алмазы " и имеют Diamonds экземпляра включения s в . .

Я мог бы иметь COND Подходит к параметру, но это кажется Clunusier, чем необходимо. Я полагаю, я мог бы также использовать макрос для построения костюмов / в костюм . Это способ сделать это или там Немакровый способ, которым я скучаю?

11
задан stand 5 September 2011 в 21:52
поделиться