Thread overview
Lazy sort
Sep 11, 2015
ixid
Sep 11, 2015
deed
Sep 11, 2015
Chris
Sep 11, 2015
ixid
September 11, 2015
Does sort have to be eager or would it be possible to have a lazy version? It's messy to always have to use array and leap in and out of lazy operations within a UFCS chain. Surely as many functions as possible should be optionally lazy.
September 11, 2015
On Friday, 11 September 2015 at 10:41:16 UTC, ixid wrote:
> Does sort have to be eager or would it be possible to have a lazy version? It's messy to always have to use array and leap in and out of lazy operations within a UFCS chain. Surely as many functions as possible should be optionally lazy.

Wouldn't that mean removing min or max lazily?
September 11, 2015
On Friday, 11 September 2015 at 10:41:16 UTC, ixid wrote:
> Does sort have to be eager or would it be possible to have a lazy version? It's messy to always have to use array and leap in and out of lazy operations within a UFCS chain. Surely as many functions as possible should be optionally lazy.

Are you the lazy sort? ;)

Sorry, I couldn't resist the pun.
September 11, 2015
On Friday, 11 September 2015 at 10:41:16 UTC, ixid wrote:
> Does sort have to be eager or would it be possible to have a lazy version? It's messy to always have to use array and leap in and out of lazy operations within a UFCS chain. Surely as many functions as possible should be optionally lazy.

https://en.wikipedia.org/wiki/Priority_queue

September 11, 2015
On Friday, 11 September 2015 at 11:08:29 UTC, Ola Fosheim Grøstad wrote:
> On Friday, 11 September 2015 at 10:41:16 UTC, ixid wrote:
>> Does sort have to be eager or would it be possible to have a lazy version? It's messy to always have to use array and leap in and out of lazy operations within a UFCS chain. Surely as many functions as possible should be optionally lazy.
>
> https://en.wikipedia.org/wiki/Priority_queue

Yes, I was reading about heapsort. I was only thinking about the usability POV (I mean isn't reduced pretty much an eager operation that accepts a lazy input? Why can't sort do that?) but it could also offer some performance improvement if you only use a part of the sorted array.
September 11, 2015
On Friday, 11 September 2015 at 12:23:52 UTC, ixid wrote:
> Yes, I was reading about heapsort. I was only thinking about the usability POV (I mean isn't reduced pretty much an eager operation that accepts a lazy input? Why can't sort do that?) but it could also offer some performance improvement if you only use a part of the sorted array.

I think there is something called "partial sort" in Phobos, but "lazy" sorting is the same as a priority queue.

You need to look at all elements before finding the largest one, that's why you cannot turn sort into a plain generator (or lazy range as some may call it).