You are talking about very different things.

Immutability is a property of data, to remain as is once declared and any required changes should result in mutated copies. Unless there is a language feature to this regard, enforcement is a matter of convention.

Functions are, ideally, idempotent. AKA when provided the same input will always result in same output without anything else being altered. This requires data to be immutable, convention or not. If functions are not idempotent, there is no FP. But since even in FP there are cases when side effects are needed (AKA API calls or db load/save) then immutability cannot be guaranteed (unless, as mentioned, there are some language features, otherwise you are in the same boat as DDD in OOP.


Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store