【问题标题】:Haskell: How to convert a list to a list where each element is a tuple of its location in the list and the original data? [duplicate]Haskell:如何将列表转换为列表,其中每个元素都是其在列表中的位置和原始数据的元组? [复制]
【发布时间】:2015-09-30 13:27:13
【问题描述】:

我需要将一个列表转换为一个列表,其中每个元素都是其在列表中的位置和原始数据的元组。例如

[a,b,c,d] -> [(1,a),(2,b),(3,c),(4,d)]

【问题讨论】:

  • 到目前为止你尝试过什么?什么没用?提示:查看 Data.List on Hackage 中的函数。
  • 如果不能使用Data.List,那就考虑递归吧。
  • 为什么以1开头?为什么不0?还是42?想一想,我正试图用这个问题引导你找到解决方案!
  • 我认为这个问题完全不同,不能重复。另一个问题特别希望实现自己的功能,而这个问题很容易用 Haskell 的默认功能回答。

标签: haskell


【解决方案1】:

我能想到的最简单的方法是使用zip 函数。它接受两个列表作为参数并返回一个元组列表。将其与[1..] 的范围配对,您就拥有了您想要的:

zip [1..] [a,b,c,d]

会回来

[(1,a),(2,b),(3,c),(4,d)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-17
    • 2023-04-11
    • 2023-03-05
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多