2016-11-17 74 views
0

在Prolog,我諮詢了list.pl文件用列表使用規則與列表

list([5,2,1,6,3]). 

我可以查詢清單(X)正確地與輸出:

1 ?- list(X). 
X = [5, 2, 1, 6, 3] 

但我試圖將列表的查詢與規則相結合。這可能嗎?我檢查規則的邏輯,它的正常工作,如果我的規則查詢內聲明的列表,如:

reverse([5,2,1,6,3], What). 

我真正想要做的是從該文件調用指定列表逆轉儘可能清理它,所以我不必爲所有查詢不斷輸入列表。

預先感謝您

+2

'列表(5,2,1,6,3)'?你的意思是,'list([5,2,1,6,3])'對嗎?對於你的問題:'list(X),reverse(X,What).' – lurker

回答

0

你在你的PL文件中添加下面的規則,然後你可以調用反向謂詞

reverse([],[]). 
reverse([H|T], What):- 
    reverse(T,ReverseList), 
    append(ReverseList,[H], What).