有没有办法将 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))"