Bonjour,
Comment obtenir tous les pairs possibles des deux listes :
[1,2,3...] [1,2,3..] >>1,1 1,2 1,3 2,1 2,2 2,3 3,1 3,2 3,3 ....
Merci d'avance,
Salutations, vasilpapa
Alors, possible ou pas possible ?
Bonjour,
Comment obtenir tous les pairs possibles des deux listes :
[1,2,3...] [1,2,3..] >>1,1 1,2 1,3 2,1 2,2 2,3 3,1 3,2 3,3 ....
Merci d'avance,
Salutations, vasilpapa
Alors, possible ou pas possible ?
Évidemment possible... si tu peux décrire le procédé de façon mécaniste pour effectuer une tâche, il doit être possible de réaliser cette tâche dans tous les langages Turing-complet (pratiquement tous donc).
Basiquement ce que tu veux c'est faire le produit cartésien de deux listes(/ensembles).
Il y a plusieurs façon de faire selon ce que tu connais du langage :
- si tu connais les compréhensions de listes c'est probablement une bonne option,
Code : Sélectionner tout - Visualiser dans une fenêtre à part [x+y | x <- xs, y <- ys ]- sinon tu pourrais utiliser la monade liste qui correspond à des calculs multiples simultanés, par exemple :
qui se résume en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 do x <- xs y <- ys return (x+y)
Code : Sélectionner tout - Visualiser dans une fenêtre à part liftM2 (+) xs ys- Il est également possible de faire ceci avec concat et map (ou concatMap pour plus d'efficacité) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part concatMap (\x -> map (x+) ys) xs
Tous ces exemples ne font pas exactement ce que tu souhaites mais presque, à toi d'ajuster (ça ne devrait pas poser problème si tu as compris, sinon reviens demander des explications).
--
Jedaï
Merci Jedai por ta réponse très complète.
Je débute en Haskell et ce n'est pas toujours évident.
Partager