在OCaml中编写函数insert : int -> list -> list
的有效方法是什么,它将int插入到int的排序列表中并返回新列表?
这是我到目前为止附加到列表末尾的内容:
let insert x list =
match list with
[] -> [x]
| list :: t -> list :: (insert t x)
答案 0 :(得分:2)
由于我要求代码,我想我应该给你一些反馈: - )
您的代码大致采用了正确的形式来解决问题。我看到的最大问题是:
您无法将新号码x与列表中的任何值进行比较。因此,您无法确定您的返回列表是否已排序。
您对insert
的递归调用的参数顺序错误。
一个较小的问题:
let rec insert ...
来定义递归函数。你可能想要考虑3个案例,而不是你在这里的2个案例:
我希望这会有所帮助。