Ещё можно тупой вопрос, если слишком много на сегодня - скажите пожалуйста. Вот у меня есть функция (defn dns-resolve
"Gets the address of a hostname"
[hostname]
(.getHostAddress (InetAddress/getByName (name hostname))))
Как clojure понимает что эту функцию нельзя кэшировать? Ну то есть что каждый раз надо заново вычислять её, а не один раз зарезолвить в константу? Как clojure оптимизирует функции которые просто допустим манипулируют константами в рантайме?
Мне кажется, она не кеширует вызовы, если ты сам не напишешь это кеширование. В clojure.core есть функция memoize для кеширования, если не важны детали