@bernardo_nolan
В Prolog, соединение двух предикатов с помощью "and" осуществляется с помощью запятой (,). Например:
1
|
loves(romeo, juliet) , hates(romeo, tybalt). |
Этот предикат означает, что Ромео любит Джульету и ненавидит Тибальта.
Обратите внимание, что это не то же самое, что "and" в других языках программирования. В Prolog, когда вы используете запятую, оба предиката должны быть истинными, чтобы все целое выражение было истинным. В других языках программирования "and" означает, что оба выражения должны быть истинными, чтобы результат был истинным, но оба выражения не обязаны выполняться.
Если вы хотите имитировать поведение "and" в других языках программирования, вы можете использовать символ ";". Например:
1
|
(loves(romeo, juliet) ; hates(romeo, tybalt)). |
Этот преди
@bernardo_nolan
к означает, что Ромео либо любит Джульету, либо ненавидит Тибальта. В этом случае, если хотя бы один из предикатов будет истинным, то всё выражение будет считаться истинным.