--- Comment #17 from Jonathan M Davis <> 2012-06-03 16:02:19 
PDT ---
They aren't _my_ definitions. They're official. They've been discussed in the
newsgroup. They've even been used by folks like Walter Bright in talks at
conferences. How purity is implemented in D has been discussed and was decided
a while ago. It works well and is not going to change. Weak purity solved a
real need. All we had before was strong purity, and it was almost useless,
because it was so limited. It is _far_ more useful now that it was before.

A pure function is clearly defined as a function which cannot access global or
static state which is mutable. It doesn't matter how other languages use the
term pure. That's how D uses it. And in cases where a function is strongly
pure, you _do_ get the optimizations based on passing the same arguments to the
same pure function multiple times that you'd expect from a more functional

If you don't like how D's pure works, that's fine - you're free to have your
own opinion, be it dissenting or otherwise - but how pure works in D is _not_
going to change. If bugs are found in the compiler's implementation of it, they
will be addressed, but at this point, the design is what it is.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to