->foo is new in 1.3. I'm surprised so many people are recommending it without mentioning that. ->foo is like foo., except that it's a real clojure function and as such can be passed as a function; you can call apply on it; and so forth.
On Oct 6, 11:05 am, Razvan Rotaru <razvan.rot...@gmail.com> wrote: > This is what I'm looking for. Thanks. I have not seen this kind of > expression before: ->foo. Is is created by defrecord or is it > implemented at reader level? > > I realize now that I can also keep a generating function in the > variable stuff: > > (let [stuff #(car. %1 %2)] > (stuff 1982 "Mercedes") > (stuff 2011 "Seat")) > > But keeping the actual "constructor" is of course better. > > RR > > On Oct 6, 8:56 pm, Meikel Brandmeyer <m...@kotka.de> wrote: > > > > > > > > > Hi, > > > use the factory function. > > > Clojure 1.3.0 > > user=> (defrecord car [year manufacturer]) > > user.car > > user=> (defn create [stuff] (stuff 1982 "Mercedes Benz")) > > #'user/create > > user=> (create ->car) > > #user.car{:year 1982, :manufacturer "Mercedes Benz"} > > > You can't pass car. around at runtime because it is a class. And > > instantiating a class is hard-wired in the byte code. Hence the actual > > class must be known at compile time. ->car however is a normal clojure > > function. So you can pass it around as you like. > > > 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