haskell - 我如何使结果成为布尔值列表
问题描述
我有这个:
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]
推荐阅读
- node.js - 如何在 JOI 验证中自定义消息
- git - Git如何撤消最近的合并提交然后更改为变基
- php - 如何对所有元素值求和并将该数字附加到数组的末尾?
- angular-material - 如何从角度材料转换日期格式
- java - 移动迭代器语句使代码编译
- javascript - 如何在这个 Chrome 扩展代码中有多个指令?
- prolog - 从列表 Prolog 中挑选元素
- swift - 为什么 serviceSubscriberCellularProviders 返回 nil?(在 iOS 12 中)
- python-3.x - TypeError:需要一个整数(得到类型 str)?
- c# - 获取每个 URL 目录