J'ai cette liste dans Scala (qui en réalité a une longueur 500): 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))
3 Réponses :
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))
@HispanicCoder Voici des didacticiels en ligne pour Scala, FP et populaires Scala Bibliothèques: Scala-exercises.org
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. (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 code> &
plat code> fonctionne que vous ne devriez pas avoir de problème) em> p> p>
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
Il convient probablement de mentionner que la solution d'Andriy Plokhotnyuk peut également être réécrite en tant que compréhension: Le compilateur va réaffecter efficacement la compréhension à un < Code> Flatmap code> / Carte code> Chaîne comme décrit dans une autre réponse. p> p>