Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.cplire.ru/Lab144/koi8/01060101.html
Дата изменения: Mon Sep 24 15:06:49 2007
Дата индексирования: Tue Oct 2 03:17:59 2012
Кодировка: koi8-r

Поисковые слова: trees
Actor Prolog. Programming language definition.

6.1.1. ПРОСТЫЕ АТОМЫ

Простой атом - это функтор с соответствующим количеством аргументов, недоопределенное множество или переменная:

 простой_атом =
    функтор [ "(" [ термы_и_выражения [ "*" ] ] ")" ] |
    недоопределенное_множество |
    метапеременная

Последний аргумент атомарной формулы может быть помечен "*" только тогда, когда он является переменной. В этом случае атомарная формула обозначает предикат с переменным числом аргументов ("предикат переменной арности"), а помеченная переменная - список аргументов, не определенных явно в составе атомарной формулы. Во время трансляции арность такого предиката неопределена, однако в ходе исполнения программы эта атомарная формула может быть унифицирована, в общем случае, с атомом любой арности большей или равной R-1, где R - количество аргументов, заданных в составе рассматриваемого предиката (включая помеченную переменную).

Переменные, помеченные "*", а также переменные, используемые в качестве атомов и функторов, называются "метапеременными". Предикаты переменной арности, метапеременные, используемые в качестве атомов, а также атомы, в качестве функторов которых используются метапеременные, называются "метапредикатами" ("метаатомами").

Переменная в атомарной формуле подцели предложения может быть помечена "*" лишь в том случае, если она таким же образом помечена в заголовке предложения и не является анонимной переменной "_". Для обозначения списка аргументов предиката переменной арности не разрешается использовать метафункторы.

Атомарная формула вида

A0{x1:A1,x2:A2,...,xn:An|Rest}

эквивалентна

''({0:A0,x1:A1,x2:A2,...,xn:An|Rest}),

где '' - символ, состоящий из пустой цепочки графем.

Пример. Предложение, имитирующее правило 2-го порядка.

Для обозначения данных в примере используются недоопределенные множества, в состав которых входит признак четности "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. АТОМАРНЫЕ ФОРМУЛЫ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)