Что означает \ + в Прологе? - PullRequest
20 голосов
/ 11 ноября 2009

Я видел здесь несколько ответов, которые его используют, и я не знаю, что это значит или как его использовать. Мне также сложно искать его через поисковик :)

Ответы [ 3 ]

26 голосов
/ 11 ноября 2009

Это оператор , не подлежащий доказыванию . Он успешен, если его аргумент не доказуем (и не может быть доказан).

7 голосов
/ 11 ноября 2009

Это связано с отрицанием. \+ Goal будет успешным, если Goal не может быть доказано.

0 голосов
/ 18 апреля 2018

Я запоминаю это через следующее логическое правило:

  • \+ = 'если unsure или false, предположим, false'

Это отличается от стандартной логической логики тем, что если ваша цель неопределенная, а не прямая истина или ложь, она принимает ложь, когда не может доказать истинность. Самый очевидный пример этого - неспособность увидеть, открыт ли поток или нет. Если вы не можете доказать, что она открыта, это то же самое, что закрыться для программы.

https://en.wikipedia.org/wiki/Negation_as_failure

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