clojure で 2 つのコレクションを効率的に追加するには? 私は1つに従ってみました。これ以外に効率的な方法があるかどうか知りたいです。
(reduce #(conj %1 %2) collection01 collection02)
clojure で 2 つのコレクションを効率的に追加するには? 私は1つに従ってみました。これ以外に効率的な方法があるかどうか知りたいです。
(reduce #(conj %1 %2) collection01 collection02)
それはあなたが何を達成したいかによります。結果に必要なものが、指定されたコレクションのすべての要素を含む、指定された型のコレクションである場合into
は、適切です:およびからの要素を持つ(into coll1 coll2)
型のコレクションを返します。(type coll1)
coll1
coll2
一方、多くのコレクションを繰り返し処理する (つまり、コレクション内に要素のシーケンスを作成する) だけの場合は、次を使用する方が効率的concat
です。
user> (concat [1 2 3] (list 4 5 6))
(1 2 3 4 5 6)
使用into
:
user> (into [1 2 3] [4 5 6])
[1 2 3 4 5 6]
user> (doc into)
-------------------------
clojure.core/into
([to from])
Returns a new coll consisting of to-coll with all of the items of
from-coll conjoined.
nil