Java 从Clojure中的集合(映射列表)中获取偶数/奇数索引元素

Java 从Clojure中的集合(映射列表)中获取偶数/奇数索引元素,java,list,dictionary,clojure,closures,Java,List,Dictionary,Clojure,Closures,我有一个映射列表,我需要在Clojure中从该列表中获取偶数/奇数索引元素。 我不想用for循环迭代列表。是否有任何小的或单字的函数?我不知道有任何内置函数用于此,但自己编写一个并不是那么冗长,以下是我的尝试: (defn evens-and-odds [coll] (reduce (fn [result [k v]] (update-in result [(if (even? k) :even :odd)] conj v)) {:even []

我有一个映射列表,我需要在Clojure中从该列表中获取偶数/奇数索引元素。
我不想用for循环迭代列表。是否有任何小的或单字的函数?

我不知道有任何内置函数用于此,但自己编写一个并不是那么冗长,以下是我的尝试:

(defn evens-and-odds [coll]
  (reduce (fn [result [k v]]
            (update-in result [(if (even? k) :even :odd)] conj v))
          {:even [] :odd []}
          (map-indexed vector coll)))

(evens-and­-odds [ "foo"­ "bar"­ "baz"­ "foob­ar" "quux­" ])
; -> {:even ["foo" "baz" "quux"], :odd ["bar" "foobar"]}

谢谢,我已经找到了,只差几秒钟就没找到答案!这正是我需要的!
user=> (take-nth 2 [0 1 2 3 4 5 6 7 8 9])
(0 2 4 6 8)
user=> (take-nth 2 (rest [0 1 2 3 4 5 6 7 8 9]))
(1 3 5 7 9)