On Tuesday, 9 April 2013 at 10:24:45 UTC, Timon Gehr wrote:
On 04/09/2013 10:33 AM, Manu wrote:
...
How can 'weak pure' reasonably be called any kind of 'pure'?
It's not
pure at all. The function returns a completely different
result when
called twice. That's the definition of not-pure.
(Actually this is not the definition of impure.)
In D, 'pure' forbids reading or writing of mutable static
variables.
I suggest that no D language newbie would ever reasonably
expect that
behaviour.
Sure. Many keyword choices in D are unhelpful for newbies, or
technically wrong.
enum -> const
catch -> handle
do -> repeat
for -> (no suggestion)
const -> readonly
inout -> (no suggestion)
lazy -> byname
pure -> (no suggestion)
static -> (no suggestion)
struct -> (no suggestion)
throw -> raise / signal
union -> (no suggestion)
for -> loop?