Named multi-imports

Johnson Jones via Digitalmars-d digitalmars-d at puremagic.com
Thu Aug 17 18:11:12 PDT 2017


On Thursday, 17 August 2017 at 21:49:38 UTC, Timon Gehr wrote:
> On 17.08.2017 23:03, aberba wrote:
>> On Wednesday, 16 August 2017 at 13:57:17 UTC, jmh530 wrote:
>>> On Wednesday, 16 August 2017 at 09:54:41 UTC, aberba wrote:
>>>>
>>>> This looks really clean for code modularity.
>>>>
>>>> import io = std.stdio : {writeln, write}, ...
>>>
>>> What does this add? A line like below would be confusing.
>>> import io = std.stdio : {writeln, write}, writefln;
>>>
>>> The following code compiles and the imports are less 
>>> confusing.
>>>
>>> import io = std.stdio : writeln, write;
>>> import std.stdio : writefln;
>>>
>>> void main()
>>> {
>>>     io.write("foo");
>>>     io.writeln("bar");
>>>     writefln("My items are %(%s %).", [1,2,3]);
>>> }
>> 
>> Its more like this:
>> 
>> import oo = {std.stdio : {writeln, write}, std.algorithm: 
>> {filter, map}, …};
>> 
>> oo.writeln();
>> oo.write();
>> oo.filter(...);
>> oo.map(...);
>> 
>
> private struct oo{
>     import std.stdio: writeln, write;
>     import std.algorithm: filter, map;
>     // …
> }
>
> void main(){
>     oo.write("result: ");
>     
> oo.writeln(oo.map!(x=>x/2)(oo.filter!(x=>x%2==0)([1,2,3,4,5,6,10])));
> }

Wow, that might solve the problem! A little more verbose but it 
does combine everything.

Any downsides?

Thanks.





More information about the Digitalmars-d mailing list