A few notes on choosing between Go and D for a quick project
Walter Bright via Digitalmars-d
digitalmars-d at puremagic.com
Fri Mar 20 17:55:28 PDT 2015
On 3/20/2015 2:04 PM, Paulo Pinto wrote:
> The side effect is not keeping the string, rather generating it.
>
> for var in exp:
> do_something()
>
> if exp represents a iteratable or a generator, even if var is thrown away the
> loop needs to be preserved to keep the semantics of calling next() on the
> instance object that executes the for..in loop.
>
> Put other way, does DMD throw away foreach loops even if the compiler cannot
> prove if opApply () or popFront() generate side effects, assuming the variable
> isn't being used?
D has pure functions, and if those pure functions return an unneeded string, the
call can be discarded.
BTW, it still is faster than splitLines simply because the line string is not
stored. The GC can collect it and reuse the memory. Not so for splitLines, which
must hold it all, meaning it'll be using memory that is not in the cache.
More information about the Digitalmars-d
mailing list