Я новичок в 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)))
Но это дает мне ошибку компилятора:
ошибка: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Метод сопоставления не найден: indexOf для класса clojure.lang.Symbol.
Я думаю, что strint использует indexOf несколько раз, поэтому почему-то я не даю функции << то, что она хочет, кажется.</p>
Я также пытался (def search_base_url '(<< "http://myurl.com?~{params}"))
, но тогда я не могу понять, как оценить эту форму в контексте моего let.Я мог бы просто вставить строку в функцию search_url, но мне это хуже, и я надеюсь, что ответ на этот вопрос поможет мне лучше понять clojure.
Спасибо