Component Programming example

Andre Artus andre.artus at gmail.com
Sat Aug 3 02:29:02 PDT 2013


On Friday, 2 August 2013 at 17:03:44 UTC, Justin Whear wrote:
> On Fri, 02 Aug 2013 18:59:12 +0200, Jonathan A Dunlap wrote:
>
>> The example:
>> http://www.drdobbs.com/architecture-and-design/component-programming-in-
> d/240008321?pgno=4
>> 
>> import std.stdio;
>> import std.array;
>> import std.algorithm;
>> 
>>      void main() {
>>          stdin.byLine(KeepTerminator.yes)    // 1 map!(a => 
>> a.idup).
>>                       // 2 array.                              
>> // 3
>>          sort.                               // 4 copy(
>>                       // 5
>>              stdout.lockingTextWriter());    // 6
>>      }
>> 
>> I don't understand what happens to the output. On windows, I 
>> can keep
>> entering lines but no output gets displayed. Also, can someone 
>> explain a
>> bit more about lockingTextWriter?
>> 
>> Thanks!
>
> 1) The example has a typo; there should be a '.' between the 
> byLine call
> and the array call.

void main() {
   stdin.byLine(KeepTerminator.yes)   // 1
     .map!(a => a.idup)               // 2 '.' was missing start 
of this line
     .array                           // 3
     .sort                            // 4
     .copy(                           // 5
         stdout.lockingTextWriter()); // 6
}

>
> 2) The example collects all input before writing anything (so 
> that it can
> sort).  Hit your end-of-file character (Ctrl-D) for me to end 
> the input.
> Or direct a file into the process' stdin (not sure how to do 
> this on
> Windows, it's been so long).

On Windows you send EOF by using the Ctrl-Z key sequence.


More information about the Digitalmars-d-learn mailing list