2

Clojure 新手,试图弄清楚如何在不使用大量 next 的情况下对序列进行索引。例如说我有序列:

(abcdefgh)

我想将返回序列的第 4 项的功能合并到一个函数中。除了 (next (next (next sequence_name))) 之外肯定还有什么办法?所以我可以将数字 4 传递给函数(或任何其他数字)并从序列中获取该项目。谢谢!

4

2 回答 2

3

几种不同的方式:

(take 1 (drop 3 '(a b c d e f g h))) ;; d

(nth '(a b c d e f g h) 3) ;; d

(nth [a b c d e f g h] 3) ;; d

(nth (vec '(a b c d e f g h)) 3) ;;d

我建议您熟悉 Clojure Cheat Sheet中的序列操作函数——这完全值得。Clojure 的序列库非常丰富。

于 2013-04-10T00:54:22.960 回答
2

好老人nth应该做的伎俩

user> (nth '(a b c d e f g h) 4)                                                                                                                                                   
e 

(当然是从 0 开始索引的)

于 2013-04-10T00:54:46.967 回答