you are almost there
isMember :: Eq a => a -> [a] -> Bool
isMember _ [] = False
isMember y (x:xs) =
if y == x then True else isMember y xs
What the compiler tells you is that you promised to accept any type of list member, but later on you use a function ==that is not available for all types (like functions).
Eq a =>, , , equals.
()
isMember y (x:xs) = (y == x) || isMember y xs
( @chi ).
, , .
- :
- - (
isMember _ [] = False) - (
isMember y (x:xs) = ...)
, fold - (foldl, foldr...). ,
isMember y xs = foldl False (\x b -> (x == y) || b) xs