Why are homepage examples too complicated?
Nick Treleaven via Digitalmars-d
digitalmars-d at puremagic.com
Sun Oct 16 09:07:19 PDT 2016
On Thursday, 13 October 2016 at 19:06:26 UTC, Karabuta wrote:
> // Replace anything that looks like a real
> // number with the rounded equivalent.
> stdin
> .byLine
> .map!(l => l.replaceAll!(c => c.hit.round)
> (reFloatingPoint))
> .each!writeln;
I think this example is a bit awkward for D newbies to decipher.
I think here we are showing D's ctRegex; dropping the functional
map and lambdas would make this more universally understood.
Using matchAll rather than replaceAll makes the example a bit
simpler too:
// Print a list of rounded decimal numbers
import std.conv, std.functional, std.math, std.regex;
// Chain functions together to round a string parsed as a real
number
alias roundString = pipe!(to!real, std.math.round, to!string);
// Create a compile-time Regular Expression to match decimal
numbers
static decimalRegex = ctRegex!`[0-9]+\.[0-9]+`;
void main()
{
import std.stdio;
// Iterate standard input lines
foreach (line; stdin.byLine())
{
// Find all decimal matches
foreach (m; line.matchAll(decimalRegex))
{
m.hit.roundString().writeln(); // round number and
print
}
}
}
More information about the Digitalmars-d
mailing list