我试图让这个函数返回True,但是目前它只是吐出错误
('A',_) `elem` [('A','B')]
Found hole: _ :: Char
• In the expression: _
In the first argument of ‘elem’, namely ‘('A', _)’
In the expression: ('A', _) `elem` [('A', 'B')]
• Relevant bindings include
it :: Bool (bound at <interactive>:31:1)
任何帮助表示赞赏
答案 0 :(得分:5)
模式匹配是可能的:
pat <- expr
构造中除上述地方外,您不能在表达式中使用模式。
你想要的是检查是否有一个元素的左边元素是&#39; A&#39;。你可以说
'A' `elem` (map fst [ ('A', 'B') ] )
或者您可以使用elemBy
中的Data.List
:
elemBy (\x y -> x == fst y) 'A' [ ('A', 'B') ]