Пролог множество разностей отношений - PullRequest
0 голосов
/ 18 октября 2011

Определите отношение вычитания в Prolog:

difference( Set 1, Set 2, SetDifference)

, где все три набора представлены в виде списков.Например:

difference( [a,b,c,d], [b,d,e,f], [a,c])

Спасибо!

1 Ответ

5 голосов
/ 18 октября 2011

Такая функция обычно включена в системы Prolog.Это заставляет меня думать, что это произвольное домашнее задание, и мне интересно, каковы правила.Предположительно, вы не можете вызвать set_difference.Вы можете использовать member / 2?Списки отсортированы или нет?Должна ли функция работать во всех режимах (+++, ++ -, - ++, + - +) и возвращаться назад для создания альтернативных ответов?

Если делать такую ​​функцию с нуля, лучшим подходом являетсядумать по-английски и мыслить индуктивно.
Как вы отвечаете на простейший случай: разница между двумя пустыми списками - это пустой список.разность ([], [], []).Что, если вы добавите в один из списков?К другому?Каждый ответ получает предложение.

Кроме того, ответ зависит от правил назначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...