ベクトル内のすべてのペアの最初の要素をインクリメントする次のコードがあります。
(vec (map (fn [[key value]] [(inc key) value]) [[0 :a] [1 :b]]))
ただし、最初にマップを使用してシーケンスを作成し、次にそれをベクトルにキャストするため、このコードは洗練されていないのではないかと心配しています。
この類似物を考えてみましょう:
(into [] (map (fn [[key value]] [(inc key) value]) [[0 :a] [1 :b]]))
#clojure@irc.freenode.net で、上記のコードを使用するのは良くないと言わinto
れ(reduce conj [] (map-indexed ...))
ました。それから、実際にinto
は拡張されず(reduce conj ...)
、可能な場合はトランジェントを使用すると言われました。また、経過時間を測定するinto
と、実際には よりも速いことが示されましたvec
。
だから私の質問は:
map
ベクターを使用する適切な方法は何ですか?- ベクターを使用する
vec
と、その下で何が起こりますか?into
関連するが重複していない質問: