2016-11-17 72 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).