Multiple selective imports on one line
earthfront via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Dec 24 01:40:47 PST 2015
On Wednesday, 23 December 2015 at 20:56:39 UTC, Basile B. wrote:
> This is not available in the grammar. You can still open a
> duplicate enhancement request.
>
> https://issues.dlang.org/show_bug.cgi?id=14704
>
> see also:
>
> http://forum.dlang.org/post/trrxoacvpyyqrdfqxcvx@forum.dlang.org
OK. I'm putting in my vote for this, and maybe even write up a
pull request.
The value from this comes when using "component-oriented"
programming, as touted by AA and WB:
http://www.drdobbs.com/architecture-and-design/component-programming-in-d/240008321
The combination of the good practice of local selective imports,
and the use of various library functions to perform component
oriented programming, results in verbose local "import"
statements.
View the example below. The import section is nearly as dense as
the component oriented block doing the actual work. This is
smelly.
<CODE>
void main( string args[] )
{
import std.exception: enforce;
import std.array: array;
import std.algorithm.iteration: map,filter;
import std.string: removechars;
//..snip ..//
auto file = File( args[1] );
auto result =
file.byLineCopy( KeepTerminator.no, ',')
.array
.map!(a => removechars!string( a, "\"" ) )
.filter!isTriangleWord
.array
.length;
writeln("Number of triangle words: ", result);
}
</CODE>
Understandably, this isn't a huge priority, but a spot for
improvement none-the-less.
Dennis M. Ritchie's design in his comment seems to be the most
concise:
import {std.array:array; std.algorithm.iteration:map,filter};
More information about the Digitalmars-d-learn
mailing list