생성일: 2019년 10월 25일
수정일: 2023년 09월 30일

4clojure - Count a Sequence (22)

  1. 문제
  2. 풀이

문제

(= (__ '(1 2 3 3 1)) 5)

(= (__ "Hello World") 11)

(= (__ [[1 2] [3 4] [5 6]]) 3)

(= (__ '(13)) 1)

(= (__ '(:a :b :c)) 3)

제한 : count 함수

풀이

(fn [x]
  (reduce (fn [acc e] (inc acc)) 0 x))

원소의 갯수를 파악하는 문제이다 나는 reduce를 사용하여 원소를 순회하며 acc를 한개씩 증가시키는 방법으로 문제를 해결 하였다.

solution을 보니 or 또는 do를 사용하여 문제를 해결한 사람들도 있었다. or은 false인 경우를 제외하고 무조건 첫번째 표현식의 결과 값을 반환 한다.

(or (inc 0) :a)
;; 1

위 표현식을 보면 :a는 출력을 하지 않는다는 것이다.

do는 표현식을 순서대로 실행하는 함수이다.

(do (print "Somthing")
	  (print "this"))
;; Somthing
;; this
Tags: 4clojure Today I Learn