2012-05-20 70 views
0

編寫謂詞sorted(L)它測試整數列表是否排序,[n1,n2,...,nk]其中[n1 < n2 <...< nk]編寫謂詞排序(L)

我迷路了。我怎麼能實現這個?

+0

其中n1是什麼?從高到低還是從低到高? – Junuxx

+1

我不明白爲什麼有人高調提出這個問題。它甚至不完整。 –

+1

排序(L): - 排序(L,L)。 xD –

回答

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. 
+0

根據稍後編輯問題中給出的信息,實際只需要低到高:) – Junuxx