我是Haskell的新手,我有一个问题。我该如何编写一个函数,该函数采用一个偶数长度的值列表并返回一个元组列表?列表中的每个元素都应该与另一个元素完全配对。
例如:[1、2、3、4]将给出[(1,2 ,,(3,4)]或[(1,3),(2,4)]或[(1,4 ),(2,3)]
答案 0 :(得分:1)
StackOverflow并不是人们只为您编写代码的服务。您必须展示自己为解决该任务而做出的努力或付出的努力,并向我们展示您以这种方式遇到的问题。
如果您只是要求别人解决您的任务,他们会生您的气(此问题的分数为-3准确说明了这一点),您的问题将被关闭。因此,在此处询问任务时,请确保您表现出足够的精力来解决任务。
顺便说一句,我给你一个提示:
pairUp :: [a] -> [(a, a)]
pairUp [] = [] -- obvious case
pairUp [x] = error "Odd-length list!"
pairUp (x:y:xs) = ...
您必须完成最后一个案例。在这里,您有前两个元素x
和y
,还有所有其他元素的尾部列表。您必须将成对的前两个元素组合在一起,并以相同的方式处理尾部。您需要了解recursion才能完成任务。