<div dir="ltr">Hi<div><br></div><div>Thank you for the reply, even though the tweak is great it is not what I meant really. I am mostly </div><div>interested to know why the compiler, as defined by the standard, at read time do not expand all</div>
<div>macro forms whenever it  encounters one, even when the operator of the expression is a </div><div>macro form. Any expression is evaluated only after macro expansions, so I expect that any</div><div>expression, even ((...) ...), must be considered valid if after macro expansion it generates a valid</div>
<div>expression.</div><div><br></div><div>Your tweak shows that there is a need (you did it to be able to do interesting things) and it is what</div><div>we intuitively  expect when we (at least myself) learn about macros at first sight.</div>
<div><br></div><div>Now if the compiler behaves as I described above, does this cause any language design issue or </div><div>anything?</div><div><br></div><div>Kind regards</div><div>Taoufik</div><div><br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Tue, Jun 24, 2014 at 5:37 PM, Ron Garret <span dir="ltr"><<a href="mailto:ron@flownet.com" target="_blank">ron@flownet.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This is defined in CL to be a symtax error.  The head of a form can be a symbol or a lambda expression but not a macro.  You will notice that not only does this code not macroexpand, it won’t run either.<br>
<br>
It is possible to tweak macroexpand-all and the CCL compiler so that both accept ((…) …) syntax.  I’ve attached the code to do the latter; the former is left as an exercise.<br>
<span class="HOEnZb"><font color="#888888"><br>
rg<br>
</font></span><div class="im HOEnZb"><br>
On Jun 24, 2014, at 4:39 AM, Taoufik Dachraoui <<a href="mailto:dachraoui.taoufik@gmail.com">dachraoui.taoufik@gmail.com</a>> wrote:<br>
<br>
</div><div class="HOEnZb"><div class="h5">> Hi<br>
><br>
> Is there a reason why macroexpand-all does not expand macros placed in the<br>
> head of a list:<br>
><br>
> ? (defmacro g (x y) `(lambda (,x) ,y))<br>
> G<br>
> ? (macroexpand-all '((g x (+ x 1)) 3))<br>
> ((G X (+ X 1)) 3)<br>
><br>
> What if it is the case what could be the issue?<br>
><br>
> -Taoufik<br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> Openmcl-devel mailing list<br>
> <a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>
> <a href="http://lists.clozure.com/mailman/listinfo/openmcl-devel" target="_blank">http://lists.clozure.com/mailman/listinfo/openmcl-devel</a><br>
</div></div></blockquote></div><br></div>