3

私は常に str を使用して文字列を作成しています。

user> (str '(1 2 3) " == " '(1 2 3))
"(1 2 3) == (1 2 3)"

そして、ほぼ1日1回、お尻を噛まれます:

user> (str '(1 2 3) " == " (map identity '(1 2 3)))
"(1 2 3) == clojure.lang.LazySeq@7861"

私は言うことができると思います:

user> (with-out-str (print '(1 2 3) " == " (map identity '(1 2 3))))
"(1 2 3)  ==  (1 2 3)"

代わりに、それは醜いようです。より良い方法はありますか?

4

2 に答える 2

4

使用できますprint-str

(print-str '(1 2 3) " == " (map identity '(1 2 3)))
;; => "(1 2 3) == (1 2 3)"
于 2013-02-04T13:25:32.890 に答える
1

次を使用して、LazySeqオブジェクトをConsオブジェクトに変えることができますseq

user=> (str '(1 2 3) " == " (map identity '(1 2 3)))
"(1 2 3) == clojure.lang.LazySeq@7861"

user=> (str '(1 2 3) " == " (seq (map identity '(1 2 3))))
"(1 2 3) == (1 2 3)"
于 2013-02-06T13:58:14.097 に答える