Y a-t-il un moyen valide de faire ce qui suit dans HASKELLL:
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
3..99 -> doDefault
3 Réponses :
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
x | 3 <= x && x < 100 -> doDefault
_ -> reallyDoDefault
Me fait souhaiter le prélude défini "Inrange lo hi v = lo <= v && v
Je pense que vous pouvez avoir le cas par défaut soit le modèle _, qui correspond à quoi que ce soit.
case n of 0 -> doThis 1 -> doThat 2 -> doAnother _ -> doDefault
Utiliser des gardes! ;)
ou p>
Personnellement, j'aime le N `elem` [3..99] code> plus que celui utilisant les inégalités.
La version elem code> est-elle significativement plus lente? Ou est-ce optimisé?
@ b0fh: yep, elem est juste tout (==) code> qui est O (n), afaik il est impossible de vérifier l'appartenance à une complexité inférieure à O (n) à moins que la collection que vous vérifie soit triée. en quelque sorte.