Использование предиката not как средства управления

Предикат not использовался ранее, добавим несколько замечаний.

Умея теперь использовать предикаты fail и cut

можно написать:

not(P):-

P,

!,

fail;

true.

Иначе это можно записать так:

not(P):-P,!, fail.

not(P).

Здесь требуется именно такой порядок правил. Процедуры, в которых порядок правил может изменить значение программы, следует рассматривать как единый объект, а не как набор отдельных предложений. Отношение not здесь отличается от строгого логического отрицания. Оно трактуется как отсутствие. В дереве поиска должны отсутствовать успешные вершины, но не должно существовать бесконечных ветвей.

Предполагается, что not –встроенная процедура.

Информация о фактах, которые не являются истинными и об отношениях, которые не соблюдаются, называется отрицательной информацией. В явной форме такая информация в программе не хранится. Просто считается, что вся информация, отсутствующая в программе, ложна.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: