Пролог: Мне нужно просмотреть все «элементы» в моей базе данных «Факты», но просто возьмите первый и закончите

#prolog

Вопрос:

Как говорится в названии, когда вы сделаете первое и используете его, вам следует продолжить со следующим, пока вы не напечатаете их все, но поскольку это означает, что это правда, первое не учитывает остальные.

Нужно взять «le», «lc», «ru» и «rv».

Факты:

 invar( xx, 0,0, 255,255 ).  invar( pphi, -180,0, 180,255 ).   f_p( le, xx, [ 0,255, 30,255, 96,0, 255,0 ] ).  f_p( lc, xx, [ 0,0, 76,0, 102,255, 127,0, 255,0 ] ).  f_p( ru, pphi, [ -180,0, -97,0, -63,255, -28,0, 180,0 ] ).  f_p( rv, pphi, [ -180,0, -47,0, -23,255, 0,0, 180,0 ] ).  

Код, использующий базу фактов:

 impresionPruebaGeneral(FD):-  writeln(FD,'pruebaGeneral(X):-'),  invar(Invar,_,_,_,_),  f_p(F,_,_),  write(FD,'prueba'),write(FD,F),writeln(FD,'(X),'),!.  

Впечатление, которое это производит:

 pruebaGeneral(X):-  pruebale(X),  

Желаемый отпечаток:

 pruebaGeneral(X):-  pruebale(X),  pruebalc(X),  pruebaru(X),  pruebarv(X),  

Не имеет значения, что в нем нет точки «.» в конце концов, это позаботится о другом предикате после

Комментарии:

1. Избавьтесь от пореза, что он делает? Используйте цикл forall/2 для перебора всех решений и печати в качестве побочного эффекта.

2. Какую реализацию пролога вы используете?

3. @User9213 Но какое условие я должен поставить? поскольку база фактов может измениться, я не могу сказать в качестве условия, что «rv» является последним

4. @TA_intern Я использую версию пролога: SWI-версия пролога (потоковая, 64 бита, версия 8.2.4). Я думаю, основной пролог, я использую его в течение месяца. Мне просто нужно исправить это, с чем я консультируюсь по ТП. Но я не могу понять, как это сделать.

5. Что такое ТП? Как вы консультируетесь по этому поводу?