我在SML中为插入排序编写了一些代码。在这里。
counterfile
无论出于何种原因,我都会遇到这个错误
fun compare(x:real, y:real, F) = F(x, y);
fun isEqual(x:real, y:real) = ((x <= y) andalso (x >= y));
fun rinsert(x: real, L: real list, F) = [x]
|rinsert(x, (y::ys), F) =
if isEqual(x, y) then rinsert (x, ys, F)
else if compare(x, y, F) then x::y::ys
else y::(rinsert (x, ys, F));
fun rinsort(L : real list, F) = []
|rinsort(x::xs, F) = rinsert(x, (rinsort (xs, F), F);
我理解它的含义,我在某个地方有重复的行,但我不确定问题出在哪里。
答案 0 :(得分:3)
rinsert
的第一行有每个参数的普通变量,因此匹配所有内容。因此,永远不会达到第二种情况。与rinsort
相同。
要解决此问题,您需要将L
参数替换为空列表的模式[]
。