【发布时间】:2017-07-07 04:01:47
【问题描述】:
我正在为 SML 中的插入排序编写一些代码。在这里。
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);
无论出于何种原因,我不断提出这个错误
- val compare = fn : real * real * (real * real -> 'a) -> 'a
val isEqual = fn : real * real -> bool
stdIn:4.6-8.42 Error: match redundant
(x,L,F) => ...
--> (x,y :: ys,F) => ...
我明白它在说什么,我在某处有一条重复的线,但我不确定问题可能出在哪里。
【问题讨论】:
标签: sml smlnj redundancy