【问题标题】:What does vector do in a map statement?vector 在 map 语句中的作用是什么?
【发布时间】:2011-10-12 04:35:37
【问题描述】:

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

(Map vector (iterate inc 0) coll)

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

【问题讨论】:

标签: map clojure


【解决方案1】:

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

至于vector,它和vector 函数通常做的一样——用它的参数创建一个向量。例如,(vector 1 100 1000) 给出[1 100 1000]。在这种情况下,它的参数将是两个集合的第 n 个元素:

  1. 从零开始的无限整数序列

  2. coll 中的任何内容

实际上,这会将coll 中的每个项目转换为一个向量,该向量包含项目的索引,后跟项目。所以如果coll[a b c],例如,它会给你([0 a] [1 b] [2 c])

【讨论】:

    猜你喜欢
    • 2017-08-08
    • 2015-06-22
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    相关资源
    最近更新 更多