Riesco a vedere i benefici degli oggetti mutevoli e immutabili come gli oggetti immutabili che richiedono molto tempo per risolvere i problemi nella programmazione multi-thread a causa dello stato condiviso e scrivibile. Al contrario, gli oggetti mutabili aiutano a gestire l'identità dell'oggetto anziché crearne di nuove ogni volta e quindi migliorano anche le prestazioni e l'utilizzo della memoria soprattutto per gli oggetti più grandi.
Una cosa che sto cercando di capire è che cosa può andare storto nell'avere oggetti mutabili nel contesto della programmazione funzionale. Come uno dei punti che mi sono detto è che il risultato di chiamare le funzioni in un ordine diverso non è deterministico.
Sto cercando un esempio concreto concreto in cui è molto evidente ciò che può andare storto usando l'oggetto mutabile nella programmazione delle funzioni. Fondamentalmente, se è male, è negativo indipendentemente dal paradigma di programmazione funzionale o funzionale, giusto?
Credo che di seguito la mia stessa affermazione risponda a questa domanda. Ma ho ancora bisogno di qualche esempio per poterlo sentire più naturalmente.
OO helps to manage dependency and write easier and maintainable program with the aid of tools like encapsulation, polymorphism etc.
Functional programming also have same motive of promoting maintainable code but by using style which eliminates the need for using OO tools and techniques - one of which I believe is by minimizing side effects, pure function etc.