OCaml:将整数插入到整数的排序列表中

时间:2014-09-16 22:50:42

标签: list insert functional-programming ocaml

在OCaml中编写函数insert : int -> list -> list的有效方法是什么,它将int插入到int的排序列表中并返回新列表?

这是我到目前为止附加到列表末尾的内容:

let insert x list =
 match list with
  [] -> [x]
  | list :: t -> list :: (insert t x)

1 个答案:

答案 0 :(得分:2)

由于我要求代码,我想我应该给你一些反馈: - )

您的代码大致采用了正确的形式来解决问题。我看到的最大问题是:

  • 您无法将新号码x与列表中的任何值进行比较。因此,您无法确定您的返回列表是否已排序。

  • 您对insert的递归调用的参数顺序错误。

一个较小的问题:

  • 您需要说let rec insert ...来定义递归函数。

你可能想要考虑3个案例,而不是你在这里的2个案例:

  1. 列表为空
  2. 新值小于或等于列表的开头
  3. 新值大于列表的开头
  4. 我希望这会有所帮助。