Неизменяемые объекты (immutable) при присваивании как будто появляются заново. Жизненный цикл таких объектов состоит только из одного этапа.
String var = "переменная" равносильно String var = new String("переменная"), и любое присваивание будет тем же самым, что и создание нового объекта (new).
У этого есть и свои преимущества. Например, в многопоточном программировании такие объекты безопасны для использования (потоко-безопасны).
я не смыслю в функциональном программировании, но разве прикрепление новой головы - это не изменение всего человека? тут надо заменять всего человека на версию с новой головой. А потом нужно заменить все человечество (список всех людей) на версию, где этот человек заменен на новую версию с головой. Если его знакомые помнят его не по какому-нибудь id, а по ссылке, то их придется заменить на тех, кто помнит его новую версию как этого знакомого.
Неизменяемые объекты (immutable) при присваивании как будто появляются заново. Жизненный цикл таких объектов состоит только из одного этапа.
String var = "переменная" равносильно String var = new String("переменная"), и любое присваивание будет тем же самым, что и создание нового объекта (new).
У этого есть и свои преимущества. Например, в многопоточном программировании такие объекты безопасны для использования (потоко-безопасны).
Там все программируют на Haskell?
я не смыслю в функциональном программировании, но разве прикрепление новой головы - это не изменение всего человека? тут надо заменять всего человека на версию с новой головой. А потом нужно заменить все человечество (список всех людей) на версию, где этот человек заменен на новую версию с головой. Если его знакомые помнят его не по какому-нибудь id, а по ссылке, то их придется заменить на тех, кто помнит его новую версию как этого знакомого.
А почему вместо изменения происходит замещение?