Good point. I keep falling into the trap of treating types like classes. Types don't have inline constructors, because normal functions perform that task well enough. If I want to coerce a map into a type, I really need just a constructor function, rather than the type itself.
In this case, something like: (defn make-bar [m] (Bar. (m :x) {} (dissoc m :x))) - James On 22 May 2010 07:06, Meikel Brandmeyer <m...@kotka.de> wrote: > Hi, > > user=> (defrecord Bar [x]) > user.Bar > user=> (into (Bar. nil) {:x 1 :y 2}) > #:user.Bar{:x 1, :y 2} > > One still has to know, that Bar takes an argument, but one could provide > and API function which takes care of that. > > user=> (defrecord Bar [x]) > user.Bar > user=> (defn empty-bar [] (Bar. nil)) > #'user/empty-bar > user=> (into (empty-bar) {:x 1 :y 2}) > #:user.Bar{:x 1, :y 2} > > Sincerely > Meikel > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en