haskell - 通过过滤每两个数字的序列,使用推导在 Haskell 中生成一个列表
问题描述
我想使用推导在haskell中执行以下列表:
[1,2,5,6,9,10,13,14,17,18]
我试过这个:
[x | x <- [1..18], y <- [1..4], y < 3]
但我明白了:
[1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18]
我不知道是否可以使用一些 Enum 函数来获取列表,但我想知道是否有某种方法可以通过列表推导来做到这一点。我可以看到我为每个 y 值得到一个 x,但我只想要过滤器的 y 值,而不是第一代列表。
解决方案
你可能想要这个:
Prelude> [x+y | x <- [1, 5..18], y <- [0..1]]
[1,2,5,6,9,10,13,14,17,18]
推荐阅读
- c# - html 未在 div 中显示为 html
- java - 将包含日期字段的对象作为 JSON 发送到 API,时区似乎已更改,时间“更改”
- amazon-web-services - AWS CodeBuild Webhook - CloudFormation
- java - 通过键和值比较两个映射并将差异存储到结果映射中
- c++ - C++ 中的 ONVIF OnvifClientDevice 执行
- javascript - 如何将此代码VB转换为javascript
- javascript - Vue.js - 从方法计算的值不会显示在循环列表中
- python - 执行 psycopg2 的 copy_from 后如何释放 Postgres 表的锁定
- android - 解压或解压 XZ Frida 服务器?
- javascript - 参数化 cypress 测试用例