Re: List.sortBy shows wrong result
Jasper-M <[email protected]> Thu, 25 Feb 2016 02:30:05 -0800 (PST)
| Newsgroups | gmane.comp.lang.scala |
|---|---|
| Message-ID | <[email protected]> |
Because, in the case of
l.sortBy(I => -I) // List(-2147483648, -2147483647)
the list will be sorted by applying the function I => -I to every element,
sorting the resulting list, and then unapplying the function again (well,
that's not really what happens, but you can think of it that way...).
So: -(-2147483648) == -2147483648
-(-2147483647) == 2147483647
-2147483648 < 2147483647
Op donderdag 25 februari 2016 10:06:46 UTC+1 schreef Chris:
>
> Yes, but why does this affect the sort order?
>
>
>
> Am Donnerstag, 25. Februar 2016 09:37:10 UTC+1 schrieb David Starner:
>>
>> The negation of -21474836848 in 32-bit two's complement arithmetic is
>> -21474836848. There is no positive value corresponding to the negative of
>> the minimal value in two's complement arithmetic.
>>
>> On Wed, Feb 24, 2016, 11:56 PM Chris <[email protected]> wrote:
>>
>>> Hi all,
>>>
>>>
>>> List.sortBy show a strange behaviour:
>>>
>>> val l = List(Int.MinValue, Int.MinValue+1)
>>> l.sortBy(I => I) // List(-2147483648, -2147483647)
>>> l.sortBy(I => -I) // List(-2147483648, -2147483647)
>>>
>>>
>>> If I use other values anything seems ok
>>>
>>> val l = List(Int.MinValue+2, Int.MinValue+1)
>>> l.sortBy(I => I) // List(-2147483647, -2147483646)
>>> l.sortBy(I => -I) // List(-2147483646, -2147483647)
>>>
>>>
>>> What's wrong here?
>>> Can anyone help? Thanks in advance.
>>>
>>> Chris
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "scala-language" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.