Doesn't it already? The docs say `Integer' includes only integers that are exact numbers, corresponding to the predicate `exact-integer?'.
Even if the type were currently `Exact-Integer', it sounds like you mean just renaming to `Integer'. I think a change to the number hierarchy would mean changing functions so that they produce different results on particular inputs than they do now. That doesn't seem to be a part of Vincent's suggestion. At Fri, 30 Sep 2011 14:02:50 -0400, Matthias Felleisen wrote: > > Yes, there is. The type Integer would denote the > exact integers now. > > In general, I wanted to this email into a larger > context. > > > > On Sep 30, 2011, at 2:01 PM, Matthew Flatt wrote: > > > Vincent's proposal seemed to me to be just a renaming the current > > functions. Is there an intended change to the numeric tower that I'm > > missing? > > > > At Fri, 30 Sep 2011 13:28:12 -0400, Matthias Felleisen wrote: > >> > >> I sent this to Matthew privately but I think we need to be > >> much more careful with 'interesting'. While you are right > >> about the 'wired into our code' part, I think the two of > >> you are wrong about the 'interesting' part. > >> > >> From a type perspective, the numeric tower comes with major > >> flaws and it would be wonderful if a language that divorces > >> itself from the old flawed Scheme world could make a clean > >> cut and do better. > >> > >> But I am also the person who preaches 'the path from here to > >> there' and agree that the 'wired' argument for the existing > >> code base and outside consumers tells us that Racket isn't > >> the language that can fix these mistakes. > >> > >> > >> > >> > >> On Sep 30, 2011, at 12:32 PM, Robby Findler wrote: > >> > >>> This is my opinion, too. > >>> > >>> Robby > >>> > >>> On Fri, Sep 30, 2011 at 11:20 AM, Matthew Flatt <mfl...@cs.utah.edu> > >>> wrote: > >>>> I think this is a good change for the next language, but not for `#lang > >>>> racket'. > >>>> > >>>> As confusing as the current `integer?' may be, I think its definition > >>>> is deeply wired into our code, tests, and documentation. I may guess > >>>> wrong, but my best estimate of the hassle for this change is that it's > >>>> too much trouble for too little payoff, and we could spend our energy > >>>> on more interesting things. > >>>> > >>>> At Fri, 30 Sep 2011 11:59:25 -0400, Vincent St-Amour wrote: > >>>>> On a more general note, do we really need inexact integers? > >>>>> > >>>>> The behavior of `integer?' is confusing, and I don't see especially > >>>>> compelling reasons to keep it this way. The subject comes up every > >>>>> couple of months on the mailing list, so we should do something about > >>>>> it. > >>>>> > >>>>> Here's a proposal: > >>>>> `integer?' becomes the same as `exact-integer?' (which is kept for > >>>>> backwards compatibility). > >>>>> `positive-integer?' and `nonnegative-integer?' are added as > >>>>> equivalents to their `exact' counterparts. > >>>>> `inexact-integer?' is added, to cover for the use case of checking is > >>>>> an inexact number has been rounded. > >>>>> > >>>>> I volunteer to implement this if we agree that this is the right > >>>>> thing. > >>>>> > >>>>> Vincent > >>>>> > >>>>> > >>>>> > >>>>> At Fri, 30 Sep 2011 07:16:22 -0600, > >>>>> Doug Williams wrote: > >>>>>> > >>>>>> Another such annoyance is than (min 1 +inf.0) => 1.0 - because if any > >>>>>> argument is inexact, the result is inexact. I don't think this makes > sense > >>>>>> in the case of infinities. Infinities are very useful as initial > >>>>>> values > >> for > >>>>>> things that are being minimized or maximized, but there is always the > need > >>>>>> for inexact->exact to protect against the (unexpected) coercion. > >>>>>> > >>>>>> This is all from the original R5RS and continued in R6RS - but, we > aren't > >>>>>> that language. > >>>>>> > >>>>>> Could we get an exception to the coercions in the case of +/-inf.0? Or > an > >>>>>> alternative min/max that don't do it? > >>>>>> > >>>>>> On Fri, Sep 30, 2011 at 6:53 AM, Matthias Felleisen > >>>>> <matth...@ccs.neu.edu>wrote: > >>>>>> > >>>>>>> > >>>>>>> exact-round is preferred. > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> On Sep 30, 2011, at 8:51 AM, Eli Barzilay wrote: > >>>>>>> > >>>>>>>> Yesterday, Ryan Culpepper wrote: > >>>>>>>>> The pragmatic answer is you generally have to write > >>>>>>>>> > >>>>>>>>> (inexact->exact (round x)) > >>>>>>>>> > >>>>>>>>> which is annoying, but no one has yet bothered to add a standard > >>>>>>>>> library function for this, as far as I know. > >>>>>>>> > >>>>>>>> [From the annoyed side, especially since that thing tends to come in > >>>>>>>> bunches which can make some quick code look much heavier than it is:] > >>>>>>>> > >>>>>>>> Maybe it's time to add something for that? `eround'? (But even > >>>>>>>> `exact-round' would be better than the above.) > >>>>>>>> > >>>>>>>> -- > >>>>>>>> ((lambda (x) (x x)) (lambda (x) (x x))) Eli > >>>>>>>> Barzilay: > >>>>>>>> http://barzilay.org/ Maze is > >>>>>>>> Life! > >>>>>>>> _________________________________________________ > >>>>>>>> For list-related administrative tasks: > >>>>>>>> http://lists.racket-lang.org/listinfo/users > >>>>>>> > >>>>>>> _________________________________________________ > >>>>>>> For list-related administrative tasks: > >>>>>>> http://lists.racket-lang.org/listinfo/users > >>>>>>> > >>>>> _________________________________________________ > >>>>> For list-related administrative tasks: > >>>>> http://lists.racket-lang.org/listinfo/dev > >>>> _________________________________________________ > >>>> For list-related administrative tasks: > >>>> http://lists.racket-lang.org/listinfo/dev > >>>> > >>> > >>> _________________________________________________ > >>> For list-related administrative tasks: > >>> http://lists.racket-lang.org/listinfo/dev _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev