thank you! It seems so obvious now On Nov 13, 10:38 am, Benny Tsai <benny.t...@gmail.com> wrote: > One way you could do it is by building up the members incrementally > via 'let': > > (defstruct tz :a :b :c) > > (def tz1 (let [a 1 > b 2 > c (+ a b)] > (struct tz a b c))) > > On Nov 13, 7:31 am, garf <gary.overg...@gmail.com> wrote: > > > > > > > > > If I have a struct whose creation will require some function calls > > that references some of its members, I am unsure how to go about it in > > a clean way. For example: > > (defstruct tz :a :b :c) > > > (def tz1 1 2 (+ (:a tz1) (:b tz1)) > > > will not work, but reflects the problem. Ideally at the end of this > > I could do (:c tz1) and get 3 back. Any suggestions? Originally I > > had used assocs, but that runs into the immutability problem, for > > example > > > (defstruct tz :a :b) > > (def tz1 1 2) > > (assoc tz1 :c (+ (:a tz1) (:b tz1)) > > > does not actually update tz1 > > > Advice for better approaches?
-- 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