How to force evaluation of range?
Messenger via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Feb 12 17:00:22 PST 2016
On Friday, 12 February 2016 at 20:43:24 UTC, Taylor Hillegeist
wrote:
> So I have this code and I have to add the element
> .each!(a => a.each!("a"));
> to the end in order for it to evaluate the range completely and
> act like I expect it too. Is there a better thing to put in
> the place of
> .each!(a => a.each!("a"));?
>
> [...]
>
> dirEntries(Args[1], SpanMode.depth)
> .filter!(f => f.name.endsWith(".c",".h"))
> .tee!(a => writeln("\n",a,"\n\t","=".repeat(80).join))
> .map!(a => a
> .File("r")
> .byLine
> .enumerate
> .filter!( l => l.value.byGrapheme.walkLength > 80)
> .tee!(a => writeln("Line: ",a.index,"\t",a.value))
> ).each!(a => a.each!("a")); //Force evaluation of
> every item
>
> }
Have you tried .array? I *think* it's the commonly used way to
flatten a lazy range.
More information about the Digitalmars-d-learn
mailing list