Clojure defrecord
генерирует некоторые вспомогательные функции для определяемого типа. Их цель состоит в том, чтобы иметь конструкторов для типа первоклассных граждан Clojure. В частности, defrecord Point
генерирует map->Point
, который берет карту и (это, вероятно, то, что вам нужно) ->Point
, который принимает позиционные аргументы. Итак, это:
(defrecord Point [x y])
(map (partial apply ->Point) [[1 2] [3 4]])
производит это:
(#user.Point{:x 1, :y 2} #user.Point{:x 3, :y 4})