Estoy tratando de entrar en la comunidad de Clojure. He estado trabajando mucho con Python, y una de las características que uso mucho es el método zip(), para iterar sobre pares de valores. ¿Existe una forma (inteligente y corta) de lograr lo mismo en Clojure?Procesamiento de pares de valores de dos secuencias en Clojure
8
A
Respuesta
12
Otra forma es simplemente usar un mapa junto con alguna función que recoge sus argumentos en una secuencia, como esto:
user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])
4
(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}
Iteración sobre los mapas ocurre por parejas, p. Ej. de esta manera:
(doseq [[k v] (zipmap [:a :b :c] (range 3))]
(printf "key: %s, value: %s\n" k v))
impresiones:
key: :c, value: 2
key: :b, value: 1
key: :a, value: 0
+0
Probé la aproximación y no pudo manejar tres o más secuencias. Debería haber mencionado ese requisito en la pregunta inicial, lo siento. – Thomas
3
La pregunta ha recibido una respuesta, 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 partition
para th a).
Cuestiones relacionadas
- 1. procesamiento JAXB de secuencias XML
- 2. Vector de procesamiento de mapas en Clojure
- 3. mapa de clojure sobre secuencia de pares
- 4. ¿Incoherencia con las secuencias de Clojure?
- 5. Convertir entradas en clave, pares de valores
- 6. pares de valores clave en C# Parámetros
- 7. ¿Lista ordenada de pares de valores clave?
- 8. ¿Tuple múltiple a dos pares en Python?
- 9. Combobox de pares de valores clave en WPF
- 10. Combinar dos matrices como pares clave de valor en PHP
- 11. jQuery serializeArray() pares de valores clave
- 12. matriz en Hash de pares de valores clave en rubí
- 13. Pares de valores clave usando JSON
- 14. iterar sobre mapa clojure pares (circular)
- 15. Adjuntar/concatenar dos secuencias de IEnumerable
- 16. Almacenamiento de pares duplicados de valores clave en C#
- 17. Pares de valores clave en la base de datos relacional
- 18. Parse pares de valores clave en un archivo de texto
- 19. Clojure Mapeo paralelo y secuencias infinitas
- 20. Procesamiento de texto con dos archivos
- 21. Desanudar una secuencia a secuencias de elementos repetitivos (clojure)
- 22. Agregar comportamiento personalizado a las secuencias de Clojure
- 23. procesamiento de valores mónada antes de la asignación
- 24. ¿Cómo puedo contar pares únicos de valores en SQL?
- 25. TSQL, contando pares de valores en una tabla
- 26. C# Los valores de extracto de pares de valores clave en la cadena
- 27. ¿Es mejor usar una lista de pares o dos listas?
- 28. Clojure Cadena Valores devueltos
- 29. Desembalaje una lista/tupla de pares en dos listas/tuplas
- 30. cómo obtener pares de valores consecutivos de F # Seq
Este ejemplo fue capaz de manejar tres secuencias, gracias. – Thomas