repeatedly : 함수를 반복

(repeatedly f)
(repeatedly n f)

repeatedly를 사용하면, 함수를 무한 반복하거나, 정해진 수만큼 반복할 수 있다.
랜덤한 수를 n개 만들일이 생겼을 때 다음과 같이 활용했다.

(take 6 (repeatedly #(rand-int 100)))
;; => (88 52 73 43 89 48)

(repeatedly 6 #(rand-int 100))
;; => (46 51 42 7 84 89)

constantly : x를 리턴하는 함수를 리턴

(constantly x)

항상 같은 숫자를 리턴하는 함수를 만들 때, 매번 정의하기는 좀 귀찮은데 그럴 때 쓰기 좋다.
f(x)=x 니까 항등함수 느낌.

clojure-docs에 예가 있다.

user=> (def boring (constantly 10))
#'user/boring

user=> (boring 1 2 3)
10

user=> (boring)
10

user=> (boring "Is anybody home?")
10

;;--------------------------------------------------
;; A really goofy way to find the size of a collection
user=> (reduce + (map (constantly 1) [:a :b :c]))
3

;; 테스트할 때 특히 많이 쓰인다.
(constantly 1) is often useful when it comes to testing. You can think of it like you would a "stub".