是否有一些功能可以通过函数组合多个序列



如果我有两个序列

(let [v1 '(1 2 3 4)
      v2 '(2 4 6 8)]
  ...)

是否有某种方式将它们通过函数与单个向量组合在一起,例如:

(combine #(* % %2) [1 2 3 4] [2 4 6 8]) => [2 8 18 32]

"映射"函数将对每个序列"组合"采用一个参数,因此使用3个序列调用它将需要3个磁性函数。如果任何一个序列都用完元素,则应该只是停止或重复一个较短的元素,都不重要。

您可以使用map函数(来自clojure.core)。

map将函数作为其第一个参数,将任意数量的序列作为其后续参数。它通过从每个输入序列中获取一个元素并将该函数以该元素作为参数应用为参数来构造输出的每个元素。

,您的示例将成为:

(map * [1 2 3 4] [2 4 6 8])

最新更新