我已经开始学习 core.logic,我完全迷路了。我正在尝试编写一个 core.logic 关系来重构表达式,重命名符号。我想要一个为给定表达式、符号列表和符号列表返回的关系来重命名这些符号:
(defn rename [exp from to]...
具有所有符号的表达式从成为对应的一个到:
e.g. (rename '(defn multiply [x y] (* x y)) [x y] [a b])
返回(defn multiply [a b] (* a b))
但它需要知道范围,
所以(rename '(defn q [x] ((fn [x] (* x 5)) x)) [x] [a])
会回来(defn q [a] ((fn [x] (* x 5)) a))
我不知道从哪里开始解决这个问题 - 任何提示将不胜感激!