On Fri, 10 Jan 2014 16:30:12 -0000, Andrei Alexandrescu <[email protected]> wrote:

On 1/10/14 6:07 AM, Regan Heath wrote:
On Fri, 10 Jan 2014 08:16:53 -0000, Andrei Alexandrescu
<[email protected]> wrote:

On 1/9/14 11:56 PM, Jacob Carlborg wrote:
On 2014-01-10 02:34, Manu wrote:

Or just alias the functions useful for string processing...

I agree. It already has some aliases, converting to lower and uppercase.

I wouldn't want to get to the point where many functions have 2-3 names.

This is only a problem if they are all in the same sphere of concern..
by that I mean if you're looking for string functions and you find 2
names for the same function this would be wrong/confusing/pointless.
But, if you have one name in the string category and one in the range
category and they were both the same function underneath I don't see
this as the "same" problem, right?

The way I see it one learns a name for an algorithm (low cognitive load) and then uses it everywhere. This is not Go.

Sure. But, lets take an example: std.algorithm.canFind is more or less what you might call std.string.contains (which does not exist - instead we'd use indexOf != -1.. I think).

What is the harm in having an alias in std.string called contains which simply calls std.algorithm.canFind?

Sure, it opens the door to someone using both canFind and contains on strings in their code. So what? Use of contains is more likely/intuitive for string related code, but both are intelligible. canFind will be more likely in generic code, where you would think of that generic algorithm name.

It seems to me that people think of algorithms by different names in different contexts. In the context of strings "contains" would make the most intuitive sense to the most people.

Side-issue.. from std.algorithm:

bool canFind(alias pred = "a == b", R, E)(R haystack, E needle) if (is(typeof(find!pred(haystack, needle)))); Returns true if and only if **value** can be found in range. Performs Ο(needle.length) evaluations of pred.

What is **value** shouldn't that be needle?

R

--
Using Opera's revolutionary email client: http://www.opera.com/mail/

Reply via email to