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

Haskell实现二元元组列表逐对求积返回一维乘积数组方法

Haskell实现二元元组列表逐对求积

针对输入二元数值元组列表、逐对计算乘积返回一维结果列表的需求,直接用列表映射操作就能实现,写法非常简洁:

基础实现

最易读的常规写法是用高阶函数map遍历列表,对每个元组做乘积计算:

pairProduct :: Num a => [(a, a)] -> [a]
pairProduct tupleList = map (\(x, y) -> x * y) tupleList
  • 类型约束Num a表示函数兼容所有数值类型(Int、Float、Double等都可正常处理)
  • 传入测试用例[(3,4), (6,5)]调用pairProduct,会直接返回预期结果[12,30]

更精简的写法

利用uncurry函数可以把柯里化的乘法运算符(*)转成直接接收二元元组的函数,能写出更简洁的点自由风格实现:

pairProduct :: Num a => [(a, a)] -> [a]
pairProduct = map (uncurry (*))

调用示例

main :: IO ()
main = print $ pairProduct [(3,4), (6,5)]
-- 运行输出: [12,30]

如果只是在GHCi交互环境临时使用,甚至不需要单独定义函数,直接输入map (uncurry (*)) [(3,4), (6,5)]就能得到计算结果。


内容的提问来源于stack exchange,提问作者Deniz Gölbaş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:21:56