que quiero hacer algo como esto (simplificado bastante fuerte):Trabajar con tuplas de Scala
((1, 2, 3, 4, 5, 6), (6, 5, 4, 3, 2, 1)).zipped map (_ + _)
Ignorar los valores reales de los números enteros (aunque es importante que estos son 6-tuplas, en realidad :)) . Esencialmente, quiero usar esto con bastante regularidad en una función que mantiene un Map[String, (Int, Int, Int, Int, Int, Int)]
cuando se actualiza un elemento existente.
Como es, Scala escupe esto a mí:
<console>:6: error: could not find implicit value for parameter w1: ((Int, Int, Int, Int, Int, Int)) => scala.collection.TraversableLike[El1,Repr1]
((1, 2, 3, 4, 5, 6), (6, 5, 4, 3, 2, 1)).zipped
Si uso Seq
s en lugar de tuplas, todo funciona bien, pero quiero hacer cumplir una aridad de 6 en el sistema de tipo (I Probablemente type Record = (Int, Int, Int, Int, Int, Int)
como refactor rápido en breve).
¿Alguien puede ofrecer algún consejo sobre lo que estoy haciendo mal/por qué Scala no se ocupará del código anterior? Pensé que podría funcionar si usaba una tupla de 2 ó 3 arias, ya que Scala define Tuple2
y Tuple3
s (entiendo que escalar las funciones de tupla en una aria arbitraria es difícil), pero obtengo el mismo error.
Gracias de antemano por cualquier ayuda ofrecida :).
Me gusta esto. Necesito investigar las implícitas más, ya que parece que son una construcción muy poderosa que me estoy perdiendo (estoy aprendiendo a Scala como voy actualmente). ¡Gracias! – frio
oh, eso es bastante elegante. ¡Gusta! –