将规则与列表一起使用

时间:2016-11-17 20:51:34

标签: list prolog

在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).

我真正想做的是调用文件中的指定列表进行反向清理,如果可能的话,我不必为所有查询不断输入列表。< / p>

提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以在pl文件中添加以下规则,然后可以调用反向谓词

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