Louis, obviously there's a problem here, the REPL should return user=> (map first [[1] [2]]) (1 2)
As for my point about macros, it's not about the calls, it's about macro processing before spitting out the code that will be compiled, what would this return ? user=> (defmacro mymac [func] (let [args (rest func)] `(- ~@args))) #'user/mymac Presently: user=> (mymac (+ 1 2 3)) -4 What about (mymac + (1 2 3)) ? Would + (1 2 3) be considered as one argument ? Why ? How the compiler achieve this grouping ? If the macro argument involves a list ([&body] being a common example) how do you decide what is a real list versus a call using your new syntax in the variable list of arguments ? If you cannot deal with this and have to force (mymac (+ 1 2 3)) when a macro is involved then what's the use of this new syntax ? What about embedded calls involving a mix of fns and macros ? I cannot see people having to dig to find out if some of these calls are macros versus fns and change the shape according to what is being called. You missed the point that I made about the fact that code is data and can be modified accordingly either through macros or runtime evaluations. Luc On Wed, 28 Dec 2011 01:59:12 +0800 Ambrose Bonnaire-Sergeant <abonnaireserge...@gmail.com> wrote: > On Wed, Dec 28, 2011 at 1:46 AM, Louis Yu Lu <louisy...@gmail.com> > wrote: > > > The proposed syntax sugar does not break the existing code > > > clojure.core=> map(first [[1] [2]]) > #<core$map clojure.core$map@5ec3d2> > [1] > > > Ambrose > -- Luc P. ================ The rabid Muppet -- 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