haskell – 使用一个单位值的案例表达式只是为了使用守卫是好的风格?

测试几个布尔表达式的推荐方法是什么?

我一直在用这个:

case () of () | test1 -> value1
              | test2 -> value2
              | otherwise -> value3

这种风格好吗?有没有更漂亮的方式?

最佳答案
这个模式可以用一个函数来模拟 – 例如,从Control.Conditional的cond:

signum x = cond [(x > 0     ,  1)
                ,(x < 0     , -1)
                ,(otherwise ,  0)]

虽然我不能称之为特别美丽。

在下一个GHC我们will be able to use multi-way if,hooray! (刚刚发现)

f t x = if | l <- length t, l > 2, l < 5 -> "length is 3 or 4" 
           | Just y <- lookup x t        -> y 
           | False                       -> "impossible" 
           | null t                      -> "empty" 

转载注明原文:haskell – 使用一个单位值的案例表达式只是为了使用守卫是好的风格? - 代码日志