Я тестирую Clojure 1.2, в частности изменяемые поля, которые поддерживаются в deftype
в соответствии с clojure.org documentation.
Но я не могу заставить набор работать. Каков синтаксис для обновления поля? Или еще не реализована изменчивость?
(definterface IPoint
(getX [])
(setX [v]))
(deftype Point [x]
IPoint
(getX [this] x)
(setX [this v] (set! (.x this) v)))
user=> (def p (Point. 10))
user=> (.getX p)
10
user=> (.setX p 20)
ClassCastException: user.Point cannot be cast to compile__stub.user.Point
Использование моментального снимка 1.2 с нескольких дней назад.