On 19/06/12 11:02, Iain Buclaw wrote:
On 19 June 2012 09:18, Don Clugston<d...@nospam.com>  wrote:
So would I. Can you think of one?
It was the best name I could come up with, given that the 'pure' was the
keyword.
We want a word that means 'no hidden state'.

I thought that was what pure was for. :~)

This page is interesting.

http://en.wikipedia.org/wiki/Pure_function

There's never any hidden state, even in a weakly pure function.
So it satisfies rule 1.
A weakly pure function may modify anything it can reach through the parameters, though. Does this violate rule 2?

I guess that if you define all mutable arguments of a weakly pure function as being 'pass by reference', then even 'weakly pure' is pure according to that definition.

The page states that according to that definition, the expressions which call the pure function are not pure. But again in the terms of that page, D has an "Effect System" which allow us to prove that a function is pure even though it has impure expressions in it.

Wikipedia isn't very authoritative though.

So I don't know -- although D 'pure' is very different to what FP people call 'pure', I'm no longer certain that we're abusing the term.

After all, even this function isn't pure in the traditional FP view:

int foo(int n) pure
{
   int r = n*n;
   r += n;
   return r;
}

Reply via email to