Başka bir soruya verilen yanıtta, Setting Clojure "constants" at runtime klojure işlevi constantly
kullanılır.'Sürekli' clojure'da ne zaman kullanılmalı, argümanları nasıl ve ne zaman değerlendiriliyor?
constantly
tanımı şöyle görünür:
(defn constantly
"Returns a function that takes any number of arguments and returns x."
{:added "1.0"}
[x] (fn [& args] x))
doc dize ne yaptığını söylüyor ama kimse bunu kullanan neden. Sürekli olarak kullanıldığı önceki soruya verilen cevap olarak
aşağıdaki gibidir:
(declare version)
(defn -main
[& args]
(alter-var-root #'version (constantly (-> ...)))
(do-stuff))
Yani sürekli döndürdüğü fonksiyon doğrudan sonucu için değerlendirilir. Bunun nasıl yararlı olduğu konusunda kafam karıştı. Muhtemelen
x
'un 'sürekli' olarak sarılmadan nasıl değerlendirileceğini anlayamıyorum.
constantly
'u ne zaman kullanmalıyım ve neden gereklidir?