So... add maxCount and maxPos?
Era Scarecrow via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jan 21 05:42:25 PST 2016
On Wednesday, 20 January 2016 at 17:29:28 UTC, H. S. Teoh wrote:
> On Wed, Jan 20, 2016 at 12:16:00PM -0500, Andrei Alexandrescu
> via Digitalmars-d wrote:
>> This is one of those cases in which we were pedantically right
>> to not add them, but their equivalents look like crap.
>
> I don't like this. I'd much rather we rename those functions
> to be something more generic. After all, minPos is a horrible
> name when the predicate has nothing to do with minimum values.
> What about extremumPos? (Though that's rather ugly to type.)
maxCount sounds too much like it's suppose to be a function in
SQL querying, and minCount... ugg... now I wonder what in the
world we're talking about.
From algorithm.d:
> int[] a = [ 2, 3, 4, 1, 2, 4, 1, 1, 2 ];
> // Minimum is 1 and occurs 3 times
> assert(a.minCount == tuple(1, 3));
> // Maximum is 4 and occurs 2 times
> assert(a.maxCount == tuple(4, 2));
>
> // Minimum is 1 and first occurs in position 3
> assert(a.minPos == [ 1, 2, 4, 1, 1, 2 ]);
> // Maximum is 4 and first occurs in position 2
> assert(a.maxPos == [ 4, 1, 2, 4, 1, 1, 2 ]);
These unittests make it completely clear what it wants to do. I'd
almost say lowestCount and highestCount would almost be better,
but i am not sure. or just unitCount? Or countOf and posOf? which
make a lot more sense when instantiated: So a.countOf!("a < b")?
I'm seriously behind on all of this.
More information about the Digitalmars-d
mailing list