3

clojure で 2 つのコレクションを効率的に追加するには? 私は1つに従ってみました。これ以外に効率的な方法があるかどうか知りたいです。

(reduce #(conj %1 %2) collection01 collection02)

4

2 に答える 2

12

それはあなたが何を達成したいかによります。結果に必要なものが、指定されたコレクションのすべての要素を含む、指定された型のコレクションである場合intoは、適切です:およびからの要素を持つ(into coll1 coll2)型のコレクションを返します。(type coll1)coll1coll2

一方、多くのコレクションを繰り返し処理する (つまり、コレクション内に要素のシーケンスを作成する) だけの場合は、次を使用する方が効率的concatです。

user> (concat [1 2 3] (list 4 5 6)) 
(1 2 3 4 5 6)
于 2012-07-10T09:41:10.707 に答える
8

使用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
于 2012-07-10T08:23:53.587 に答える