On Monday, 19 May 2014 at 08:51:11 UTC, Jonathan M Davis via Digitalmars-d wrote:
Perhaps you're hung up on the fact
that the term "pure" is being used, and you're thinking about functional
purity?

No, I just don't think it makes much sense the way "pure" is defined in D. Since it doesn't actually mean anything specific unless you also do analysis of the parameters and return type.

If you put a restriction on a function then that restriction should be well defined, clear and useful for a specific purpose.

stuck with it at this point. Regardless, the fact that D's pure allows us to
determine when the return value of a function has to be unique

But it doesn't declare a return value to be unique… It just states that there are no side effects except through the arguments, and except for object identity. I am also not sure if it makes much sense to make it mandatory to define a function in order to initialize an immutable value in an imperative language. I don't like the orthogonal aspect of blocks and functions. Imperative functions and procedures are essentially named blocks of statements. Pure functions are essentially expressions.

Reply via email to