Hey Armando - How did you get the nice syntax highlighting into your post??? Enquiring minds wanna know..... Alan
On Fri, May 3, 2013 at 7:41 AM, Jim - FooBar(); <jimpil1...@gmail.com> wrote: > I Just realised you've many responses and that you've already solved your > problem...sorry for the noise people. > > Jim > > > > On 03/05/13 15:38, Jim - FooBar(); wrote: >> >> oops there is a typo! >> >> line 6 should be: >> (conj res (doto c (.setAppliedBalance (max 0 (- due (.getBalance c)))))) >> >> >> On 03/05/13 15:22, Jim - FooBar(); wrote: >>> >>> something like this perhaps? >>> >>> (loop [[c & more]] cards >>> res [] >>> due 100] >>> (if-not c res >>> (recur more >>> (conj res (doto c (.setAppliedBalance (max 0 (- due ))))) >>> (->> c .getBalance (- due)))) ) >>> >>> Jim >>> >>> ps: haven't got a clue what objects you're working with so I'm >>> purposefully using setters which is close to what you showed in your Ruby >>> example.... >>> >>> >>> >>> On 03/05/13 14:28, Jim - FooBar(); wrote: >>>> >>>> On 02/05/13 22:21, Steven Degutis wrote: >>>>> >>>>> Given pseudo-code (Ruby-ish): >>>>> >>>>> due = 100 >>>>> cards = cards.map do |card| >>>>> card.applied_balance = max(0, due - card.balance) >>>>> due -= card.applied_balance >>>>> >>>>> Notice how due changes at each turn, and each successive item in >>>>> "cards" sees the change. >>>>> >>>>> What's an idiomatic way to do this in Clojure without using refs? >>>>> >>>>> -Steven >>>>> >>>> >>>> Not a Ruby expert here, but I think 'reduce' is your friend.... :) >>>> loop/recur is also an option ... >>>> >>>> the problem is not really how to loop, but how to replace all this >>>> mutation...I'm saying this because you specifically asked not to use any >>>> reference types. >>>> >>>> >>>> Jim >>> >>> >> > > -- > -- > 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 unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.