8

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

4

3 に答える 3

12

もう1つの方法は、次のように、引数を順番に収集する関数と一緒にmapを使用することです。

user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])
于 2009-06-17T19:34:06.973 に答える
4
(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
于 2009-06-17T19:30:16.107 に答える
3

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

于 2009-06-19T08:16:43.297 に答える