2012-09-25 42 views

回答

25

好像:as作品的功能太:

vector

(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]} 

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}} 

看到這個了不起的博客文章:http://blog.jayfields.com/2010/07/clojure-destructuring.html

+3

我相信我們,FN, defn等全部使用s ame解構語法。 – JohnJ

+0

@JohnJ:是的,使解構語義一致。 – Ankur

+0

@JohnJ這是「真實的」。起初我在博客文章中感到非常困惑,因爲它只使用了一些例子。 let和fn/defn的區別在於它使用綁定形式。 –

相關問題