0

リストが PolyML でソートされているかどうかを確認しようとしていました。リストは組み込みタイプではありませんが、私が次のように定義しました:

datatype list = empty | cons of int*list; 

昇順と降順の両方をチェックする方法がわからないので、今のところ、昇順に限定しています (より一般的な解決策のヒントは大歓迎です!)。

したがって、私のアプローチは次のとおりです。

local
    fun sortedIncreasing (empty) = 1000
    |   sortedIncreasing (cons(v,l)) = if(v < sortedIncreasing(l)) then v else Int.minInt
in
    fun isSortedInc (empty) = true
    |   isSortedInc (cons(v,l)) = if (sortedIncreasing(cons(v,l)) = Int.minInt) then false else true
end;   

最初のものInt.minIntはタイプではないIntので、タイプの不一致があります。どうすればそれを解決できますか?
第二に、このアプローチは非常に素朴ではないかと思います。どうすれば問題をより良い方法で解決できますか?

お時間をいただきありがとうございます。良い一日を!

4

1 に答える 1