digitalmars.D.learn - having problem with `std.algorithm.each`
It seems like `std.algorithm.each` is not executed in the example
below.
Could anyone tell why?
Thank you.
import std.algorithm;
void main(string[] args) {
int[] arr = [1, 2, 3, 4, 5];
arr.each!((ref e) => {
writeln(e); // does not print
++e;
})();
writeln(arr); // prints [1, 2, 3, 4, 5]
}
Nov 30 2015
On Monday, 30 November 2015 at 09:56:08 UTC, ref2401 wrote:DMD 2.069.1 OS Win8.1 Enterprisein 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 ??
Nov 30 2015
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)`.
Nov 30 2015
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 ! :-)
Nov 30 2015
On Monday, 30 November 2015 at 12:03:08 UTC, anonymous wrote:On 30.11.2015 11:50, visitor wrote:Got it. Thank you)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)`.
Nov 30 2015









visitor <visitor gmail.com> 