When should pure function modify parameters?

Lance Bachmeier no at spam.net
Mon Nov 17 15:53:58 UTC 2025


On Monday, 17 November 2025 at 15:20:22 UTC, Serg Gini wrote:
> On Monday, 17 November 2025 at 14:46:06 UTC, Brother Bill wrote:
>> Also, would you agree that not mutating parameters to have 
>> "true" purity would be preferred?
>
> no
>
>> In D, they are allowed to mutate parameters which seems to 
>> violate purity.  Why did D make this choice and when to best 
>> exploit this architectural decision.
>
> https://klickverbot.at/blog/2012/05/purity-in-d/

That post answers the why but still doesn't mean the decision 
makes sense. A different name should have been chosen. The whole 
"manually make your parameters immutable" is something you can do 
with or without adding pure to the function definition. Someone 
not wanting immutable function arguments is not looking for a 
pure function. This is really bad for those of us that prefer 
functional programming, given that there's no way to mark a 
function actually pure - making it pure by the common use of the 
term is something you have to do manually on every function, and 
it's so much unnecessary boilerplate that I can't imagine someone 
doing it.


More information about the Digitalmars-d-learn mailing list