# [racket] Multiplying by 0

 From: David Van Horn (dvanhorn at ccs.neu.edu) Date: Mon Feb 14 15:47:42 EST 2011 Previous message: [racket] Multiplying by 0 Next message: [racket] Multiplying by 0 Messages sorted by: [date] [thread] [subject] [author]

```On 2/14/11 3:44 PM, Stephen Bloch wrote:
>
> On Feb 14, 2011, at 3:26 PM, David Van Horn wrote:
>
>> On 2/14/11 3:14 PM, Sam Tobin-Hochstadt wrote:
>>> No, it's not a bug.  Since 1e100 is an inexact number, there's
>>> uncertainty about the minimum of those two numbers, and the result is
>>> therefore inexact.
>>
>> I would've expected min to return a number that is `eq?' to one of its arguments.
>>
>> In other words, what is wrong with this definition of `min'?
>>
>> (define (min n1 n2)
>>   (cond [(<= n1 n2) n1]
>>         [else n2]))
>
> What's wrong with this is that, mathematically, since 1e100 is inexact, we're not CERTAIN it's>= 0, so the "proper" answer to (<= n1 n2) is not true but rather almost-certainly-true.  (An "inexact Boolean", if you will....)
>
> When you define the function as above, the "<=" takes its best guess as to which number is really smaller and pretends that the answer is certain.

Then what is the correct definition?

David

```

 Posted on the users mailing list. Previous message: [racket] Multiplying by 0 Next message: [racket] Multiplying by 0 Messages sorted by: [date] [thread] [subject] [author]