Why is Nonnegative-Real not suggestive of the right thing? To me that means (and/c real? (not/c (lambda (x) (< x 0)))) which is exactly what it is.
I think the confusing part is that -0.0 has a minus sign in front which means that you think it is negative, but this isn't true. On Fri, Mar 1, 2013 at 8:31 AM, Robby Findler <[email protected]> wrote: > Is there perhaps a more suggestive name? (Not that I'm coming up with > one...) > > Robby > > > On Fri, Mar 1, 2013 at 10:22 AM, Vincent St-Amour <[email protected]> > wrote: >> >> At Fri, 01 Mar 2013 09:05:21 +0100, >> Marijn wrote: >> > On 27-02-13 21:51, Neil Toronto wrote: >> > >> > > (An example that came up in the implementation of matrix norms: the >> > > type of (sqrt (/ 1 x)) isn't Nonnegative-Real if x : >> > > Nonnegative-Real, but Complex. Consider x = -0.0. Without TR's >> > > complaints, `matrix-norm' would have contained a time bomb.) >> > >> > Should -0.0 really be a Nonnegative-Real? >> >> That's by design. >> >> Including both floating-point zeroes in both non-negative and >> non-positive types is necessary to make occurrence typing useful for >> comparisons between floating-point numbers and zero (see PR12706 for >> more details). It also simplifies parts of the numeric base environment >> significantly. >> >> Vincent >> >> _________________________ >> Racket Developers list: >> http://lists.racket-lang.org/dev > > > > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev > _________________________ Racket Developers list: http://lists.racket-lang.org/dev

