haskell - 列表中列表的长度并返回布尔值
问题描述
我对 Haskell 相当陌生,我试图在列表中查找列表的长度,如果它大于 3 则返回 true,反之亦然。例如:
[[Bool]] -> Bool
xs = length xs >= 3
如果外部列表等于或大于 3,则返回 true,但我想检查内部列表是否具有相同的参数。另外,我知道地图长度会生成第二个列表的长度列表。
[[T,F,T],[F,F,T],[F,F]] -- output : False
[[T,F,T],[F,F,T],[T,F,F]] -- output : True
这是我期望找到的。
我希望我的问题的解释很清楚,谢谢。
解决方案
all
使用该功能的可能解决方案:
check :: [[Bool]] -> Bool
check = all ((>=3) . length)
当每个元素都满足一个谓词时,该all
函数将返回;True
在这种情况下,谓词(>=3) . length
评估True
列表的长度何时大于或等于三。因此,如果all
内部列表的长度大于或等于三,则check
计算结果为True
。
使用您提供的代码并避免无点样式,也许这将有助于拼凑上述解决方案:
lengthGreaterEqualThree :: [Bool] -> Bool
lengthGreaterEqualThree xs = length xs >= 3
check' :: [[Bool]] -> Bool
check' listOfLists = all lengthGreaterEqualThree listOfLists
推荐阅读
- python - 将消息从 RabbitMQ 队列发送到 Websocket 连接,反之亦然
- node.js - 从自定义 lambda 自定义中间件返回错误
- themes - CKeditor 5 背景颜色变化
- reactjs - React Native Web/Expo:如何在 Pressable 上模拟焦点可见?
- php - Laravel/codeception 测试:如何存根 time()
- aws-lambda - 将 dynamodb 流事件源触发器配置为具有可配置的重试延迟
- spring-boot - Spring JPA 存储库方法来获取排序的不同和非空值
- r - 从不等向量长度的列表中创建 data.table
- php - WooCommerce 如何检查产品是否有货
- maven - 使用版本范围时,maven 无法解决依赖关系