私は最近 Compojure で遊んでいて、小さな基本的な webapp を手に入れました。私の HTML テンプレートには Enlive を使用しており、すべての単純な静的ページを保持する名前空間があります。これらのページの defroute 呼び出しは次のようになります。
(defroutes public-routes
(GET "/" []
(info/index-template))
(GET "/about" []
(info/about-template))
(GET "/contact" []
(info/contact-template)))
私は実際にはそれよりもいくつか持っていますが、それは私が何をしているかのアイデアを与えるはずです.
さて、それは本当に私の側の繰り返しの束だと思ったので、次のことを試してみようと思いました:
(defroutes info-routes
(map #(GET (str "/" %) [] (ns-resolve 'webapp.pages.info
(symbol (str % "-template"))))
'("about" "contact")))
もちろん、マップは関数の本体 (?) ではなく遅延シーケンスを返すため、これは機能しません。このアイデアを機能させるために私が何をする必要があるかを誰かが知っていますか?
それとも、同じことを繰り返すのを減らすために、まったく別のアプローチを使用する必要がありますか?