私は clojure が初めてで、clojure.contrib.strint を使用して URL を構築しようとしています。たとえば、これを Google 検索に使用できます。
(def search_base_url "http://www.google.com/search?hl=en&q=~{query}")
(defn search_url [search_term]
(let [query (.replaceAll search_term "\\s+" "+")]
(<< search_base_url)))
しかし、これは私にコンパイラエラーを与えます:
error: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: No matching method found: indexOf for class clojure.lang.Symbol.
strint は indexOf を数回使用していると思うので、どういうわけか << 関数に必要なものを与えていないようです。
も試しまし(def search_base_url '(<< "http://myurl.com?~{params}"))
たが、 let のコンテキストでそのフォームを評価する方法がわかりません。文字列を search_url 関数に入れることもできますが、それは私には劣っているように感じます。これに対する答えが、clojure をもう少しよく理解するのに役立つことを願っています。
ありがとう