Встроенный предикат Пролога is/2
оценивает правую часть выражения как арифметическое выражение и объединяет результат с левой частью.
Кроме того, пролог не имеет логического значениятип.Встроенные типы Prolog:
- целое число
- float
- atom
- несвязанная переменная
- составной член
Вы можете выбрать логическое значение в виде атомов true
/ false
(полезно для удобства чтения), или вы можете представить логическое значение в виде целочисленных значений 1
/ 0
(полезно длявычисление).Способ, которым большинство процедурных языков, таких как C, оценивает арифметические значения как логические значения, является нарушением формальной логики WRT: ложность однозначна (0) и истинно многозначна (ненулевая), что означает то, что не ложно.В формальной логике истина однозначна, а ложь определяется как неправда.
Так что вы можете рассмотреть семантику вашего представления и построить некоторые предикаты для манипуляции вашими логическими значениями, возможно, добавив некоторые операторынемного «расширить» пролог.