Clojure用另一个变量

时间:2017-03-04 01:16:14

标签: clojure

让我把z定义为真:

(def z true)

我有一个表达式

(print exp)

给出

(and x (not x))

如何将exp中的所有x替换为我设置的z,这样打印exp会给出

(and true (not true))

1 个答案:

答案 0 :(得分:0)

您可以使用clojure.walk API来完成此操作。

body { word-break: break-all }

示例:

(defn replace-sym 
  [sym val expr] 
  (clojure.walk/postwalk (fn [e] (if (= e sym) val e)) expr))