0

我想将一个 int 插入到排序列表中的正确位置。例如,如果我插入 2,它将插入第二个位置。

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

任何人都可以指出什么是错的。谢谢

4

1 回答 1

4

就像 Daniel Fischer 说的,你只是有几个错别字:

  • xsy大概应该是x < y

  • 您在y insert x ys;中缺少运算符 您需要什么运算符将值添加到列表中?(提示:在模式匹配列表时使用它。)

  • 你错过了一个]之后[Int

  • 你的缩进是错误的;then应至少与 对齐if,并且else应在新行上,与 对齐then。如果您使用制表符缩进,则应将编辑器设置为使用空格缩进(或者,如果必须,将其设置为将制表符显示为 8 个空格,这是 Haskell 所期望的)。

除此之外,你很高兴。

于 2012-04-21T00:13:42.640 回答