On Thursday, 2 July 2015 at 08:48:42 UTC, ixid wrote:
They're nicer without either 'er' nor 'ed'.

writeln(str.lowerCase.detab.transmogrify);

Just as join and split are much better than the rather tortured joiner and splitter. That may be a cutter but I want it to cut, and would rather invoke it that way. The er and ed carry no useful information and sound clunky. A man may be a mower but I'd ask him to mow the field.

Well, for one, splitter and joiner don't do any splitting or joining - they simply return a range type which does so as you iterate over it, so that "er" is actually very related to what they're doing, and split and join would arguably be misnomers, since that implies that they actually split or join the input (which they don't). On the other hand, the split and join functions - which are eager - very much deserve their names, since the _do_ split and join their input respectively.

And for two, in the cases of the new functions that have been added recently which triggered this discussion in the first place, eager versions already exist which have verb names like you're looking for, so we have to use new names even if we wanted to use names like you're suggesting. So, if we were going to just use verbs like before, we'd have to come up with completely new names. And when splitter and joiner were added, split and join already existed, so new names were needed. So, we already have a precedent for adding "er" for functions which return lazy ranges, and it makes perfect sense to do so given that they're simply returning objects which do the action rather than doing the action themselves. They're actually more like constructors than normal functions.

- Jonathan M Davis

Reply via email to