Recursion 如何在Prolog中使用求值

Recursion 如何在Prolog中使用求值,recursion,prolog,Recursion,Prolog,我对Prolog非常陌生,我似乎无法集中精力。我试着写一个谓词,给定关于大学先决条件的预定义事实,它将能够在列表中列出所有的prereq 到目前为止我有 list_prereqs(Course, List) :- prereqs(Course, List), list_prereqs(List, A). 但这不起作用。如何在递归调用中使用从prereqs获得的答案?还是我在这方面完全错了?那么findall/3呢?像这样, list_prereqs(Prereqs) :- f

我对Prolog非常陌生,我似乎无法集中精力。我试着写一个谓词,给定关于大学先决条件的预定义事实,它将能够在列表中列出所有的prereq

到目前为止我有

list_prereqs(Course, List) :-
   prereqs(Course, List),
   list_prereqs(List, A).

但这不起作用。如何在递归调用中使用从prereqs获得的答案?还是我在这方面完全错了?

那么
findall/3
呢?像这样,

list_prereqs(Prereqs) :-
   findall(prereqs(Course, List), prereqs(Course, List), Prereqs).
上面的
prereq
统一到所有prereq的列表中