On Wed, Dec 22, 2010 at 1:14 PM, Benny Tsai <benny.t...@gmail.com> wrote: > Hi Ken, > >> user=> (let [[x y & more] [1 2 3 4 5]] [x y more]) >> [1 2 (3 4 5)] >> user=> (let [[x y z] [1 2 3 4 5]] [x y z]) >> [1 2 3] >> user=> (let [[_ _ a b] [1 2 3 4 5]] [a b]) >> [3 4] >> >> You can grab any fixed position in this way, as well as a "rest" that >> is the tail of the sequence past the last of such. > > Right, that's true. However, Marek had given two examples of Python > tuple unpacking, the first being: > >> first, *middle, last = sequence(...) > > Which I believe in Python 3 will bind 'first' to the first element, > 'last' to the last element, and 'middle' to a sequence of all the > elements in the middle. That last part is what I don't know how to do > in Clojure.
I don't think Clojure has that. Closest is (let [[f & rst] [1 2 3 4 5] l (last rst) m (butlast rst)] [f m l]) Output is [1 (2 3 4) 5] Obviously, using the last element is non-lazy. It may well be that in cases where you'd want to do this you might prefer another data representation. -- 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