Игнорируя собственные взаимодействия и переходные процессы, можно ли создавать любые структуры данных в Clojure, содержащие прямые циклические ссылки?
Казалось бы, неизменяемые структуры данных могут содержать только ссылки на предыдущие версии. Существуют ли какие-либо API-интерфейсы Clojure, которые могут создать новую структуру данных, которая имеет ссылку на себя?
В схеме есть форма letrec, которая позволяет создавать взаимно рекурсивные структуры, но, насколько я могу судить, Clojure не имеет ничего подобного.
Этот вопрос связан с переносом Clojure в iOS - который не содержит сборку мусора, но имеет подсчет ссылок.