Deux questions "simples".
1. j'aimerais construire couple :: [a] -> [[a]] qui me donnerait toutes les paires [x,y]. Je précise que je démarre depusi hier (ça vous le savez ... ), juste avec la doc.
La fonction générale pour les sous-tuples est ok:
Mais est-il possible de la simplifier pour ne tenir compte que de n=2 ? J'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 combinations :: Int -> [a] -> [[a]] combinations 0 _ = [ [] ] combinations n xs = [ y:ys | y:xs' <- tails xs , ys <- combinations (n-1) xs']
qui bien sûr ne marche pas, et même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 couple :: [a] -> [[a]] couple xs = [y:ys | y:xs' <- tails xs , ys <- tails xs']
mais ce head qui me resoudrait le problème ne fonctionne pas!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 couple :: [a] -> [[a]] couple xs = [y:ys | y:xs' <- tails xs , ys <- head.tails xs']
2. Une fois la fct couple ok, j'obtiendrai donc une liste [[x1,y1],[x2,y2],...], et étant donné une fonction f:Integer -> Integer -> Integer, j'aimerais l'appliquer à cette liste; c'est avec zipWith, c'est cela?
Merci pour ceux qui pourront aider un dilletante ...
Partager