A little help with Ranges

Ali Çehreli acehreli at yahoo.com
Fri Aug 27 04:01:19 UTC 2021


On 8/26/21 7:17 PM, Merlin Diavova wrote:

> What I meant about the handling an empty filter is, what if I want to 
> take an alternative route if the filter returns empty?

Then the operations downstream will not produce any results. For 
example, the array will be empty below:

import std.stdio;
import std.range;
import std.algorithm;
import std.string;
import std.functional;

void main() {
   auto significantLines = stdin
                           .byLineCopy
                           .map!strip
                           .filter!(not!empty)
                           .filter!(line => line.front != '#')
                           .array;

   if (significantLines.empty) {
     writeln("There were no significant lines.");

   } else {
     writefln!"The lines: %-(\n%s%)"(significantLines);
   }
}

Ali


More information about the Digitalmars-d-learn mailing list