私は意図したとおりに動作する以下の関数を思いつきましたが、それは恐ろしいevalを使用しており、私が使用しようとしているClojureScriptには存在しません。
(defn path [d p]
(eval
(concat '[-> d]
(flatten (map
#(conj (repeat (dec %) 'z/right) 'z/down)
(path-to-vector p))))))
マクロに変換するにはどうすればよいですか?私の試みは次のようになります。
(defmacro path [d p]
`(concat (-> ~d)
(flatten
(map #(conj (repeat (dec %) z/right) z/down)
(path-to-vector ~p)))))
しかし、それは明らかに機能しません。