gpt4 book ai didi

clojure - 保持索引和 map 索引之间的区别?

转载 作者:行者123 更新时间:2023-12-02 12:10:12 24 4
gpt4 key购买 nike

map-indexed 和有什么区别和 keep-indexed

最佳答案

map-indexed 与 map 类似,不同之处在于 coll 中每个元素的索引作为第一个参数传递给 map-indexed 所采用的函数,而该元素作为第二个参数传递给函数。

所以

(map-indexed + [1 2 3 4]) ;=> ((+ 0 1) (+ 1 2) (+ 2 3) (+ 3 4)) => (1 3 5 7)

keep-indexed 的工作方式与 map-indexed 相同,不同之处在于如果 (f index value) 返回 nil,则它不会包含在结果 seq 中。

例如:

(keep-indexed #(and %1 %2) [1 2 3 nil 4]) ;;=> (1 2 3 4)

您可以将 keep-indexed 视为包装在过滤器中的 map 索引,如下所示:

(filter (complement nil?) (map-indexed f coll))

关于clojure - 保持索引和 map 索引之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26912909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com