[Haskell-cafe] foldr1 min [(maxBound::Int)%1,1 % 2]
Bo Herlin
bo at gcab.net
Wed Apr 13 09:52:24 EDT 2005
Yep, got it, Thanks!
Cale Gibbard wrote:
> Hmm...
> let a = (maxBound :: Int)%1 in 1 < a && a < 1/2
> == True
>
>>From the Ord instance for Ratio a
> (x:%y) < (x':%y') = x * y' < x' * y
>
> So the comparison for 1 < a looks like
> 1 * 1 < (maxBound :: Int) * 1
> which is true.
> And the comparison for a < 1/2 looks like
> (maxBound :: Int) * 2 < 1 * 1
> ==> -2 < 1
> which is again true!
>
> If you want well-behaved rationals, I suppose you have to use Ratio Integer.
>
> Hope this helps,
> - Cale
>
> On 4/13/05, Bo Herlin <bo at gcab.net> wrote:
>
>>Hi
>>
>>How come
>>
>> > foldr1 min [(maxBound::Int) % 1,1 % 2]
>>2147483647 % 1
>>
>>but
>>
>> > foldr1 min [2147483647 % 1,1 % 2]
>>1 % 2
>>
>>Why???
>>
>>/Bo Herlin
>>_______________________________________________
>>Haskell-Cafe mailing list
>>Haskell-Cafe at haskell.org
>>http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>
>
More information about the Haskell-Cafe
mailing list