2010-07-01 34 views
8

假設我有一個要放入地圖的鍵 - 值對的向量。在clojure中爲var-args傳遞向量最常用的方法是什麼?

​​

我做這樣的事情:

(apply assoc (cons my-map v)) 

而事實上,我發現自己做這種模式,

(apply some-function (cons some-value some-seq)) 

在過去幾天多次。這是慣用的,還是有更好的方法將參數形式序列移入函數?

回答

10

apply在函數名和最後一個seq參數之間需要額外的參數。

user> (doc apply) 
------------------------- 
clojure.core/apply 
([f args* argseq]) 
    Applies fn f to the argument list formed by prepending args to argseq. 

這就是args*的含義。所以你可以這樣做:

user> (apply assoc {} :foo :bar [:baz :quux]) 
{:baz :quux, :foo :bar} 
user> (apply conj [] :foo :bar [:baz :quux]) 
[:foo :bar :baz :quux] 
+0

啊,它就在那裏。我知道我錯過了一些東西。謝謝,Brian。 – 2010-07-01 19:51:04

相關問題