Функциональное программирование: состояние или переназначение

Мне нужна помощь, чтобы разобраться в разнице между моим текущим представлением о состоянии ООП и тем, как это будет сделано на функциональном языке, таком как Haskell или Clojure.

Чтобы использовать избитый пример, допустим, мы имеем дело с упрощенными объектами / структурами / какими-либо банковскими счетами. В языке ООП у меня был бы некоторый класс, содержащий ссылку на BankAccount, который имел бы переменные экземпляра для таких вещей, как процентная ставка, и методы, такие как setInterestRate (), которые изменяют состояние объекта и обычно ничего не возвращают. Например, Clojure, у меня была бы структура банковского счета (прославленная хэш-карта) и специальные функции, которые принимают параметр банковского счета и другую информацию и возвращают новую структуру. Таким образом, вместо изменения состояния исходного объекта, у меня теперь есть новый, возвращаемый с желаемыми изменениями.

Итак ... что мне с этим делать? Перезаписать, какая переменная ссылалась на старый банковский счет? Если да, то имеет ли это преимущества перед подходом ООП с изменением состояния? В конце концов, в обоих случаях кажется, что есть переменная, которая ссылается на объект с необходимыми изменениями. Отсталый, как я, у меня есть только смутное представление о том, что происходит.

Я надеюсь, что это имело смысл, спасибо за любую помощь!

Ответы на вопрос(4)

Ваш ответ на вопрос