Re: Sort on linkedlists with double values (inside main list)

"[email protected]" <[email protected]>
Newsgroups gmane.comp.lang.groovy.user
Message-ID <[email protected]>
Paul,

side question, completely irrelevant to the original problem, just occurred to me when I read this...

> On 20. 5. 2024, at 17:02, Paul King <[email protected]> wrote:
> println ([[x:1, y:100],  [x:2, y:1], [x: 2, y:500]].sort{ a, b -> a.x == b.x ? a.y <=> b.y : a.x <=> b.x }) // works

Wouldn't sort { a,b -> a.x<=>b.x ?: a.y<=>b.y } be both more efficient and better readable and intention-revealing? Or do I overlook some reason why it would be a bad idea?

Thanks,
OC

> 
> On Tue, May 21, 2024 at 12:52 AM Paul King <[email protected]> wrote:
>> 
>> If you have only two dimensions, you'll get away with your solution
>> for small integer coordinate values. Here is a counter example with
>> integers:
>> 
>> println ([[x:  1, y: 69273666],  [x: 69273666, y: 1]].sort{[it.x,
>> it.y]}) // broken
>> println ([[x:  1, y: 69273666],  [x: 69273666, y: 1]].sort{ a, b ->
>> a.x == b.x ? a.y <=> b.y : a.x <=> b.x }) // works
>> 
>> On Tue, May 21, 2024 at 12:25 AM M.v.Gulik <[email protected]> wrote:
>>> 
>>> 
>>> On Mon, 20 May 2024 at 15:40, Paul King <[email protected]> wrote:
>>>> 
>>>> What sort result are you trying to achieve? There should be no need to
>>>> perform any recursion.
>>> 
>>> 
>>> Main target was reordering some set of randomly ordered x,y coordinates into (for example*) a x,y(left to right, top to bottom) order (*:where any of the actual sort directions could be easily flipped).
>>> 
>>> So far "*.sort{[it.y, it.x]}" seems the best and easiest way to do this (despite its Float/Double caveat).
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.