<div class="gmail_quote">On Fri, Dec 2, 2011 at 7:27 PM, Scott L. Burson <span dir="ltr"><<a href="mailto:Scott@sympoiesis.com">Scott@sympoiesis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div id=":1jc">To put it another way: by your argument, I think the answer to<br>
Juanjo's question doesn't matter very much.  </div></blockquote></div><div><br></div>I think it does. What Nikodemus is arguing <b>is orthogonal to what I am saying</b>. One thing is whether keyword argument parsing of compiler macros is insuficient and whether one has to use &rest and ensure that the order is ok. I am fine with it.<div>

<br></div><div>A different issue is the utility of &key. I do not buy the argument that &key should always be used with &allow... in compiler macros. This forfeits any use of &key at all because the values are _never_ going to be trusted at all: one of the arguments might be a variable name and the parser will confuse the user about expectations.</div>

<div><br></div><div>More precisely, if I write</div><div><br></div><div>(define-compiler-macro foo (&rest my-args &key some-key-arg &allow-other-keys) ...)</div><div><br></div><div>and write (foo :some-key-arg some-value some-variable some-other-value) the parser is going to produce a useless value in some-key-arg. That means I have to do my own parsing of my-args to see whether the keyword arguments are to be trusted.</div>

<div><br></div><div>If on the other hand this definition</div><div><br></div><div>(define-compiler-macro foo (&rest my-args &key some-key-arg) ...)</div><div><br></div><div>implies that the compiler macro will refuse parsing (without an error) when some argument is not an allowed keyword, then this actually has some utility.</div>

<div><br>Regarding the issue of argument ordering and other stuff, there are many cases where I want to write compiler macros for the case in which the arguments are simple forms. This case is very simple to check and means that &key arguments have a value by themselves.</div>

<div><br></div><div>Juanjo</div><div><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>


</div>