생성일: 2019년 12월 09일
수정일: 2023년 08월 05일
수정일: 2023년 08월 05일
4clojure - Intro to Reduce (64)
문제
(= 15 (reduce __ [1 2 3 4 5]))
(= 0 (reduce __ []))
(= 6 (reduce __ 1 [2 3]))
풀이
+
reduce에 대한 입문 문제 이다. reduce는 사용하기에 따라서 recursive동작과 같은 형태로도 만들수 있는 만능 함수이다. 앞으로도 자주 사용을 하게 될 것이라 기초적인 것이 제일 중요하다고 생각한다.
내부의 동작은 아래와 같다
(reduce + [1 2 3 4 5])
;; (+ (+ (+ (+ 1 2) 3) 4) 5)
;; (+ (+ (+ 3 3) 4) 5)
;; (+ (+ 6 4) 5)
;; (+ 10 5)
;; 15
풀어서 보니 전형적인 recursive 동작이라고 생각한다.
apply와는 다르게 동작 한다는 것에 유의를 해야 한다.
(apply + [1 2 3 4 5])
;; (+ 1 2 3 4 5)
;; 15