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

Reply via email to