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

如何使用列表推导式编写Haskell函数删除列表中所有最大元素

正确实现代码

ted :: Ord a => [a] -> [a]
ted [] = []
ted xs = [x | x <- xs, x < maximum xs]

逻辑说明

  • 首先匹配空列表输入,直接返回空列表,避免调用maximum处理空列表抛出异常
  • 非空列表的列表推导式逻辑:遍历列表所有元素,仅保留小于列表最大值的元素,自动过滤掉所有等于最大值的实例,符合移除所有最大元素出现的需求

现有代码问题

  1. 你当前编写的过滤偶数逻辑和需求完全无关,Haskell中取余运算符不是%,取余操作需要用mod函数
  2. 你不需要额外导入Data.List和Data.Function模块,上述实现仅依赖Prelude内置函数即可完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:01