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

需求:实现Haskell函数将Int列表与嵌套字符串列表配对

实现处理字符串列表的Haskell addNumbers函数

你需要的函数可以通过map函数复用你已有的zip逻辑来实现,核心思路是对输入的每个字符串列表,都执行你原本的配对操作:

addNumbers :: [Int] -> [[String]] -> [[(Int, String)]]
addNumbers numbers stringLists = map (zip numbers) stringLists

代码解释

  • map (zip numbers) stringLists会遍历stringLists中的每一个[String]元素,对每个元素执行zip numbers操作——也就是把同一个numbers列表和当前的字符串列表按位置配对,生成对应的[(Int, String)]列表。
  • 所有配对结果最终会被组合成[[(Int, String)]]类型,完全符合你的类型签名要求。

验证示例

调用addNumbers [1, 2] [["One", "Two"], ["Three", "Four"]]时:

  1. 第一个子列表["One", "Two"]与[1,2]配对,得到[(1, "One"), (2, "Two")]
  2. 第二个子列表["Three", "Four"]与[1,2]配对,得到[(1, "Three"), (2, "Four")]
  3. 最终输出就是[[(1, "One"), (2, "Two")], [(1, "Three"), (2, "Four")]],和预期一致。

另一种实现方式(列表推导式)

你也可以用列表推导式达到同样的效果,写法更直观:

addNumbers numbers stringLists = [zip numbers sl | sl <- stringLists]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:25:22