因此,我创建一个函数,如果a等于列表中任何对的fst元素,则该函数为true
elemMSet :: Eq a => a -> [(a,Int)] -> Bool
elemMset a [] = False
elemMSet a ((t,q):xs)| a==t = True
| otherwise = elemMSet a xs
我不承认为什么,当我尝试一些应该给出False的东西时,它显示了非详尽模式的错误:
elemMSet 'd' [('b',2), ('a',4), ('c',1)]
错误:
Tseis.hs:(4,1)-(5,48): Non-exhaustive patterns in function elemMSet
1 回答
您拼错了第2行的函数名称,因此
elemMSet
仅涵盖非空案例 . 将第2行的名称更改为elemMSet
(使用大写字母S),它将正常工作 .