
Je t'ai mis un commentaire dans ton gist avec une technique très classique
pour compter le nombre d'occurences d'éléments d'une liste.
Le 22 juin 2017 à 17:46, Simon Marechal
Tu peux:
let (lvotes,lcandidats) = break (== "0") lignes votes = ... a candidats = map read (drop 1 lcandidats) -- ça marche avec l'exemple que tu as donné ;)
Mais oui, dans l'absolu faut parser correctement ...
Le 22 juin 2017 à 17:29, Marc Chantreux
a écrit : salut,
On Wed, Jun 21, 2017 at 02:20:05PM +0200, Simon Marechal wrote:
C'est typiquement un cas où tu peux utiliser "break", pour séparer votes/candidats.
sauf que je me suis rendu compte apres coup que l'appliquais un traitement bien different aux 2 parties du fichier pour obtenir les 2 listes et que je ne sais pas comment l'écrire. je suis donc parti avec un takeWhile et un dropWhile.
De plus, tu peux également utiliser "words" pour récupérer ta liste de chiffres, sans avoir à utiliser une quelconque bibliothèque de parsing.
c'est bien ce que je fais pour le moment ... mais c'est fragile! quid d'une chaine de plusieurs mots entre quotes par exemple. en perl j'ai les regexp que je peux dégainer facilement mais pour le moment je me sens un peu a poil avec haskell.
bon j'ai quand meme avancé et j'en suis a trier les clusters de candidats par nombre d'occurrence. si qq1 a des idées de correction qui lui viennent a brule-pourpoint:
https://gist.github.com/anonymous/c147082931d7dbebabab862ec33757d9
-- Marc Chantreux (eiro on github and freenode) http://eiro.github.com/ http://eiro.github.com/atom.xml "Don't believe everything you read on the Internet" -- Abraham Lincoln _______________________________________________ Haskell-fr mailing list Haskell-fr@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-fr