vector在map语句中做什么?

vector在map语句中做什么?,map,clojure,Map,Clojure,在Clojure的一本书中,我发现了一个带有3个参数的映射函数: (Map vector (iterate inc 0) coll) 向量在做什么?该函数如何接受3个参数而不是标准的2个参数?map函数接受数量可变的参数。所需的第一个参数是一个函数,之后可以传递任意数量的集合。当传递多个集合时,每个集合中的相应元素将作为参数传递给函数(例如,如果传递一个集合,函数将接收一个参数,如果传递三个集合,函数将接收三个参数) 至于vector,它做的事情与vector函数通常做的事情相同——用它的参数

在Clojure的一本书中,我发现了一个带有3个参数的映射函数:

(Map vector (iterate inc 0) coll)

向量在做什么?该函数如何接受3个参数而不是标准的2个参数?

map函数接受数量可变的参数。所需的第一个参数是一个函数,之后可以传递任意数量的集合。当传递多个集合时,每个集合中的相应元素将作为参数传递给函数(例如,如果传递一个集合,函数将接收一个参数,如果传递三个集合,函数将接收三个参数)

至于
vector
,它做的事情与
vector
函数通常做的事情相同——用它的参数生成一个向量。例如,
(向量1100 1000)
给出
[1100 1000]
。在本例中,其参数将是两个集合的第n个元素:

  • 从零开始的无限整数序列

  • 无论在
    coll

  • 实际上,这会将
    coll
    中的每个项转换为一个向量,该向量包含该项的索引,后跟该项。因此,如果
    coll
    [abc]
    ,例如,它将为您提供
    ([0a][1b][2c])