tobotras: (emacs)
tobotras ([personal profile] tobotras) wrote2012-11-24 04:59 am
Entry tags:

(no subject)

В clojure нет возможности записать и прочитать обратно sexp. Чтобы сохранить конфиг, его нужно сериализовывать в какой-нибудь XML. Epic fail.

(Вот такой же точно страдалец.)

[identity profile] deadmustdie.livejournal.com 2012-11-24 01:03 pm (UTC)(link)
Ну дак это ж не Lisp или там Scheme какой-нибудь ;)
Видимо, разработчики посчитали, что в 21 веке прямая сериализация списков - атавизм

[identity profile] alexott.livejournal.com 2012-11-24 01:57 pm (UTC)(link)
неправда ваша, ключевое слово: reader literals, правда в 1.4 (https://github.com/clojure/clojure/blob/master/changes.md). Рекорды тоже сериализуются (структуры использовать не надо - их наверное скоро выбросят). Или используйте map для конфигов - они во всех версиях сериализуются без проблем

user=> (defrecord A [a b c])
user.A
user=> (A. 1 2 3)
#user.A{:a 1, :b 2, :c 3}
user=> (pr-str (A. 1 2 3))
"#user.A{:a 1, :b 2, :c 3}"
user=> (read-string (pr-str (A. 1 2 3)))
#user.A{:a 1, :b 2, :c 3}

[identity profile] caml-programmer.livejournal.com 2012-11-24 05:45 pm (UTC)(link)
Есть ещё slurp/spit, для конфига как-то раз slurp использовал.

http://clojuredocs.org/clojure_core/1.2.0/clojure.core/slurp
http://clojuredocs.org/clojure_core/1.2.0/clojure.core/spit