質問

Clojureコミュニティに参加しようとしています。私はPythonで多くの仕事をしてきましたが、私が広範囲に利用している機能の1つは、値のペアを反復処理するためのzip()メソッドです。 Clojureで同じことを達成する(賢くて短い)方法はありますか?

役に立ちましたか?

解決

別の方法は、次のように、引数をシーケンスで収集する関数と一緒に単純にマップを使用することです:

user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])

他のヒント

(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}

マップの繰り返しはペアで行われます。このように:

(doseq [[k v] (zipmap [:a :b :c] (range 3))]
  (printf "key: %s, value: %s\n" k v))

印刷:

key: :c, value: 2
key: :b, value: 1
key: :a, value: 0

質問には回答しましたが、まだ interleave があり、これも任意の数のシーケンスを処理しますが、結果のシーケンスをタプルにグループ化しません(ただし、 partition for))。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top