<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Oct 18, 2009, at 4:26 AM, Taoufik Dachraoui wrote:</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div><br></div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>In the CL specs&nbsp;</div><div><br></div><div><div><span class="Apple-style-span" style="font-family: Times; "><b><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="font-weight: normal; ">"</span></font><a rel="DEFINITION" href="file:///usr/local/doc/HyperSpec/Body/s_the.htm#the">the</a></b>&nbsp;specifies that the&nbsp;<a rel="DEFINITION" href="file:///usr/local/doc/HyperSpec/Body/26_glo_v.htm#value"><i>values</i></a>[1a] returned by&nbsp;<i>form</i>&nbsp;are of the&nbsp;<a rel="DEFINITION" href="file:///usr/local/doc/HyperSpec/Body/26_glo_t.htm#type"><i>types</i></a>&nbsp;specified by&nbsp;<i>value-type</i>.&nbsp;</span></div><div><span class="Apple-style-span" style="font-family: Times; ">The consequences are undefined if any&nbsp;<i>result</i>&nbsp;is not of the declared type."</span></div></div><div><br></div><div>It is clear that (THE type expr) &nbsp;specifies the the returned value of expr is of type type.</div><div><br></div></div></blockquote><div><br></div><div>No, this is not clear. &nbsp;The only thing that is clear is just what it says, that if the result is not of the declared type then the consequences are undefined. &nbsp;In CCL, for example:</div><div><br></div></div></div></blockquote>Where do you see "not of the declared"?</div></div></div></div></blockquote><div><br></div><div>I believe you meant to ask: where do you see, "Not of the declared TYPE".&nbsp;</div><div><br></div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Where do you see declared the in the specs?</div></blockquote><div><br></div><div>That is not a grammatically correct English sentence. &nbsp;But I'm going to guess that you meant to write: Where do you see "declared" in the specs?</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I see "values returned by form".</div></blockquote><div><br></div><div>That's in the first sentence. &nbsp;Do you see that there is a second sentence? &nbsp;What are the last five words in that second sentence?</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div>I believe that you missunderstood my concern,</div></div></div></div></blockquote><div><br></div><div>I'm pretty sure that's not the problem.</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div>I may be wrong</div><div>and I may be right, clear, precise and correct answers may convince me.</div></div></div></div></blockquote><div><br></div><div>I've been as clear and precise as I know how to be. &nbsp;You, however, are being sloppy and lazy. &nbsp;Did you read the paper that I pointed you to? &nbsp;No, you did not, because if you did you would know the answers to some of the questions that you continue to ask.</div><div><br></div></div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><font class="Apple-style-span" color="#144FAE"><br></font><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Again the example:</div><div><br></div><div><div>? (setf z 1)</div><div>1</div><div>? (the fixnum z)</div><div>;Compiler warnings :</div><div>; &nbsp; In an anonymous lambda form: Undeclared free variable Z</div><div>1</div><div>? z</div><div>1</div><div>? (the fixnum 1)</div><div>1</div><div>?</div><div><br></div><div>As you can see, after the SETF z has a value of 1 and (THE fixnum 1) does not raise a&nbsp;</div><div>warning&nbsp;but &nbsp;(THE fixnum z) does, this means to me that the THE operator does not&nbsp;</div><div>merely uses the returned value of z but has something too say about z, and this is wrong</div><div>I believe.</div></div></div></blockquote><div><br></div><div>The exact same thing happens with other operators:</div><div><br></div></div></div></blockquote>But do you agree that the z defined by SETF is a lexical variable?</div><div><br></div></div></div></div></blockquote><div><br></div><div>No. &nbsp;Z is not defined by SETF. &nbsp;SETF doesn't define anything. &nbsp;The fact that CCL creates a place for you when you use SETF on a symbol that has not been defined is a hack for the sake of convenience. &nbsp;It is not behavior that is defined by the standard.</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div>? (setf x 1)</div><div>1</div><div>? ((lambda () x))</div><div>;Compiler warnings :</div><div>; &nbsp; In an anonymous lambda form: Undeclared free variable X</div><div>1</div><div>? ((lambda () 1))</div><div>1</div><div>? (let ((y x)) y)</div><div>;Compiler warnings :</div><div>; &nbsp; In an anonymous lambda form: Undeclared free variable X</div><div>1</div><div>? (let ((y 1)) y)</div><div>1</div><div><br></div><div><br></div><div>It has nothing to do with THE, it has to do with whether a reference to an undeclared free variable is passed to the compiler, which is what generates these warnings. &nbsp;Again: this has nothing to do with THE -- except insofar as THE is one construct (among many) that causes the compiler to be invoked.</div><div><br></div></div></div></div></blockquote>It remains that the THE operator as implemented does not follow the specs.</div><div><br></div></div></div></div></blockquote><br></div><div>No. &nbsp;You are completely and utterly mistaken, and if you keep saying that there is something wrong with "THE" then everyone will eventually write you off as a troll and an idiot.</div><div><br></div><div>Now go do your homework.</div><div><br></div><div>rg</div><div><br></div></body></html>