【发布时间】:2011-12-07 23:24:15
【问题描述】:
有没有办法将一个包含 3 个参数的函数 foo 映射到参数向量列表(或列表)上,以便向量解构?
(defn foo [a b c]
...)
([a1 b1 c1] [a2 b2 c2])
我可以使用一个简单的函数来执行此操作吗?还是我必须构造一个匿名函数?
【问题讨论】:
有没有办法将一个包含 3 个参数的函数 foo 映射到参数向量列表(或列表)上,以便向量解构?
(defn foo [a b c]
...)
([a1 b1 c1] [a2 b2 c2])
我可以使用一个简单的函数来执行此操作吗?还是我必须构造一个匿名函数?
【问题讨论】:
你想要应用功能。
(map #(apply foo %) '([1 2 3] [4 5 6]))
编辑:
由于您提到不使用匿名函数,我会注意到您可以通过一些简单的函数组合轻松制作 foo 函数的“可映射”版本。
(def mfoo (partial apply foo))
(map mfoo '([1 2 3] [4 5 6]))
【讨论】: