我如何使结果成为布尔值列表

我有这个:

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]


以上是我如何使结果成为布尔值列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>