次のコードに問題があります。
fun unsorted cmp ((x, y)::[]) = false
| unsorted cmp ((x, y)::xx::xs) =
if cmp(y, xx) = GREATER then true else unsorted cmp (xx::xs)
true
リストがソートされていない場合、またはそうでない場合に、この関数が返されるようにしたいだけですfalse
。これは、2 番目のコンポーネントによって比較されたペアのリストに対して機能するはずです。
プレーンリストの正しいコードは次のとおりです。
fun unsorted' cmp [] = false
| unsorted' cmp (x::[]) = false
| unsorted' cmp (x::xx::xs) =
if cmp(x, xx) = GREATER then true else unsorted' cmp (xx::xs)
しかし、ペアのリストで私の間違いはどこですか?