【问题标题】:standard ml quicksort标准毫升快速排序
【发布时间】:2011-11-03 13:32:23
【问题描述】:

我正在尝试用 ml 解决一个问题,但我有点卡住了。原谅我这是微不足道的代码,但回答它会解决我的大部分问题。

代码:

val sorted = ([3, 2, 1], [5, 8, 4]);
fun loop ([]) = []
  | loop (x::xs) = [3] @ [4];
loop sorted;

错误:

Error-Can't unify 'a list with int list * int list (Incompatible types) Found near loop (sorted)
Static errors (pass2)

【问题讨论】:

  • 如果您发现您现在理解了您的问题的答案,并且它不完全包含在 newacct 的答案中,您可以在自己的答案中提供您的解释。不要编辑他的。
  • 我对此很好,但出于好奇。为什么不呢?
  • 因为编辑只是为了让其他人更正格式或拼写错误。你在为一个已经被读者根据初始内容投票过的问题添加了他可能没有打算的意义。另一方面,为自己的问题写一个答案是完全可以接受的。

标签: sml ml


【解决方案1】:

sorted 是两个列表的元组。 loop 接受一个列表参数

【讨论】:

  • 那么我该如何改变它以接受一个元组,对不起我的新手类型问题。我只是还不能识别 SML 中的数据类型。
  • 基本上,循环的参数应该看起来像两个东西的元组。我真的不知道你想要什么,但可能类似于loop (a,b)loop ([],[])loop (x::xs,x::xs)。你明白了。