我必须编写递归函数insertSort。给出一份清单 类型x和类型x的元素将元素插入到列表中 列表按升序排列。允许重复。输入 列表将被正确排序。
预期产出:
insertSort [] 3 -> [3]
insertSort "btt" ’u’ -> "bttu"
foldl insertSort [] [] -> []
foldl insertSort [] [3,1,5,5,3,0,1,8,4] ->
[0,1,1,3,3,4,5,5,8]
我是haskell的新手。我知道如何添加元素,但我不知道如何按升序添加。请有人帮助我
答案 0 :(得分:2)
由于这可能是作业,我只是给出提示。从签名
开始isort :: Ord a => [a] -> a -> [a]
基本案例是微不足道的
isort [] x = [x]
递归案例
isort (x:xs) y | y <= x = -- what should happen here since it's at right place
| otherwise = -- or here, when it's not?