2016-10-03 4 views
0

Можно ли сделать эквивалент следующего в Clojurescript?Создавать запись в Clojurescript из параметризованного типа записи?

(defn new-record [Type] (Type.)) 

Я пробовал синтаксис-цитирование, которое, похоже, не работает вне REPL. Возможно ли создать экземпляр записи, не зная тип записи раньше времени?

ответ

0

следующие работы, с некоторыми оговорками:

(defrecord Foo []) 
(defn new-x [x] (new x)) 
(new-x Foo) 

Первый аргумент new должен быть символом, а не выражение. Вы получите ошибку:

(def x {:foo Foo}) 
(new-x (:foo x)) 

Это известная проблема.