对于一个任务,我需要编写一些Haskell代码,其中有一个由无限的整数列表组成的有限列表,每个列表单调递增。如何在Haskell中合并有限数量的无限列表?
现在,我需要将这些合并到一个列表中,以整数排序。另外,有些整数可能出现在多个列表中:在输出列表中,每个整数只能在列表中出现一次。因此,如果输入是例如[[1,2,6,10,28,40,...] [3,4,10,28,100,...],[任意数量的列表]]那么输出应该是[1,2,3,4,6,10,28,40,100,...]
我有点卡在这里。我不知道如何有效地使用foldr
来合并列表。我想我应该比较每个列表的头部,并从那个列表中创建一个新列表。
排序无限列表通常不是很容易。如果我有输入'[[1,3,4,5,6,...],[1,3,5,7,...]],我开始排序他们得到'[1,3 ,4,5,6,7,...],我怎么知道2在这两个输入列表中没有出现? – bheklilr 2014-10-01 20:29:11
这是不可能的,除非你知道列表单调增加,我猜测是在作业中说明的。你能确认并告诉我们你曾尝试过什么吗?这里的人通常更有帮助,如果你不只是说“告诉我如何”。 – 2014-10-01 20:30:05
我怀疑样本数据中的每个输入列表已经排序,并且合并是所有必需的。 – AndrewC 2014-10-01 20:30:44