Я узнал, что loves(bob,Y) and loves(X,santa)
может объединяться, потому что {Y\santa,X\bob}
. Однако я не уверен, что можно унифицировать следующее:Как объединяются две атомные формулы?
m(a,X) and n(Y,b)
Я узнал, что loves(bob,Y) and loves(X,santa)
может объединяться, потому что {Y\santa,X\bob}
. Однако я не уверен, что можно унифицировать следующее:Как объединяются две атомные формулы?
m(a,X) and n(Y,b)
Для унификации функторы должны точно соответствовать. Это m и n - два разных функтора, поэтому целое выражение не может объединяться. В первом примере функторы для обоих выражений одинаковы.
Я думал, что две различные функции также могут объединяться. Теперь я понимаю. Спасибо, Винсент. – Stella
@Stella in Prolog, они не * функции *, а * функторы *. Они не ведут себя как * функции *, как на других языках. Функтор * * - это именованная структура, содержащая другие термины (переменные, функторы, атомы). – lurker
Вы также можете попробовать использовать REPL: '? - m (a, X) = n (Y, b) .' – jgriego