On Thu, 16 Jun 2011 14:33:17 -0400, Jonathan M Davis <jmdavisp...@gmx.com>
wrote:
On 2011-06-16 10:38, Charles McAnany wrote:
Ok, I think I get it. That cleared it up. =).
So, if you have a functioned labelled pure, it's your job to not pass it
mutable arguments, but the compiler's job to make sure it doesn't mutate
anything not in the arguments. And that's why a strongly pure function
can
call a weakly pure one - only the first function's internal state can be
mutated by a weakly pure function. Thanks!
Well, essentially. But it's a question of parameters, not arguments. It
doesn't matter whether you pass the function mutable arguments or not.
Actually, it can matter. For instance, a pure function like this:
pure int foo(const(int)* m);
can be strong pure if you pass it a pointer to immutable data.
-Steve