Salut Marc,

J'allais répondre comme Sylvain, mais effectivement c'est un peu dangereux de faire ça (à moins d'être certains d'un unique élément séparateur dans la liste initiale), et il y a peut-être une façon moins risquée de traiter cette liste en amont pour éviter de faire ça.

N'hésite pas à décrire un peu plus ce que tu souhaites faire si tu veux d'autres idées.

- Valentin

On Tue, Jun 20, 2017 at 12:45 AM Sylvain Henry <sylvain@haskus.fr> wrote:
Salut,

Tu peux utiliser un pattern dans un let.

 > let [x,y] = splitWhen (==0) [1,2,3,0,4,5,6]
 > x
[1,2,3]
 > y
[4,5,6]

Par contre il faut être sûr que le pattern est valide sinon:

*** Exception: <interactive>:5:5-43: Irrefutable pattern failed for
pattern [x, y]

-Sylvain


On 20/06/2017 09:37, Marc Chantreux wrote:
> salut a tous,
>
> je cherche a prendre le resultat d'un splitWhen pour affecter
> directement deux variables. naivement (venant de perl), j'aurais
> tendance à écrire:
>
> let votes, candidates = splitWhen (/= "0") $ lines getContents
>
> sauf que ca ne marche pas et google ne m'a pas été d'un grand secours
> (probablement parceque j'ai un pb de mot clef).
>
> si qq1 a une idée ...
>
> cordialement,

_______________________________________________
Haskell-fr mailing list
Haskell-fr@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-fr