I found in the reference manual that eqv? works for NANs. I assume that eqv? or = would both work on infinities. Here again, the science collection uses eqv? for both infinities and NANs - so I may have discussed this with you years ago when I originally wrote them. But I do think that adding explicit nan?, infinite?, and finite? (which is not the same as (not (infinite? x) because of NANs) would be a good idea at some point to reduce the confusion as to what equality operator to use.<br>
<br><div class="gmail_quote">On Wed, Oct 27, 2010 at 4:18 PM, Matthew Flatt <span dir="ltr">&lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5">At Wed, 27 Oct 2010 14:20:37 -0600, Doug Williams wrote:<br>
&gt; What is the correct way to test for +nan.0 in Racket? For example, (= +nan.0<br>
&gt; +nan.0) = #f. This seems to be the behavior specified in R6RS. In the<br>
&gt; science collection I implemented nan? using eqv?, which seems to work in<br>
&gt; Racket; but the result is explicitly unspecified in R6RS, which I assume<br>
&gt; means that it&#39;s up to the implementation. Which pretty much leaves eq? as<br>
&gt; the proper test. R6RS includes primitives like nan? and infinite?, which I<br>
&gt; included a long time ago in the science collection. Obviously one can use<br>
&gt; them from the r6rs libraries, but should they be moved into the racket<br>
&gt; language?<br>
<br>
</div></div>`eq?&#39; will not work, while Racket (unlike R6RS) promises that `eqv?&#39;<br>
will work.<br>
<div class="im"><br>
At Wed, 27 Oct 2010 15:15:44 -0700, David Herman wrote:<br>
&gt; Does (not (= x x)) work?<br>
<br>
</div>Yes, that would work too.<br>
<br>
</blockquote></div><br>