Haskell 中的通配符匹配模式
Wild card matching pattern in Haskell
OCaml 在所有其他情况都失败时提供通配符匹配模式:
let imply v = match v with
(true,false) -> false
| _ -> true;;
Haskell 中的等价物是什么?
最好分开函数定义,像这样
imply :: (Bool, Bool) -> Bool
imply (True, False) = False
imply _ = True
现在,每当模式 (True, False)
传递给 imply
时,它将 return False
,在所有其他情况下它将 return 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
OCaml 在所有其他情况都失败时提供通配符匹配模式:
let imply v = match v with
(true,false) -> false
| _ -> true;;
Haskell 中的等价物是什么?
最好分开函数定义,像这样
imply :: (Bool, Bool) -> Bool
imply (True, False) = False
imply _ = True
现在,每当模式 (True, False)
传递给 imply
时,它将 return False
,在所有其他情况下它将 return 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