Я оцениваю Scala и у меня возникли проблемы с его неизменяемыми коллекциями.
Я хочу создать неизменяемые коллекции, которые являются полностью неизменяемыми, вплоть до всех содержащихся в них объектов, объектов, на которые они ссылаются, объявления.infinitum.
Есть ли простой способ сделать это?
Код http://www.finalcog.com/immutable-containers-scala иллюстрирует то, чего я пытаюсь достичь, и неприятный обходной путь (ImmutablePoint).
Проблема с обходным решением заключается в том, что каждый раз, когда я хочучтобы изменить объект, я должен вручную сделать новую копию.Я понимаю, что среда выполнения должна будет реализовывать копирование при записи, но можно ли сделать это прозрачным для разработчика?
Полагаю, я ищу создание неизменяемых объектов, где методы изменяют текущее состояние объекта,но все другие ссылки на объект «val» (и все неизменяемые контейнеры) сохраняют «старое» состояние.