haskell模式匹配 - 许多条件与一个表达式匹配

时间:2012-05-19 08:51:02

标签: haskell pattern-matching

我想在Haskell模式匹配中使用一个表达式匹配许多条件。

例如,

data Message = HELLO | HI | GOODBYE | BYE

greeting x = case x of
  HELLO or HI          -> "hello"
  GOODBYE or BYE   -> "bye"

但是我找不到怎么做。

抱歉我的英语不好。 谢谢。

1 个答案:

答案 0 :(得分:4)

尝试守卫。前,

data Message = HELLO | HI | GOODBYE | BYE deriving (Eq)

greeting x
    | x == HELLO   || x == HI   = "hello"
    | x == GOODBYE || x == BYE  = "bye"

请注意,您必须为您的数据类型派生Eq实例。查看Learn you a Haskell的相关部分。