Haskell中的通配符匹配模式

时间:2015-03-04 04:03:51

标签: haskell pattern-matching

当其他所有案例都失败时,OCaml会提供通配符匹配模式:

let imply v = match v with 
         (true,false) -> false
       |   _          -> true;;

Haskell中的等价性是什么?

1 个答案:

答案 0 :(得分:4)

更好地分离函数定义,如此

imply :: (Bool, Bool) -> Bool
imply (True, False) = False
imply _ = True

现在,只要模式(True, False)传递给imply,它就会返回False,在所有其他情况下,它将返回True

另外,你实际做的非常好,如果你在交互式shell中定义它,最好注意缩进错误。

Prelude> :{
Prelude| let imply v = case v of
Prelude|              (True, False) -> False
Prelude|              _ -> True
Prelude| :}
Prelude> imply (False, True)
True
Prelude> imply (True, False)
False
Prelude> imply (True, True)
True
Prelude> imply (False, False)
True
相关问题