생성일: 2019년 12월 09일
수정일: 2023년 08월 05일

4clojure - Intro to Reduce (64)

  1. 문제
  2. 풀이

문제

(= 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
Tags: 4clojure Today I Learn