8
私はMapのListを持っていますが、Clojureのリストから偶数/奇数のインデックス付き要素を取得する必要があります。 forループを使ってリストを反復したくないです。 smallまたはsingle_word関数はありますか?ClojureのCollection(Mapsのリスト)から偶数/奇数のインデックス付き要素を取得
私はMapのListを持っていますが、Clojureのリストから偶数/奇数のインデックス付き要素を取得する必要があります。 forループを使ってリストを反復したくないです。 smallまたはsingle_word関数はありますか?ClojureのCollection(Mapsのリスト)から偶数/奇数のインデックス付き要素を取得
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)
私はこのための任意の組み込み関数を知らないが、自分でものを書くためにその冗長ではありませんが、ここで私の試みです:
(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" "foobar" "quux" ])
; -> {:even ["foo" "baz" "quux"], :odd ["bar" "foobar"]}
おかげで、私はすでにただ、それを見つけました答えを投稿するのに数秒を要した! –
これは私が必要としていたものです! – PubNub