ryoakg
2/24/2016 - 4:43 PM

cond-assoc.clj

(defmacro cond-assoc [x name]
  `(conj ~x (when ~name [~(keyword name) ~name])))

(let [foo 1
      bar nil]
  (-> {:a 1}
      (cond-assoc foo)
      (cond-assoc bar)))                ;=> {:a 1, :foo 1}