Clojureフォームを文字列に変換する方法はありますか?例:変換:
(and (f 1) (g 3))
に:
"(and (f 1) (g 3))"
=> (defmacro string-it [x] (str x))
#'user/string-it
=> (string-it (+ 1 2))
"(+ 1 2)"
あなたはこれを行うことができます:
(str '(and (f 1) (g 3)))
編集
よく知らない場合は、'
( "quote")文字はコードをエスケープするリーダーマクロ文字(more)です。つまり、コードが評価されないようにします。
変数を設定することもできます。
(def x '(and (f 1) (g 3)))
(str x)
次に、コードを実行したい場合は、それを評価できます。
または、事前にフォームがわからない場合は、
(defmacro to-str [f]
(str f))
(to-str (and (f 1) (g 3)))
取得し、
"(and (f 1) (g 3))"