August 25, 2014 Why is this pure? | ||||
|---|---|---|---|---|
| ||||
The following program compiles, and does what you'd expect:
struct A {
int a;
}
pure int func( ref A a )
{
return a.a += 3;
}
As far as I can tell, however, it shouldn't. I don't see how or why func can possibly be considered pure, as it changes a state external to the function.
What am I missing? Or is this just a compiler bug?
Shachar
| ||||
August 25, 2014 Re: Why is this pure? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Shachar | On Monday, 25 August 2014 at 06:27:00 UTC, Shachar wrote: > The following program compiles, and does what you'd expect: > > struct A { > int a; > } > > pure int func( ref A a ) > { > return a.a += 3; > } > > As far as I can tell, however, it shouldn't. I don't see how or why func can possibly be considered pure, as it changes a state external to the function. > > What am I missing? Or is this just a compiler bug? > > Shachar http://klickverbot.at/blog/2012/05/purity-in-d/ | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply