sorted(L)
整数のリストがソートされているかどうかをテストする述語を[n1,n2,...,nk]
書きます[n1 < n2 <...< nk]
。
道に迷いました。どうすればこれを実装できますか?
sorted(L)
整数のリストがソートされているかどうかをテストする述語を[n1,n2,...,nk]
書きます[n1 < n2 <...< nk]
。
道に迷いました。どうすればこれを実装できますか?
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.