2017-05-26 114 views
1

給定一個列表(A)我希望能夠創建一個新的列表(B),其中只包含A的元素是最小的還是最大的他們的下一個和前一個元素我的問題是我不知道如何對每個元素與前一個元素進行比較。 (這個問題可能是愚蠢的,但我是新來的序言和任何幫助,將不勝感激。)如何比較一個列表的元素3在序言中

回答

2

您可以用類似的東西開始:

compareElem([]). 
compareElem([H,H1,H2|B]):-compareElem(B), 
          compare(?Order, H1,H2), 
          compare(?Order, H1, H). 

其中秩序是比較的順序(如'<'或'>')。見compare/3

一些疑問:

?- compareElem([1,2,3,4,5,6]). 
true. 

?- compareElem([1,2,3,4,5,3]). 
false. 
當然要應用此例子中,你必須確保列表中有3N元素

,這僅僅是一個基本的例子。與此比較一起,您可以生成其他列表