私は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))
これをどこから解決し始めるのかわかりません-ヒントをいただければ幸いです。