On 6 May 2014 13:09, Gary Trakhman <gary.trakh...@gmail.com> wrote: > Last + butlast?
Yeah, there are a few more concise solutions to this problem if you're familiar with the standard library: (last (butlast coll)) (second (reverse coll)) (peek (pop (vec coll))) And a more efficient loop-solution would just keep the previous value stored until the end of the loop is reached: (loop [prev nil, coll (seq coll)] (if (next coll) (recur (first coll) (next coll) prev)) - James > > > On Tuesday, May 6, 2014, Roelof Wobben <rwob...@hotmail.com> wrote: > >> Found the answer : >> >> (defn secondlast [coll] >> (let [number 0 >> counter (- (count coll)2) ] >> (loop [coll coll counter counter number number] >> (if (= counter number) >> (first coll) >> (recur (next coll) counter (+ number 1)))))) >> >> and without the loop there will be : (first(drop(reverse v)) >> >> Roelof >> >> >> Op dinsdag 6 mei 2014 13:36:53 UTC+2 schreef Roelof Wobben: >>> >>> As far as I understand recur is going back to the loop so number is >>> never going back to 0 >>> but I see the problem (-(count coll)2 is changing it value and that >>> schould not happen. >>> So I think I have to set the initial value of counter in the let. >>> >>> what schould happen is this >>> >>> coll number counter >>> 1) [1,2,3.4.5) 0 3 >>> 2) [2.3,4,5] 1 3 >>> 3) [3,4,5] 2 3 >>> 4) [ 4,5] 3 3 >>> >>> so the (first coll) is executed which is 4. >>> >>> Am I at the right track now. >>> >>> >>> >>> Roelof >>> >>> -- >> 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/d/optout. >> > -- > 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/d/optout. > -- 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/d/optout.