std.uni.toLowerCase / .toUpperCase

Vladimir Panteleev via Digitalmars-d digitalmars-d at puremagic.com
Tue Jun 23 16:49:44 PDT 2015


On Tuesday, 23 June 2015 at 23:17:54 UTC, Meta wrote:
> I really hate this naming scheme for functions that take lazy 
> parameters. I still don't see why we don't do the (IMO) 
> simplest and most intuitive thing and name them lazyToLower / 
> lazyToUpper (or toLowerLazy / toUpperLazy). There is precedent 
> with C#'s handling of async functions; for example, 
> AccessTheWebAsync or GetStringAsync[1]. Your proposed naming 
> scheme seems like it's trying to be too "clever" and really 
> just ends up causing unnecessary confusion. This is not Ruby.
> [1]https://msdn.microsoft.com/en-us/library/hh191443.aspx

I'm not sure about this... I've seen another proposal for a 
"lazy" suffix in the other thread, but I think this won't be 
great in the long run:

- Ultimately, we want to encourage use of the lazy versions, in 
the same way that e.g. std.algorithm and std.range are encouraged 
over eager operations for arrays.

- There is no consistency with any existing naming schemes. 
Currently no names in Phobos contain the word "Lazy".

- If std.algorithm were to follow this convention, it would have 
lazyJoin instead of joiner, lazySplit instead of splitter, 
lazyConcat OSLT instead of chain, etc. Given a typical program 
using std.algorithm, do you think such names would look better 
there than the current ones?

- I'm not sure about the C# async analogy: with "async", the 
methods are used in a different way. The new range-based 
functions are used in the same way, but work on different types.

Here's an example program using setExt[ension] and toLower[Case], 
in 4 variants...

https://gist.github.com/CyberShadow/5cc7e926f566d56a672f

IMHO, in this case, the "Lazy" suffix is a distracting 
technicality that doesn't carry its weight. Am I the only one?



More information about the Digitalmars-d mailing list