[racket-dev] nan?, infinite? and regular-real? [Was: Latest Plot Package]

From: Neil Toronto (neil.toronto at gmail.com)
Date: Fri Nov 18 14:34:10 EST 2011

On 11/18/2011 12:22 PM, Ryan Culpepper wrote:
> On 11/18/2011 12:13 PM, Neil Toronto wrote:
>> I've moved this to dev from a private discussion with Doug, who has just
>> tried the nightly build.
>>
>> On 11/18/2011 11:43 AM, Williams, Doug wrote:
>>> 2) The plot/utils has nan? and infinite?, which are also exported from
>>> the science collection and I had to explicitly exclude them in the
>>> require. Can we talk to the powers that be and see about getting them
>>> (and finite?) moved to racket/math? Then we can both remove them from
>>> our code. [I'm not sure about any interaction with the r6rs functions.]
>>
>> Powers That Be, Doug and I would like `nan?' and `infinite?' to be in
>> `racket/math'.
>>
>> I made an exact equivalent of Doug's `finite?', but called it
>> `regular-real?'. I use it in all kinds of function contracts (it returns
>> #f for non-reals). We would also like that one, with either name, in
>> `racket/math'.
>
> How does 'finite?' differ from 'rational?'?

Whoa! It doesn't!

> If we're making a wishlist, I'd really like
> '{positive,nonnegative}-{real,rational}?'.

For use or for contracts? For contracts, we already have `>/c', `</c', 
`>=/c' and `<=/c', which can do the same as `positive-real?', 
`negative-real?', `nonnegative-real?' and `nonpositive-real?' if applied 
to 0, and are arguably easier to read.

For the `*-rational?' ones, would they identify only exact rationals? 
Because that would be inconsistent with `rational?'.

If we *are* making a wishlist, I'd like to add exact-round, exact-floor, 
exact-truncate and exact-ceiling. I rarely need to chop off fractional 
parts without also making the result exact.

Neil T


Posted on the dev mailing list.