我想将int插入到排序列表中的正确位置。例如,如果我插入2,它将插入第二个位置。
insert :: Int -> [Int] -> [Int
insert x [] = [x]
insert x (y:ys) = if xsy
then x:y:ys else y insert x ys
任何人都可以指出什么是错的。 谢谢
答案 0 :(得分:4)
xsy
大概应为x < y
。
y insert x ys
中有一个缺少的运算符;你需要将一个值添加到列表中的运算符是什么? (提示:在对列表进行模式匹配时使用它。)
您在]
之后错过了[Int
。
你的缩进是错的; then
应该至少与if
对齐,else
应该在新行上,与then
对齐。如果您使用制表符进行缩进,则应将编辑器设置为使用空格缩进(或者,如果必须,将其设置为将制表符显示为8个空格,这是Haskell期望的那样)。
除此之外,你很高兴。