On 12/27/2013 12:23 AM, Gordon wrote:
Hello,

A question regarding delegates and local variables:
I have the following code, which seems to indicate the delegate function
can access "b", but makes a private copy of it, instead of using the
"real" b.
---
...

Map is a lazy range.

---
import std.stdio;
import std.algorithm;

void main(){
    int[] a = [1,1,1];
    int b = 42;

    auto c = map! ( delegate(x) { ++b; return x+b ; } )(a);

    writeln("a = ",a);
    writeln("b = ",b);
    writeln("c = ",c);
    writeln("b = ",b);
}
---
---
a = [1, 1, 1]
b = 42
c = [44, 45, 46]
b = 45
---

Reply via email to