Procesando pares de valores de dos secuencias en Clojure

Estoy tratando de entrar en la comunidad de Clojure. He estado trabajando mucho con Python, y una de las funciones que utilizo ampliamente es el método zip (), para iterar sobre pares de valores. ¿Existe una forma (inteligente y corta) de lograr lo mismo en Clojure?

Otra forma es simplemente usar map junto con alguna función que recostack sus argumentos en una secuencia, como esta:

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} 

La iteración sobre los mapas ocurre por pares, por ejemplo, de esta manera:

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

huellas dactilares:

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

La pregunta ha sido respondida, pero todavía hay interleave , que también maneja un número arbitrario de secuencias, pero no agrupa la secuencia resultante en tuplas (pero puede usar la partition para eso).