我有以下方法:
(defn area [x y] (* x y))
如何遍历关于参数编号的列表。就像是
(map area [2 5 6 6])
所以它会进行类似
(area 2 5)
的计算和 (area 6 6)
,也许 vector 不是正确使用的类型。
最佳答案
您可以使用 partition
正如一些人在这里建议的那样,但您可能需要考虑以不同的方式排列数据。例如,您可以使用向量的向量:
[[2 5] [6 6]]
然后您可以更改您的
area
功能:(defn area [[x y]] (* x y))
现在你可以用你的一对调用它:
(area [6 6])
并在您的向量上进行映射很容易:(map area [[2 5] [6 6]])
如果由于某种原因您需要
area
要采用两个参数而不是向量,您可以执行以下操作:(map #(apply area %) [[2 5] [6 6]])
对我来说,这仍然比使用
partition
更简单.
关于clojure - 如何使用具有多个参数的函数的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15252184/