通常,映射索引函数将每个列表项映射到相应的索引,其中第一个索引为0,第二个索引为1等.
是否有可能让索引从另一个数字开始并从那里开始?
dan*_*neu 10
最简单的方法就是记住你可以传递多个序列map
.
(map vector [:a :b :c] (iterate inc 100))
=> ([:a 100] [:b 101] [:c 102])
Run Code Online (Sandbox Code Playgroud)
您只需使用接收函数中的另一个函数包装索引
例如,如果我们想从1开始而不是零,我们只需使用inc
(map-indexed (fn [i v] (vector (inc i) v)) ["one" "two" "three"])
Run Code Online (Sandbox Code Playgroud)
将返回
([1 "one"] [2 "two"] [3 "three"])
Run Code Online (Sandbox Code Playgroud)
map-indexed
不允许这样做。但是,编写自己的版本来让您执行此操作很容易。
(defn map-indexed-from [n f coll]
(map f (range n Double/POSITIVE_INFINITY) coll))
Run Code Online (Sandbox Code Playgroud)
用法示例:
user> (map-indexed-from 5 vector [:a :b :c])
([5 :a] [6 :b] [7 :c])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1449 次 |
最近记录: |