Clojure 新手,试图弄清楚如何在不使用大量 next 的情况下对序列进行索引。例如说我有序列:
(abcdefgh)
我想将返回序列的第 4 项的功能合并到一个函数中。除了 (next (next (next sequence_name))) 之外肯定还有什么办法?所以我可以将数字 4 传递给函数(或任何其他数字)并从序列中获取该项目。谢谢!
几种不同的方式:
(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 的序列库非常丰富。
好老人nth
应该做的伎俩
user> (nth '(a b c d e f g h) 4)
e
(当然是从 0 开始索引的)