수색…


비고

core.match 라이브러리는 게으른 패턴 일치에서 "필요성"이라는 개념을 사용하는 패턴 일치 컴파일 알고리즘을 구현합니다.

일치하는 리터럴

(let [x true
      y true
      z true]
  (match [x y z]
     [_ false true] 1
     [false true _ ] 2
     [_ _ false] 3
     [_ _ true] 4))

;=> 4

벡터 일치시키기

(let [v [1 2 3]]
  (match [v]
    [[1 1 1]] :a0
    [[1 _ 1]] :a1
    [[1 2 _]] :a2))  ;; _ is used for wildcard matching

;=> :a2

지도 매치

(let [x {:a 1 :b 1}]
   (match [x]
     [{:a _ :b 2}] :a0
     [{:a 1 :b _}] :a1
     [{:x 3 :y _ :z 4}] :a2))

;=> :a1

문자 그대로의 기호 맞추기

(match [['asymbol]]
  [['asymbol]] :success)

;=> :success


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow