如何从每个元素与另一个元素完全配对的列表中提取元组列表?

时间:2019-12-01 05:25:14

标签: haskell list-comprehension

我是Haskell的新手,我有一个问题。我该如何编写一个函数,该函数采用一个偶数长度的值列表并返回一个元组列表?列表中的每个元素都应该与另一个元素完全配对。

例如:[1、2、3、4]将给出[(1,2 ,,(3,4)]或[(1,3),(2,4)]或[(1,4 ),(2,3)]

1 个答案:

答案 0 :(得分:1)

StackOverflow并不是人们只为您编写代码的服务。您必须展示自己为解决该任务而做出的努力或付出的努力,并向我们展示您以这种方式遇到的问题。

如果您只是要求别人解决您的任务,他们会生您的气(此问题的分数为-3准确说明了这一点),您的问题将被关闭。因此,在此处询问任务时,请确保您表现出足够的精力来解决任务。

顺便说一句,我给你一个提示:

pairUp :: [a] -> [(a, a)]
pairUp [] = [] -- obvious case
pairUp [x] = error "Odd-length list!"
pairUp (x:y:xs) = ...

您必须完成最后一个案例。在这里,您有前两个元素xy,还有所有其他元素的尾部列表。您必须将成对的前两个元素组合在一起,并以相同的方式处理尾部。您需要了解recursion才能完成任务。