-2

我必须编写递归函数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.I是新知道如何添加元素,但我不知道如何在上升增加order.Please有人帮我

+1

问题,要求作业帮助必须包括工作总结,到目前为止,你已经做了解决问题,描述你解决问题的难度。 http://stackoverflow.com/help/on-topic – chi

+1

分解问题; a,列表中的最小值是多少? b,给定一个值,列表中的索引是什么? c,给定一个列表中的索引,如何创建除该索引处的项目之外的所有内容的另一个列表? –

+0

您正在编写的函数不是插入*排序*而是*插入*。你应该把它称为“插入”。 – dfeuer

回答

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?