Add these to Phobos?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Oct 17 07:30:26 PDT 2012


On 10/15/12 7:39 PM, Mehrdad wrote:
> On Monday, 15 October 2012 at 22:35:41 UTC, Andrei Alexandrescu wrote:
>> On 10/15/12 5:35 PM, Mehrdad wrote:
>>> I think we need something like these in Phobos -- I was quite surprised
>>> that I didn't find these in Phobos. They're really handy in Python.
>> [snip]
>>> Ideas?
>>
>> Yes, I wanted to add some relational operators forever! There's a
>> group() function in std.algorithm but doesn't offer a range of ranges.
>>
>> Andrei
>
> +1 yeah, group() was useless for me. I wanted to group consecutive items
> together by some criterion, which it (ironically) explicitly doesn't do.

It's not ironic, it's intentional. In libraries such as Scala's you 
specify GroupBy with whatever predicate against an arbitrary stream, and 
it takes care of all the intermediate data structures (e.g. hashes, 
arrays) and/or additional operations (sorting).

In D, there's a strong emphasis of explicit costs and benefits, so to 
group by an arbitrary key you'd first sort by that key and then use the 
"dumb group" that only knows how to group on adjacent entries.

I'm not sure which approach is best, but I tend to think the current 
approach is a better fit for D's general ethos.


Andrei


More information about the Digitalmars-d mailing list