【发布时间】:2019-09-08 22:38:49
【问题描述】:
我知道如何在 Haskell 中合并两个排序列表,但是,我不知道如何合并三个排序列表。我写了一些代码,接下来我该怎么做?
我真的是 Haskell 编程的新手,我看过“Learn You a Haskell for Great Good!”作为学习 Haskell 的开始。我尝试遵循两个排序列表合并的格式:
mergeS :: (Ord a) => [a] -> [a] -> [a] -> [a]
mergeS [] [] [] = []
mergeS (x:xs) [] [] = (x:xs)
mergeS [] (y:ys) [] = (y:ys)
mergeS [] [] (z:zs) = (z:zs)
mergeS (x:xs) (y:ys) (z:zs) -- I do not know how to write from here
正确的答案是这样的:
mergeS :: (Ord a) => [a] -> [a] -> [a] -> [a]
mergeTwoLists :: Ord a => [a] -> [a] -> [a]
...
mergeS x y z = mergeTwoLists x (mergeTwoLists y z)
【问题讨论】:
-
请包含合并两个排序列表的代码,以便作为起点。
-
为什么需要合并三个排序列表?
-
@WillNess,我认为这有点早,尤其是考虑到这是一个新人。
-
mergeThreeLists x y z = mergeTwoLists x (mergeTwoLists y z) -
@AJFarmar 刚刚给了你整个代码。我不确定如何更详细。
标签: list sorting haskell merge