Estoy evaluando a Scala y tengo un problema con sus colecciones inmutables.Cómo hacer que las colecciones inmutables de Scala contengan objetos inmutables
Quiero hacer colecciones inmutables, que son completamente inmutables, a través de todos los objetos contenidos, los objetos a los que hacen referencia, ad infinitum.
¿Hay una manera simple de hacer esto?
El código en http://www.finalcog.com/immutable-containers-scala ilustra lo que estoy tratando de lograr, y una obra desagradable alrededor (ImmutablePoint).
El problema con la solución alternativa es que cada vez que quiero cambiar un objeto tengo que hacer una nueva copia manualmente. Entiendo que el tiempo de ejecución tendrá que implementar copy-on-write, ¿pero esto puede hacerse transparente para el desarrollador?
Supongo que estoy buscando hacer Objetos inmutables, donde los métodos cambian el estado del objeto actual, pero todas las demás referencias 'val' (y todos los contenedores inmutables) al objeto conservan el estado 'anterior'.
Te puede interesar este artículo: http://lamp.epfl.ch/~phaller/capabilities.html –
Excelente material de lectura, gracias. – fadedbee