clojure기초

clojure 함수형 패턴매칭 2 (case)

코딩조무사 2017. 10. 21. 18:19


1
2
3
4
5
6
7
8
9
10
11
12
(defn foo [x]
      (println
        (case x
          "A" "string a"
          1 "number 1"
          "other") ) )
 
 
(foo 20)
(foo "A")
(foo 33.0)
(foo 1)
cs

출력: 

other

string a

other

number 1


이쪽은 C++의 switch - case와 비슷하지만

타입과 관계없이 모두 매칭 시킬수 있다는 장점이 있다 


또한 String부터 비교를 시작했어도 에러가 나지 않는다 

java.lang.Object의 equals를 사용하는듯 하다