To help LDC/GDC

Manu turkeyman at gmail.com
Tue Apr 9 01:33:45 PDT 2013


On 9 April 2013 18:04, Dicebot <m.strashun at gmail.com> wrote:

> On Tuesday, 9 April 2013 at 07:57:37 UTC, Manu wrote:
>
>> Are you saying the example above is not actually valid code?
>>
>> struct Foo {
>>     int a = 0;
>>     pure int bar( int n ) { // Weakly pure
>>         a += n;
>>         return a;
>>     }
>> }
>>
>> That's not pure. Call it twice with the same args, you'll different
>> answers. How can that possibly be considered pure in any sense?
>> And it's useless in terms of optimisation, so why bother at all? What does
>> it offer?
>>
>
> It is valid code. It is "weak pure". "pure' keyword means both
> "strong pure" or "weak pure" depending on function body. Crap.
>

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.
I suggest that no D language newbie would ever reasonably expect that
behaviour.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130409/c091ca56/attachment.html>


More information about the Digitalmars-d mailing list