Я использовал следующий цикл, управляемый ошибкой, чтобы перечислить все без использования точки с запятой.
happiness(fred,5).
happiness(john,3).
happiness(grace,2).
someGoal(X) :-
happiness(X,Y), write(Y), tab(4), fail.
В режиме запроса я получаю это, как и ожидалось
?- someGoal(_).
5 3 2
Как я могу вставить эти числа в список, а не выводить их на экран? Я не мог справиться с этим в someGoal
, так как возврат назад кажется неявным.