On Friday, 24 April 2015 at 20:55:02 UTC, Steven Schveighoffer wrote:
But I can check memory usage size and see global state has been altered.


OK, if you want to play that game, don't access memory ever, that is global state. I mean, even if the memory is read only you may end up affecting the MMU, so that is definitively a no go. Also, you'd better have only a one instruction loop in your program as otherwise you'll affect the program counter, a definitively visible state from the user.

When you free, you potentially alter references anywhere outside your
"pure" function. It must not be pure.

When you do ANYTHING to mutable data, you potentially alter references outside your pure function. This is not a disqualifier. It's accessing global sate directly that wasn't passed to you that is a disqualifier.

-Steve

pure function can access global immutable state that wasn't passed to it, so you may want to revise your definition.

Reply via email to