-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?