Re: having problem with `std.algorithm.each`

2015-11-30 Thread ref2401 via Digitalmars-d-learn

DMD 2.069.1
OS Win8.1 Enterprise


Re: having problem with `std.algorithm.each`

2015-11-30 Thread anonymous via Digitalmars-d-learn

On 30.11.2015 11:50, visitor wrote:

though i don"t understand why it fails silently ??


ref2491's original code is valid, but doesn't have the intended meaning. 
`e => {foo(e);}` is the same as `(e) {return () {foo(e);};}`, i.e. a 
(unary) function that returns a (nullary) delegate. Calling it does not 
run foo. In contrast, calling this runs foo: `e => foo(e)`.


Re: having problem with `std.algorithm.each`

2015-11-30 Thread visitor via Digitalmars-d-learn

On Monday, 30 November 2015 at 09:56:08 UTC, ref2401 wrote:

DMD 2.069.1
OS Win8.1 Enterprise


in a multiline statement, i believe you must use :
arr.each!((ref e) {
writeln(e);
++e;
})
"=>" is for oneliner

though i don"t understand why it fails silently ??


Re: having problem with `std.algorithm.each`

2015-11-30 Thread visitor via Digitalmars-d-learn

On Monday, 30 November 2015 at 12:03:08 UTC, anonymous wrote:

On 30.11.2015 11:50, visitor wrote:

though i don"t understand why it fails silently ??


ref2491's original code is valid, but doesn't have the intended 
meaning. `e => {foo(e);}` is the same as `(e) {return () 
{foo(e);};}`, i.e. a (unary) function that returns a (nullary) 
delegate. Calling it does not run foo. In contrast, calling 
this runs foo: `e => foo(e)`.



`e => {foo(e);}` is the same as `(e) {return () {foo(e);};}`


Ok, Thanks ! :-)


Re: having problem with `std.algorithm.each`

2015-11-30 Thread ref2401 via Digitalmars-d-learn

On Monday, 30 November 2015 at 12:03:08 UTC, anonymous wrote:

On 30.11.2015 11:50, visitor wrote:

though i don"t understand why it fails silently ??


ref2491's original code is valid, but doesn't have the intended 
meaning. `e => {foo(e);}` is the same as `(e) {return () 
{foo(e);};}`, i.e. a (unary) function that returns a (nullary) 
delegate. Calling it does not run foo. In contrast, calling 
this runs foo: `e => foo(e)`.


Got it. Thank you)