Tengo curiosidad por cómo hacer para implementar una clase que obedece a estrictas reglas de programación funcional.
Por ejemplo, si tengo una clase que tiene dos atributos y tengo un método que los modifica, ¿cómo hago para hacerlo? Los atributos serían Vals privadas, y el método tendrían que devolver una nueva instancia del atributo cada vez que lo modifica. Esto está bien, excepto que me gustaría mantener que contenía, lo que significa que iba a necesitar una manera de establecer el val.
¿Cuál sería la mejor manera de hacer esto por lo que no tengo miles de casos de, por ejemplo, una colección, flotando en la memoria?