我如何使结果成为布尔值列表
我有这个:
getMask (/= 3) [1, 2, 3, 4, 5]
结果必须是这样的:
[True, True, False, True, True]
我试过这样的事情
getMask p xs = [x | (x,m) <- enumerate xs, if p x then True else False]
但我只得到数字。我需要布尔值列表
回答
您可以使用map :: (a -> b) -> [a] -> [b]:
> map (/= 3) [1, 2, 3, 4, 5]
[True,True,False,True,True]
或一个简单的列表理解:
getMask p xs = [p x | x <- xs]