В принятом ответе на другой вопрос Установка" констант "Clojure во время выполнения функция clojure постоянно
равна
Определение постоянно
выглядит так:
(defn constantly
"Returns a function that takes any number of arguments and returns x."
{:added "1.0"}
[x] (fn [& args] x))
Строка документа говорит, что она делает, но не указывает, почему ее следует использовать.
В ответе, данном в предыдущем вопросе, постоянно есть используется следующим образом:
(declare version)
(defn -main
[& args]
(alter-var-root #'version (constantly (-> ...)))
(do-stuff))
Таким образом, функция, возвращаемая функцией always, напрямую оценивается по ее результату. Я не понимаю, насколько это полезно. Я, вероятно, не понимаю, как x
будет оцениваться с учетом и без завернутый в `постоянно '.
Когда мне следует использовать постоянно
и почему это необходимо?