Простой атом - это функтор с соответствующим количеством аргументов, недоопределённое множество или переменная:
простой_атом = функтор [ "(" [ термы_и_выражения [ "*" ] ] ")" ] | недоопределённое_множество | метапеременная
Последний аргумент атомарной формулы может быть помечен "*" только тогда, когда он является переменной. В этом случае атомарная формула обозначает предикат с переменным числом аргументов ("предикат переменной арности"), а помеченная переменная - список аргументов, не определённых явно в составе атомарной формулы. Во время трансляции арность такого предиката неопределена, однако в ходе исполнения программы эта атомарная формула может быть унифицирована, в общем случае, с атомом любой арности большей или равной R-1, где R - количество аргументов, заданных в составе рассматриваемого предиката (включая помеченную переменную).
Переменные, помеченные "*", а также переменные, используемые в качестве атомов и функторов, называются "метапеременными". Предикаты переменной арности, метапеременные, используемые в качестве атомов, а также атомы, в качестве функторов которых используются метапеременные, называются "метапредикатами" ("метаатомами").
Переменная в атомарной формуле подцели предложения может быть помечена "*" лишь в том случае, если она таким же образом помечена в заголовке предложения и не является анонимной переменной "_". Для обозначения списка аргументов предиката переменной арности не разрешается использовать метафункторы.
Атомарная формула вида
A0{x1:A1,x2:A2,...,xn:An|Rest}
эквивалентна''({0:A0,x1:A1,x2:A2,...,xn:An|Rest}),
где '' - символ, состоящий из пустой цепочки графем.Для обозначения данных в примере используются недоопределённые множества, в состав которых входит признак чётности "is_even".
P{is_even:'any'|Rest}:- P{is_even:'yes'|Rest}, P{is_even:'no'|Rest}.Приведённое утверждение означает, что любой предикат P является истинным при чётных и нечётных значениях аргумента, если его истинность удаётся доказать отдельно для чётных и нечётных значений этого аргумента.
Ссылки: анонимная переменная 2.1.1, атом 6.1, графема 1, данные 3, заголовок предложения 6, исполнение программы 4, метапеременная 3, метафунктор 3, недоопределённое множество 3.2.3, переменная 2.1.1, подцель предложения 6.2, предложение 6, простой атом 6.1.1, символ 2.1.2, список 3.2.2, термы и выражения 3.2.1, унификация 3.3, функтор 3, '' 2.1.2.
Следующий:
6.1.2. БИНАРНЫЕ ОТНОШЕНИЯ
Предыдущий:
6.1. АТОМАРНЫЕ ФОРМУЛЫ
6.1. АТОМАРНЫЕ ФОРМУЛЫ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)