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

Haskell如何将两个元组的元素相加得到第三个元组

你的代码是不正确的,存在以下几处问题:

  • 函数名不符合Haskell语法规则:Haskell中函数名必须以小写字母开头,你写的Add首字母大写会被编译器识别为类型/数据构造器,直接抛出编译错误,需要改为小写的add。
  • 返回值类型不匹配:你使用了列表推导式,最终返回的是包裹了元组的列表类型[(Int, Int)],和你声明的函数签名返回值(Int, Int)(单个元组)不符,类型校验无法通过。
  • 列表推导式语法错误:列表推导式中取值匹配需要用左箭头<-,不能直接写等号=赋值;另外你代码末尾的y = y1+y2n多打了字符n,属于笔误。

你要实现的功能直接用参数模式匹配就能很简单地完成,正确实现如下:

add :: (Int,Int) -> (Int,Int) -> (Int,Int)
add (x1, y1) (x2, y2) = (x1 + x2, y1 + y2)

直接在参数位置将两个传入的元组拆解为对应分量,相加后组合成新元组返回即可,不需要用到列表推导。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:06:05