List 如何在Prolog中存储和访问变量中的列表?

List 如何在Prolog中存储和访问变量中的列表?,list,variables,prolog,List,Variables,Prolog,我正在尝试为一门课学习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

我正在尝试为一门课学习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])}?

我认为您需要修改Prolog中的调用以

?- inputList(X), printList(X).