我正在尝试学习Prolog的基础知识。我遇到了一个看似简单的问题,即无法在规则中存储列表并检索它以便在其他子句中使用。例如:
% These are the contents of the pl file I want to consult
% Numbers I want to process
inputList([3,2,1,0]).
% Prints out the contents of a list
printList([First | Tail]) :-
write(First),nl,
printList(Tail).
我想要做的是在Prolog中调用以下内容:
?- inputList(X).
?- printList(X).
目标是避免不断地将长列表输入Prolog解释器,而是将它们存储在.pl文件中。但是,输入上述命令会导致列表未根据给定子句进行正确检查。如何实现这一点,最好使用上面的结构来存储列表{listContents([a,b,c,d])。}?
答案 0 :(得分:0)
我认为你需要在Prolog中修改你的电话
?- inputList(X), printList(X).