2012-04-20 152 views
0

我想將int插入到排序列表中的正確位置。例如,如果我插入2它將插入第二個位置。將int插入列表

insert :: Int -> [Int] -> [Int 
insert x [] = [x] 
insert x (y:ys) = if xsy 
       then x:y:ys else y insert x ys 

任何人都可以指出什麼是錯的。 感謝

+1

基本上,你完成了。它仍然是要修復一些錯別字。 – 2012-04-20 23:43:02

+0

@DanielFischer歡呼 – ErHunt 2012-04-21 00:27:57

+1

「任何人都可以指出什麼是錯的」 - 我相信編譯器可以告訴你一兩件事情有什麼不對。學習理解編譯器錯誤對於用任何語言進行編程都非常有用。 – 2012-04-21 16:16:02

回答

3

像丹尼爾·菲捨爾說,你剛纔有幾個錯字:

  • xsy應該大概是x < y

  • 您在y insert x ys中缺少運算符;你需要什麼操作員在列表上加上一個值? (提示:在與列表模式匹配時使用它。)

  • 您錯過了[Int後的]

  • 您的縮進是錯誤的; then應該至少與if對齊,並且else應在新行上,並與then對齊。如果使用製表符縮進,則應該將編輯器設置爲使用空格縮進(或者,如果必須,將其設置爲將製表符顯示爲8個空格,這正是Haskell所期望的)。

除此之外,你很好去。