我猜测有一个简单的方法来做到这一点,我没有找到。我想将一个映射传递给一个方法,该方法将命名值绑定到键,例如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))
问的问题“给出的方法这个形状,我怎么称呼它?“。这个答案的形式是:“改变方法”,所以我不认为这是一个好的答案。但也许这不是一个好问题。 :) –
啊,我读它是在调用他写的一种方法。如果不能改变方法,我认为没有比你的答案更好的解决方案。 –