What are (dis)advantages of using pure and immutable by default?

anonymous via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Sep 7 03:55:12 PDT 2015


On Monday 07 September 2015 12:40, Bahman Movaqar wrote:

> It seems to me a good practice to mark all functions that I write 
> as `pure` and define all the variables as `immutable`, unless 
> there is a reason not to.

I agree.

> I can see some serious advantages of this, most notable of which 
> is minimum side-effect and predictability of the code.  However I 
> suppose it's going to impact the performance and memory footprint 
> as well, though I have no idea how deep the impact will be.

I don't see how merely marking things immutable/pure would affect 
performance negatively. They're just marks on the type. If anything, you 
could get a performance boost from the stricter guarantees. But 
realistically, there won't be a difference.

If you change your algorithms to avoid mutable/impure, then you may see 
worse performance than if you made use of them. But I suppose that would be 
"a reason not to" mark everything immutable/pure.


More information about the Digitalmars-d-learn mailing list