Фактор кода Clojure, устанавливающий множество различных полей в объекте Java

Как мне разложить код на множители, устанавливая много разных полей в объекте Java? Я хотел бы разложить с

(set! (. employee name) "Chris")
(set! (. employee age) 100)
(set! (. employee salary) 5000)

на

(doseq [field '((name "Chris") (age 100) (salary 5000))]
  (set! (. employee (first field)) (second field)))

). t работает, потому что точка является макросом и пытается оценить (первое поле) буквально. Между прочим, я понимаю, что установка полей не является хорошей практикой. Мне нужно взаимодействовать с устаревшим кодом.

9
задан chris 2 January 2011 в 19:40
поделиться