質問
Haskellで以下を行う有効な方法はありますか:
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
3..99 -> doDefault
97行の「dodefault」を持っている以外に?
解決
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
_ -> doDefault
本当に範囲が必要な場合は、
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
x | 3 <= x && x < 100 -> doDefault
_ -> reallyDoDefault
他のヒント
ガードを使って! ;)
Foo n
| n == 0 = doThis
| n == 1 = doThat
| n == 2 = doAnother
| (n >= 3 ) && (n <= 99) = doDefault
また
| n `elem` [3..99] = doDefault
デフォルトのケースを_パターンにすることができると思います。
case n of
0 -> doThis
1 -> doThat
2 -> doAnother
_ -> doDefault
それがあなたが探しているものであるかどうかはわかりません。なぜなら、それはそこの範囲の上限をチェックしないからです...代わりにガードを使いたいかもしれません。
所属していません StackOverflow