我必须做的 elementIsInList :: Eq a => a -> [a] -> Bool
功能,应表现相同的方式 elem
功能会表现,但我不能使用递归并的课程, elem
功能本身。 我以为有关实现它的使用 filter
功能,但是我不能找出如何 filter
工程。 我在正确的轨道?
elementIsInList x xs = filter(x==xs) xs
我必须做的 elementIsInList :: Eq a => a -> [a] -> Bool
功能,应表现相同的方式 elem
功能会表现,但我不能使用递归并的课程, elem
功能本身。 我以为有关实现它的使用 filter
功能,但是我不能找出如何 filter
工程。 我在正确的轨道?
elementIsInList x xs = filter(x==xs) xs
x == xs
使得没有太大的意义, x
是的元素,而 xs
是整个清单的元素。 你可以使用一个氧表达:
filter (\x -> x == y) xs
或缀操作员部分:
filter (x ==) xs
此外,你需要检查列表是空的。 null :: Foldable f => f a -> Bool
将返回 True
如果列表是空的, False
如果它不是。 然后你会需要否定的结果 not :: Bool -> Bool
.