Utilisation fonctionnelle combinators sur Scala Tuples?

'map' conserve le nombre d'éléments, afin de l'utiliser sur un Tuple semble raisonnable.

Mes tentatives jusqu'à présent:

scala> (3,4).map(_*2)    
error: value map is not a member of (Int, Int)
       (3,4).map(_*2)
             ^
scala> (3,4).productIterator.map(_*2)
error: value * is not a member of Any
       (3,4).productIterator.map(_*2)
                                  ^
scala> (3,4).productIterator.map(_.asInstanceOf[Int]*2)
res4: Iterator[Int] = non-empty iterator

scala> (3,4).productIterator.map(_.asInstanceOf[Int]*2).toList
res5: List[Int] = List(6, 8)

Il semble assez douloureux... Et je n'ai même pas commencé à essayer de la convertir à un n-uplet.

Suis-je le fais mal? Pourrait la bibliothèque-elle être améliorée?

  • Il semblerait que vous utilisez un tuple où vous devriez vraiment être à l'aide d'une collection. Envisager l'utilisation d'un réel de la collection de la classe au lieu - tuples ne doit pas être utilisé comme une sorte de collections.
  • Je suis en désaccord: je pourrait tout simplement d'appliquer la même opération SEC vient et consicely sur une collection d'élément dont la taille est connu statiquement.