0

sorted(L)整数のリストがソートされているかどうかをテストする述語を[n1,n2,...,nk]書きます[n1 < n2 <...< nk]

道に迷いました。どうすればこれを実装できますか?

4

1 に答える 1

2
sorted(L) :- hightolow(L) ; lowtohigh(L).

hightolow([H1,H2|T]) :- H1 >= H2, hightolow([H2|T]).
hightolow([_L]).

lowtohigh([H1,H2|T]) :- H1 =< H2, lowtohigh([H2|T]).
lowtohigh([_L]).

実際に:

6 ?- sorted([1,2,3,7,8]).
true 

7 ?- sorted([1,2,3,7,8,2]).
false.

8 ?- sorted([9,6,3,2]).
true .

9 ?- sorted([9,6,3,2,7]).
false.
于 2012-05-20T12:47:17.703 に答える