Для тех, кто не пользуется 1.3.x (или нуждается в такой функциональности вне записей), следующее apply
имитирует методы и конструкторы java:
(defmacro applyj
([mc args] `(~mc ~@args))
([mc x args] `(~mc ~x ~@args))
([mc x y args] `(~mc ~x ~y ~@args))
([mc x y z args] `(~mc ~x ~y ~z ~@args)))
user=> (defrecord Puffball [id name])
user.Puffball
user=> (applyj Puffball. [149 "Urist"])
#:user.Puffball{:id 149, :name "Urist"}