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

如何在map函数中结合Either使用lambda?代码语法错误排查

你的代码的两处错误及修正方案

错误分析

  • 语法错误:括号不匹配+参数结构错误
    你写的代码中,lambda表达式(\Left x -> x + 1)缺少对应的右括号,同时错误地将目标列表[1,2]直接嵌套进lambda的括号内。map函数的正确调用形式是map 处理函数 目标列表,函数与列表是两个独立参数。

  • 逻辑错误:误用Left构造子
    你的列表元素是普通整数,并非Either类型的值,这里完全不需要使用Left——它是Either a b类型的构造子,用于表示“左值”分支,和当前处理普通整数列表的需求无关,就算修复语法错误,也会触发类型不匹配的报错。

修正后的代码

如果只是要给列表中每个元素加1,正确写法有两种:

完整lambda写法

map (\x -> x + 1) [1, 2]

简洁运算符写法

map (+1) [1, 2]

以上两种写法都会返回你预期的结果:[2, 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:12:46