题
是否有一种有效的方法可以在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