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

Reply via email to