On Monday, 19 May 2014 at 05:39:49 UTC, Jonathan M Davis via
Digitalmars-d wrote:
1. it makes it easier to reason about code, because it
guarantees that the
function didn't access any global or static variables.
It can, through the parameters, like an array of pointers. And
avoiding IO is not sufficient to mark 90% of my code as weakly
pure.
2. it allows us to implicitly convert to different levels of
mutability for
the return type of pure functions where the compiler can
guarantee that the
return value was allocated within the function.
But if you can have a struct/pointer as a parameter then you can
clearly return objects not allocated in the function?