我是Haskell中的新成员。我试图用递归写一个函数,给定两个列表(它们需要是相同类型的),交织它们的元素(将元素在第一个和第二个列表之间交替)。当其中一个列表中没有更多元素时,它会停止并且结果就是达到的列表。我输出的如何从两个列表中创建列表以及来自这些列表的元素
interChange :: [a] -> [b] ->[(a,b)]
interChange _ [] = []
interChange [] _ = []
interChange (x:xs) (y:ys) = (x,y) : interChange xs ys
例如:需要的输出
interChange [1,2,3] [4,5,6]
[(1,4),(2,5),(3,6)]
例子是:
interChange [1,2,3] [4,5,6]
[1,4,2,5,3,6]
感谢您的帮助
非常感谢你的回放,你的代码非常好。但是,它不能满足最后的条件。当其中一个列表中没有其他元素时,它停止。你的代码给出如下输出:[1,2,3,4] [6,7,8] = [1,6,2,7,3 ,8,4],但它应该是[1,6,2,7,3,8] –
我相信你可以弄清楚如何修改代码以适应练习。 –