#prolog
#prolog
Вопрос:
Я хочу написать предикат, который возвращает решение из базы фактов. Когда решения не существует, предикат должен возвращать «Решений не существует». Возврат решения, которое существует в factbase, является тривиальным. Как реализовать часть «Решения не существует». Я использую SWI-Prolog.
Ответ №1:
Если у вас есть предикат, скажем, fact/1
, который содержит все ваши факты, вы можете использовать оператор if-then-else следующим образом:
fact_or_no_solution(Sol) :-
(fact(X) ->
Sol = X
;
Sol = 'No solution exists'
).