我猜測有一個簡單的方法來做到這一點,我沒有找到。我想將一個映射傳遞給一個方法,該方法將命名值綁定到鍵,例如Clojure映射到命名鍵的語法
(DEFN我的法[& {:鍵[ABC]}] ...
這個工作,如果調用如
(MY-方法:1: b 2:C 3)
但我想用提供的地圖,如東西,看起來像
叫它(DEF米{:1:B 2:C 3})
(MY-方法米)
有一個簡單的方法到地圖變換到所需的參數列表?
我猜測有一個簡單的方法來做到這一點,我沒有找到。我想將一個映射傳遞給一個方法,該方法將命名值綁定到鍵,例如Clojure映射到命名鍵的語法
(DEFN我的法[& {:鍵[ABC]}] ...
這個工作,如果調用如
(MY-方法:1: b 2:C 3)
但我想用提供的地圖,如東西,看起來像
叫它(DEF米{:1:B 2:C 3})
(MY-方法米)
有一個簡單的方法到地圖變換到所需的參數列表?
剛落符號:
> (defn my-method [{:keys [a b c]}] (+ a b c))
> (my-method m)
6
這是不漂亮,但:
(apply my-method (mapcat identity m))
或在評論中建議:
(apply my-method (apply concat m))
問的問題「給出的方法這個形狀,我怎麼稱呼它?「。這個答案的形式是:「改變方法」,所以我不認爲這是一個好的答案。但也許這不是一個好問題。 :) –
啊,我讀它是在調用他寫的一種方法。如果不能改變方法,我認爲沒有比你的答案更好的解決方案。 –