我正在学习rooPlog,但在使用列表时遇到了一些麻烦。我想返回一个类的列表,这些类是指定类的先决条件。这是我到目前为止所做的。
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.发布于 2012-05-09 01:12:19
也许你的意思是
prerequisites(A, []) :- not(prereq(A, _)).
prerequisites(A, [C|B]) :- prereq(A, C), prerequisites(C, B).您必须确保您的数据中没有周期,这样才能正常工作...
https://stackoverflow.com/questions/10502868
复制相似问题