Атомы, которые начинаются с заглавных букв, являются переменными. Первый шаг - использовать A
и B
. Если в какой-то момент вы решите, что две переменные на самом деле равны, просто скажите это A = B
. Процесс логического утверждения, что одно = другое - это «объединение».
например.
veryDifferentOrTheSame(A,B) :- veryDifferent(A,B).
veryDifferentOrTheSame(A,B) :- A = B.
Конечно, объединение не всегда будет работать. a(X) = b(X)
потерпит неудачу.
Все это означает, что когда код был написан, вы знали, что не уверены, что A = B.
Вы также можете динамически утверждать предложения во время выполнения. Объявление предложения как динамического и использование ассемблера или ассертца.
Но если вы укажете:
iOwn(goldfish).
iOwnFish :- iOwn(fish).
и затем захотите выполнить эту работу, сказав: «в моей вселенной рыба = золотая рыбка», тогда вы попадаете на странную территорию.