У меня есть строка, содержащая допустимую форму Clojure. Я хочу заменить часть его, точно так же, как с assoc-in
, но обрабатывая целую строку как маркеры.
=> (assoc-in [:a [:b :c]] [1 0] :new)
[:a [:new :c]]
=> (assoc-in [:a
[:b,, :c]] [1 0] :new)
[:a [:new :c]]
=> (string-assoc-in "[:a
[:b,, :c]]" [1 0] ":new")
"[:a
[:new,, :c]]"
Я хочу записать string-assoc-in
. Обратите внимание, что его первыми и последними аргументами являются строки, и это сохраняет разрыв строки и запятые. Действительно ли это выполнимо в Clojure? Самая близкая вещь, которую я нашел, read
который звонит clojure.lang.LispReader
, но я не знаю как работы.
Я хочу использовать его, чтобы считать исходный файл Clojure и отобразить его с некоторыми модификациями, сохраняя структуру файла.