On Wed, Dec 22, 2010 at 12:31 PM, Laurent PETIT <laurent.pe...@gmail.com> wrote: > > > 2010/12/22 Ken Wesson <kwess...@gmail.com> >> >> On Wed, Dec 22, 2010 at 10:59 AM, Benny Tsai <benny.t...@gmail.com> wrote: >> > Hi Marek, >> >> Great! I was wondering whether Clojure supports something like >> >> tuple-unpacking in Python. Does it also support "patterned" >> >> destructuring like: >> >> >> >> first, *middle, last = sequence(...) >> >> -or- >> >> first, rest = sequence(...) >> >> >> >> The latter could be achived by something like `first+rest', I suppose, >> >> but don't know the "Clojure" name for it. >> > >> > The latter is definitely supported; the name after a '&' will be bound >> > to the remainder of a sequence: >> > >> > user=> (let [[fst & rst] [1 2 3]] (println "first:" fst "rest:" rst)) >> > first: 1 rest: (2 3) >> > >> > But I don't know of a way to bind the 'middle' elements of a sequence >> > to something. >> >> 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. >> >> By the way, what is "fmap"? It has no entry at >> http://clojure.github.com/clojure/clojure.core-api.html, and >> >> user=> fmap >> #<CompilerException java.lang.Exception: Unable to resolve symbol: >> fmap in this context (NO_SOURCE_FILE:23)> >> >> in my copy of Clojure 1.2. > > Answer in Benny's first contribution to this thread: * > (:use [clojure.contrib.generic.functor :only (fmap)]))
Oh -- I didn't read back that far. -- 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