我在学习rooPlog,并在列表中遇到一些麻烦。我想返回一个指定类的先决条件的类的列表。这是我到目前为止...与Prolog列表
prereq(262, 221).
prereq(271, 262).
prereq(331, 271).
prerequisites(A, B) :- not(prereq(A, C)).
prerequisites(A, [C|B]) :- prereq(A, C), prerequisites(C, B).
它的工作原理,但追加到最后的垃圾。
?- prerequisites(331, A).
A = [271, 262, 221|_G327] ;
false.
随时提防,因为这个“单变量”警告意味着什么是错的。如果你没有在特定的子句中使用某个变量,可以用'_'“先决条件(A,B)替换它,使其成为匿名: - not(prereq(A,C))。”会触发警告。 – Ihmahr