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