On Tuesday, 14 January 2014 at 19:50:10 UTC, bearophile wrote:
But is it possible for D to see that bar function as pure?

In the general case, no:

---
auto foo(const int[] a) {
    int bar() {
        return a[0];
    }
    return &bar;
}

void main() {
    int[3] a;
    auto dg = foo(a[]);
    assert(dg() == 0);
    a[0] = 1;
    assert(dg() == 1);
}
---

David

Reply via email to