首页 > 解决方案 > 我如何使结果成为布尔值列表

问题描述

我有这个:

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]

但我只得到数字。我需要布尔值列表

标签: haskell

解决方案


您可以使用map :: (a -> b) -> [a] -> [b]

> map (/= 3) [1, 2, 3, 4, 5]
[True,True,False,True,True]

或简单的列表理解:

getMask p xs = [p x | x <- xs]

推荐阅读