0
votes

Comment puis-je diviser une liste de Nuples Scala

J'ai cette liste dans Scala (qui en réalité a une longueur 500): xxx pré>

Que pourrais-je faire pour que je puisse faire une nouvelle liste qui contient les éléments suivants: p>

List((1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2), (3,3))


0 commentaires

3 Réponses :


2
votes
scala> val xs = List((1,List(1,2,3)), (2,List(1,2,3)), (3, List(1,2,3)))
xs: List[(Int, List[Int])] = List((1,List(1, 2, 3)), (2,List(1, 2, 3)), (3,List(1, 2, 3)))

scala> xs.flatMap { case (x, ys) => ys.map(y => (x, y)) }
res0: List[(Int, Int)] = List((1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2), (3,3))

1 commentaires

@HispanicCoder Voici des didacticiels en ligne pour Scala, FP et populaires Scala Bibliothèques: Scala-exercises.org



4
votes

exactement la même chose que @andriy, mais à l'aide d'un pour la compréhension < / strong> . Ce qui est à la fin exactement le identre mais est plus lisible IMHO. xxx

(encore une fois, je vous recommanderais de suivre n'importe quel didacticiel, il s'agit d'un exercice de base qui, si vous aviez bien compris comment mapper & plat fonctionne que vous ne devriez pas avoir de problème)


1 commentaires

Oui tu as raison! Je me sens comme la plupart des exemples, cependant, montrez des exercices plus faciles que celui-ci, c'est pourquoi je suis un peu confus lorsque vous devez mettre en œuvre quelque chose de plus exigeant. Merci pour la clarification, elle a été vraiment utile



1
votes

Il convient probablement de mentionner que la solution d'Andriy Plokhotnyuk peut également être réécrite en tant que compréhension: xxx

Le compilateur va réaffecter efficacement la compréhension à un < Code> Flatmap / Carte Chaîne comme décrit dans une autre réponse.


0 commentaires