Пролог Возвращает True, если нет необработанных переменных - PullRequest
3 голосов
/ 22 октября 2011

Мне нужна помощь в написании предикатного основания (Term), которое возвращает true, если в Term нет необоснованных переменных.

Я знаю, что мне нужно использовать встроенные предикаты functor, arg и '= ..', но я думаю, что мне нужна помощь только для начала ...

Моя идея заключается в том, что мне нужно перейти к термину (термин может быть списком из нескольких переменных). Проверьте голову, затем рекурсивно посмотрите на остальную часть списка и проверьте, не является ли остальная часть списка необоснованной.

Но моя проблема в том ... Как проверить, не является ли она необоснованной?

1 Ответ

1 голос
/ 22 октября 2011

Вы можете использовать предикат var/1, чтобы проверить, является ли термин неустановленной переменной.

?- var(X).
true.

?- var(x).
false.

?- var((X,Y)).
false.

?- var(t(Y,Z)).
false.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...