Вот цитата из книги Блэкберна и Боса «Представление и вывод для естественного языка».
:- op(900,yfx,>). % implication
:- op(850,yfx,v). % disjunction
:- op(800,yfx,&). % conjunction
:- op(750, fy,-). % negation
Как и ожидалось, отрицание имеет более высокий приоритет, чем союз.
Теперь просматриваем документы SWI Prolog.
\+
- отрицание как отказ имеет более низкий приоритет (900), чем /\
соединение (500).
Я правильно читаю?
Есть ли другой символ для отрицания в SWI Prolog? Я знаю, что есть not
, но он сохранен только для обратной совместимости.
Дополнение Имеет ли значение ~
в SWI Prolog?
current_op/3
. - person Paulo Moura   schedule 19.12.2018logic
Logtalk на странице github.com/LogtalkDotOrg/logtalk3/tree/. мастер/примеры/логика - person Paulo Moura   schedule 19.12.2018-
— это числовое отрицание, используемое в арифметических выражениях. Это не связано с логическим отрицанием как оператором отказа,\+
, который применяется к запросам. И~
не является оператором Пролога. Оператор `/` является побитовым И, а также числовым. - person lurker   schedule 19.12.2018&
иv
. Оператор /\, который вы видите, предназначен (я полагаю) для арифметических выражений; обычные операторы логической конъюнкции и дизъюнкции —,
и;
соответственно, что должно совпадать с отрицанием Пролога\+
. Для арифметики в \ есть отрицание с дополнением до единицы, но, что удивительно, нет логического/логического отрицания. - person Daniel Lyons   schedule 19.12.2018,
и;
все в порядке, они имеют более низкий приоритет по сравнению с\+
. 1000 и 1100 соответственно. - person user1700890   schedule 20.12.2018>
и-
. Это приведет к хаосу. Скорее делайте своих операторов. например.>
вместо>
и т. д. - person false   schedule 20.12.2018>
иv
. - person user1700890   schedule 20.12.2018