Setting a list of values

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon May 2 01:46:31 PDT 2016


On 05/01/2016 12:54 PM, Xinok wrote:
 > On Sunday, 1 May 2016 at 05:42:00 UTC, Ali Çehreli wrote:
 >> On 04/30/2016 10:05 PM, Joel wrote:
 >> > This has no effect:
 >> > _bars.each!(a => { a._plots.fillColor = Color(255, 180, 0);
 >> });
 >>
 >> This is a common issue especially for people who know lambdas from
 >> other languages. :)
 >>
 >> Your lambda does not do any work. Rather, your lambda returns another
 >> lambda, which is promptly ignored:
 >
 > Those are some discrete semantics. I know D pretty well and even I
 > didn't see the problem initially. Anybody else think it's worth adding a
 > warning to the compiler for this specific case?

A warning would be great but I don't see how it can cover all cases. A 
special warning for std.algorithm.each might work but this exact issue 
appeared on the main thread just a few minutes ago:

   http://forum.dlang.org/post/qsayoktyffczskrnmgxu@forum.dlang.org

     alias funType = void function(int x);
     funType fun = (x) => { assert(x); };   // cannot return non-void 
from void function

Ali



More information about the Digitalmars-d-learn mailing list