22
함수 매개 변수를 분해 할 수 있지만 여전히 원본을 사용할 수 있습니까? 내가 지금하고있는 방식은 함수 몸체에 let
형태를 사용하는 것 뿐이지 만, 더 쉬운 방법이 있는지 궁금하다.원래 값을 유지하면서 Clojure 함수의 매개 변수를 제거합니다.
함수 매개 변수를 분해 할 수 있지만 여전히 원본을 사용할 수 있습니까? 내가 지금하고있는 방식은 함수 몸체에 let
형태를 사용하는 것 뿐이지 만, 더 쉬운 방법이 있는지 궁금하다.원래 값을 유지하면서 Clojure 함수의 매개 변수를 제거합니다.
너무 기능 :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
을, defn 등은 모두 s를 사용합니다. ame destructuring syntax. – JohnJ
@ JohnJ : 예, 구조적 의미를 일관되게 유지합니다. – Ankur
@JohnJ 그건 "사실"입니다. 예를 들어서 만 사용하기 때문에 처음에는 블로그 게시물에서 혼란 스러웠습니다. let과 fn/defn의 차이점은 바인딩 양식을 사용한다는 것입니다. –