data Type1 = My1 Int |Your1 Int | Your Char |My Char deriving (Show , Eq)
我有[Type1]
。
在我的计划中,我正在浏览[Type1]
。我想检查下一个元素是否为My1 Int
(例如My1 25
)。
我应如何编写一个在Bool
中返回此函数的函数?
我想到了
isMy1 (My1 _)= True
isMy1 _ = False
但这会返回模式匹配重叠错误。
答案 0 :(得分:1)
这个例子可能会有所帮助:
data Test = Int' Int
| Bool' Bool
| Other
deriving (Eq, Show)
checkType :: Test -> Bool
checkType (Int' _) = True
checkType (Bool' b) = b
checkType _ = False