Another purity question

Tobias Pankrath tobias at pankrath.net
Tue Jan 14 12:31:26 PST 2014


On Tuesday, 14 January 2014 at 20:21:25 UTC, David Nadlinger 
wrote:
> 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

It's pure in the sense that it only modifies data passed to it?



More information about the Digitalmars-d-learn mailing list