You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell技术问题:从列表列表中筛选含若干1的子列表

解决Haskell中子列表的筛选问题

我懂你现在的需求:从digitosAgrupados n生成的、由0和1组成的子列表集合里,提取出至少包含一个1的子列表对吧?

你之前用的filter (all odd) xss之所以没达到预期,是因为all odd会要求子列表里的每一个元素都是奇数(也就是全是1),这和你要的“包含若干1”(只要有一个就行)的需求完全不符。

正确的实现方式

你应该用any函数替代all,因为any的作用是检查子列表中是否存在至少一个满足条件的元素。针对你的场景,有两种等价的写法:

  • 更直观的写法(明确检查是否包含1):
    filter (any (==1)) xss
    
  • 利用1是奇数、0是偶数的特性简化:
    filter (any odd) xss
    

举个例子对比效果

假设digitosAgrupados n返回的列表是:

[[0,0], [1,0], [1,1], [0]]
  • 用你原来的filter (all odd),得到的结果是[[1,1]](只有全是1的子列表被保留)
  • 用filter (any (==1)),得到的结果是[[1,0], [1,1]](所有包含至少一个1的子列表都被保留),这正是你需要的效果。

内容的提问来源于stack exchange,提问作者mathandtic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:38:44