Ответ 1
Не рекомендуется использовать записи просто для "документации" - простые старые карты более гибкие, простые и простые. Для документации вы можете просто добавить docstring или комментарий или создать функцию типа (defn make-whatever [thing1 thing2])
.
Если вы все еще хотите запись, у вас есть несколько вариантов в зависимости от того, используете ли вы clojure версию 1.3 или новее. Если это так, (defrecord Whatever ...)
также определяет функцию map->Whatever
и функцию ->Whatever
, которая принимает позиционные аргументы. Если нет, вы можете написать (into (Whatever. nil nil nil) some-map)
(передавая правильное число nils для типа записи).