我最终要做的是将两个向量相乘并返回相同大小的向量,例如:
[6 7 8 9 10] * [0 1 3 1 0] => [0 7 24 9 0]
我试图做类似的事情:
(partition 2 (interleave [6 7 8 9 10] [0 1 3 1 0])) => ((6 0) (7 1) (8 3) (9 1) (10 0))
...然后将每个嵌套列表值相乘,并使用flatten
得到:
(0 7 24 9 0)
但我无法弄清楚如何将嵌套列表值相乘?
答案 0 :(得分:3)
Map采用多个序列和函数将每个成员与其他序列的相应成员组合。
user> (map * [6 7 8 9 10] [0 1 3 1 0])
(0 7 24 9 0)
user> (mapv * [6 7 8 9 10] [0 1 3 1 0])
[0 7 24 9 0]
在这种情况下,它会在每个列表的第一个数字上调用*
,然后在每个列表的第二个数字上调用,依此类推,构建输出的seq。如果您希望向量mapv
中的输出很方便。