Proposal: Relax rules for 'pure'

Bruno Medeiros brunodomedeiros+spam at com.gmail
Mon Oct 25 05:46:23 PDT 2010


On 22/09/2010 09:13, Don wrote:
> Don wrote:
>> The docs currently state that:
>
>> PROPOSAL:
>> Drop the first requirement. Only one requirement is necessary:
>>
>> A pure function does not read or write any global mutable state.
>>
>
> Wow. It seems that not one person who has responded so far has
> understood this proposal! I'll try again. Under this proposal:
>
> If you see a function which has mutable parameters, but is marked as
> 'pure', you can only conclude that it doesn't use global variables.
> That's not much use on it's own. Let's call this a 'weakly-pure' function.
>
> However, if you see a function maked as 'pure', which also has only
> immutable parameters, you have the same guarantee which 'pure' gives us
> as the moment. Let's call this a 'strongly-pure' function.
>
> The benefit of the relaxed rule is that a strongly-pure function can
> call a weakly-pure functions, while remaining strongly-pure.
> This allows very many more functions to become strongly pure.
>
> The point of the proposal is *not* to provide the weak guarantee. It is
> to provide the strong guarantee in more situations.

I'm confused: Isn't this essentially the same as the "partially pure" 
functions idea that was discussed as far back as 2008? And wasn't it 
agreed already that this would be the way things would work?


-- 
Bruno Medeiros - Software Engineer


More information about the Digitalmars-d mailing list