On 4/20/12 4:06 PM, Namespace wrote:
The sense of pure functions isn't clear to me.
What is the advantage of pure functions / methods?
I inform the compiler with "const" that this method does not change the
current object, and therefore he can optimize (at least in C++) this
method. How and what optimized the compiler if i have "pure" or "const
pure" functions / methods?
As far as I know pure functions always return the same results given the
same arguments. They also don't cause any side effect.
http://en.wikipedia.org/wiki/Pure_function
Many invocations of a pure function can be executed in parallel because
they don't have side effects. There's also a chance of caching their
result since it only depends on the value of their arguments (though I
doubt what rule the compiler can use to decide to do it).
I don't think any of the following benefits are implemented in DMD.