3

私は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.
4

1 に答える 1

3

多分あなたは意味します

prerequisites(A, []) :- not(prereq(A, _)).
prerequisites(A, [C|B]) :- prereq(A, C), prerequisites(C, B).

これが機能するためには、データにサイクルがないことを確認する必要があります...

于 2012-05-08T17:12:19.063 に答える