Naming conventions for functions in similar modules

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Jun 23 06:57:21 PDT 2011


On 6/23/11 2:58 AM, SimonM wrote:
> On 2011/06/23 00:22 AM, SimonM wrote:
>> On 2011/06/22 19:16 PM, Andrei Alexandrescu wrote:
>>> On 6/22/11 11:53 AM, Walter Bright wrote:
>>>> On 6/22/2011 4:47 AM, Lars T. Kyllingstad wrote:
>>>>> One problem: std.uni only contains functions for dealing with upper/
>>>>> lower case and for checking whether something is an alpha
>>>>> character. If
>>>>> you want the other functions, such as isDigit(), isPunctuation(), etc.
>>>>> you still have to import std.ascii. And once you have imported both
>>>>> std.uni and std.ascii, you are forced to disambiguate every time you
>>>>> call
>>>>> a function which exists in both.
>>>>
>>>> True, but I don't see much of an improvement of:
>>>>
>>>> toAsciiLower()
>>>>
>>>> over:
>>>>
>>>> std.ascii.tolower()
>>>>
>>>> at least as far as typing goes.
>>>
>>> One improvement would be to relax package lookup such that
>>> ascii.tolower() is a synonym for std.ascii.tolower. That way everything
>>> works reasonably nice out of the box.
>>>
>>>
>>> Andrei
>>
>> I'd just prefer the user to do the following (think it should already
>> work, unless I'm missing something?):
>>
>> import std.ascii;
>> alias std.ascii ascii;
>
> Oh! Forgot about this:
> import ascii = std.ascii;
>
> It's already part of the current module system, is only necessary when
> there are name clashes, and allows the user to choose if they want their
> code to be readable, or shorter to type.

Yah, the only thing is that I would have liked this behavior to be 
implicit without the user having to know this idiom.

Andrei



More information about the Digitalmars-d mailing list