2012-09-25 2 views

답변

25

너무 기능 :as 같은 일을 보인다 :

hash-map

(defn test2 [{x :x y :y :as m}] 
    {:x x :y y :m m}) 

(test2 {:x 1 :y 2 :z 3}) 
=> {:x 1 :y 2 :m {:x 1 :y 2 :z 3}} 

(defn test [[x y :as v]] 
    {:x x :y y :v v}) 

(test [1 2 3 4]) 
=> {:x 1 :y 2 :v [1 2 3 4]} 

vector와 함께이 훌륭한 블로그 게시물을 참조하십시오 : FN, 내가 할 생각 http://blog.jayfields.com/2010/07/clojure-destructuring.html

+3

을, defn 등은 모두 s를 사용합니다. ame destructuring syntax. – JohnJ

+0

@ JohnJ : 예, 구조적 의미를 일관되게 유지합니다. – Ankur

+0

@JohnJ 그건 "사실"입니다. 예를 들어서 만 사용하기 때문에 처음에는 블로그 게시물에서 혼란 스러웠습니다. let과 fn/defn의 차이점은 바인딩 양식을 사용한다는 것입니다. –