Clojurians: Спасибо за ваше внимание к этому вопросу!
Вот случай, о котором я думаю, я хочу определить неизменяемую запись банковского счета
(defrecord account [ name balance statements])
(def cash-account (->account :cash 0.0 []))
У меня естьфункция, которая будет deposit
переводить деньги на этот счет, а новая запись account
будет возвращать
(.deposit cash-account 100.0 )
;; returns a new cash-account with attributes
;; name = :cash balance= 100, statment=[ [(2018,1,1),100 ] ]
. При большем и большем количестве операций ввода и вывода поле statement
list будет расширяться с увеличением ибольше транзакций внутри.
Мой вопрос будет таким: после 1000 транзакций в поле statment
последнего возврата счета будет 1000 элементов.
Когда произойдет 1001-я транзакция:
будет ли Clojure * копировать * 1000 транзакций в поле statment
старой записи учетной записи и добавлять новые транзакции, сохранять их в новую запись учетной записи?
или Clojure просто *добавить * новую транзакцию к старой записи учетной записи и предоставить новый указатель на нее, чтобы она выглядела как новая запись учетной записи как постоянная карта?
Благодарим вас за помощь и многое другоекс