Скачиваний:
20
Добавлен:
01.05.2014
Размер:
63.49 Кб
Скачать

Неполный ПЕРЕЧЕНЬ ПРЕДИКАТОВ Arity/Prolog

Предикаты:

Е1 < Е2 Определяет, является ли значение Е1

меньше значения Е2

Т1 = Т2 Пытается унифицировать Т1 и Т2

Т1 \= Т2 Ложь, если Т1 унифицируется с Т2

Struct =.. List Известен еще как univ. Конвертирует

структуру в список или список в

структуру.

Е1 =< Е2 Определяет, является ли значение Е1

меньше или равным значению Е2

Е1 > Е2 Определяет является ли значение Е1

больше чем значение Е2.

Е1 >= Е2 Определяет, является ли значение Е1

больше чем или равным значению Е2

Е1=:=Е2 Определяет являются ли значения Е1 и Е2

равными

Е1=\=Е2 Определяет являются ли значения Е1 и Е2

не равными

T1 == T2 Определяет являются ли эквивалентными

термы Т1 и Т2

\+P Истина, если Р-ложь; ложь, если Р -

истина. То же самое, что not(P).

Т1\==T2 Определяет неэквивалентность термов Т1

и Т2

T1@<T2 Oпределяет находится ли Т1 до Т2

T1@=<T2 Oпределяет находится ли Т1 до или равен

Т2

T1@>T2 Oпределяет находится ли Т1 после Т2

T1@>=T2 Oпределяет находится ли Т1 после или

равен Т2

abolish(+Name/Arity)

Удаляет из базы все предложения с

указанным именем и арностью.

arg(+N, +Term, -Value)

Унифицирует Value с N-ым аргументом

указанного терма

arg0(+N, +Term, -Value)

Унифицирует Value с N+1 - ым аргументом

указанного терма.

argrep(+Term, +N, +Arg, -Newterm)

Заменяет N-ый аргумент в терме

значением Arg и возвращает результат в

Newterm.

assert(+Clause) Добавляет в предикат предложение.

Эквивалентен asserz.

asserta(+Clause)

Добавляет предложение в начало цепочки

предложений для предиката

assertz(+Clause)

Добавляет предложение в конец цепочки

предложений для предиката

atom(?x) Истина, когда Х - атом

atom_string(?Atom,?String)

Преобразует атом в строку или строку в

атом. Если оба аргумента связаны

значениями, проверяется эквивалентность

atomic(?X) Истина, если Х данное атомарного типа

bagof(?Term,+Goal, -Bag)

Возвращает в неупорядоченном списке

(Bag) все экземпляры Term для которых

Goal истина

call(+P) Вызывает интерпретируемую цель Р.

Истина, если Р-истина.

case(+[A1->B1, A2->B2, ...|C])

Выполняет В1, если A1 - истина, в

противном случае, выполняет В2, если A2

- истина и т.д. Если ложны все условия,

выполнет С.

case+([A1 -> B2, A2 -> B2, ...])

Выполняет B1, если A1 истина, в

противном случае, - выполняет B2, если

A2 - истина и т.д. Если ложны все

условия, то case - истина.

chdir(?Path) Изменяет или дает значения текущей

директории.

chmod(+Filename,?Attributes)

Изменяет или возвращает значение

атрибутного байта файла.

clause(+Head, -Body)

Унифицирует Head и Body с заголовком и

телом соответствующего предложения.

Head должна быть связана значением.

close(+Handle) Закрывает файл с указанным дескриптором

cls Чистит текущее окно и перемещает курсор

в верхний левый угол

compare (-Comp, +T1, +T2)

Сравнивает термы Т1 и Т2 в

соответствии со стaндартным порядком и

унифицирует Comp со значением

результата. Результатом сравнения

являются: =, <, и >.

consult(+Filename)

Загружает в базу данных предложения из

файла, добавляя их при этом к

предложениям, уже существующим в базе.

current_op(?Prec,?Assoc,?Op)

Возвращает в процессе бэктрекинга

определения операций, присутствующие в

базе данных.

current_predicate(?Predicate)

Возвращает в процессе бэктрекинга

предикаты, которые находятся в текущем

мире кода.Аргумент Predicate связывается

значением имени или имя/арность.

directory(+Path, -Name, -Mode, -Time, -Date, -Size)

Выдает список файлов из директории,

специфицированной аргументом Path.

Значением Mode могут быть: 1 - только

для чтения; 2 - скрытый файл; 4 -

системный не учитываемый при обычном

поиске в директории; 16 - директория;

32 - архивный. Size дает размер файла в

байтах.

disk(?Disk_Name)

Устанавливает или возвращает логическое

имя дискового устройства. Если Disk_Name

конкретизировано значением не следует

предусматривать в нем двоеточие.

display(+Term) Выводит указанный терм в префиксной

Польской записи на стандартное

устройство вывода.

display(+Handle, +Term)

Выводит указанный терм в префиксной

Польской записи в специфицированный

файл.

eq(?X,?Y)

Oпределяет, представляют ли X и Y один и

тот же объект данных.

erase(+Ref)

Удаляет терм, хранимый в базе по

указателю Ref. Сохраняет цепочку

удаленных термов.

eraseall(+Key)

Удаляет все термы, хранимые в базе под

ключом Key.

expunge

Удаляет системные указатели для термов

удаленных из базы.

fail Эта цель всегда ложь.

findall(?Term, +Goal, -List)

Собирает все экземпляры терма Term, на

которых доказуема цель Goal, и возвращает

эти экземпляры в неупорядоченном списке.

Предполагается, что все свободные

переменные должны быть экзистенционально

квантифицированы.

functor(?Struct,?Name,?Arity)

Возвращает имя и арность структуры.

get(?Char)

Читает со стандартного устройства ввода

следующий символ, пропуская при этом

непечатаемые символы. Унифицирует Char

значением кода ASCII прочитанного

символа.

get(+Handle,?Char)

Читает из файла следующий печатаемый

символ и унифицирует Char значением кода

ASCII прочитанного символа.

get0(?Char)

Читает со стандартного устройства ввода

следующий символ и унифицирует Char

значением кода ASCII прочитанного

символа. В отличие от get(?Char) пропуск

непечатаемых символов при чтении не

производится.

get0(+ Handle,?Char)

Читает из файла следующий символ и

унифицирует Char значением ASCII - кода

прочитанного символа.

get0_noecho(? Char)

Читает со стандартного устройства ввода

следующий символ и унифицирует Char

значением кода ASCII прочитанного

символа. Предикат get0_noecho не

производит эхо-отображения прочитанного

символа на стандартном устройстве вывода.

ifthen(+P,+Q)

Eсли цель Р истина, выполняет цель Q.

Если цель Р ложна, ifthen дает истину без

выполнения цели Q.

ifthenelse(+P, +Q, +R)

Eсли цель Р истина, выполняется цель Q, в

противном случае выполняется цель R.

instance( +Ref, -Term)

Возвращает в Term терм, связанный с

указателем Ref.

integer(?X)

Истина, если Х целое.

X is E

Вычисляет Е и унифицирует полученное

значение с Х.

key(+Key, -Ref)

Возвращает указатель для ключа.

keyb(-Ascii, -Scan)

Читает со стандартного устройства ввода

следующий символ и возвращает значения

ASCII и scan - кодов для прочитанного

символа.

keys(?Key)

Возвращает имя и арность для ключа из

текущего мира данных. Если Key связан

значением, возвращает истину в том случае,

если данный ключ в текущем мире данных

существует.

length(+List, -N)

Возвращает в N длину символьного списка.

listing

Выводит на стандартное устройство вывода

все предикаты из текущего мира кода.

listing(+Name)

Выводит на стандартное устройство вывода

все предикаты из текущего мира кода с

именем Name.

listing(+Name/Arity)

listing(+[Name/Arity, Name/Arity])

Выводит на стандартное устройство вывода

все предложения из текущего мира кода для

указанного предиката или списка

предикатов.

mkdir(+Path)

Создает новую директорию. Если Path

является полным именем маршрута (содержит

имя устройства и имена директорий), то

директория создается так, как это указано

в Path. Если Path содержит только имя без

указания маршрута, то директория

создается под текущей директорией.

name(?Atom, ?List)

Преобразует список в атом, или,

преобразует атом или целое в список.

nl

Выводит на стандартное устройство вывода

новую строку.

nl(+Handle)

Выводит новую строку в указанный файл.

nonvar(?X)

Истина, если Х является

конкретизированной переменной.

not(+P)

Ложь, если цель Р - истина; истина, если

цель Р - ложь.

nref(+Ref, -Next)

Возвращает указатель следующего терма в

цепочке термов, имеющих тот же самый ключ.

nth_char(+N,-String,-Char)

Возвращает ASCII - код символа,

расположенного со смещением N от начала

строки.

nth_ref(+Key, +N, -Ref)

Возвращает указатель на терм, отстоящий на

заданное число позиций от начала цепочки

термов.

number(?X)

Истина, если Х - число, целое или с

плавающей точкой.

op(+Prec, +Assoc, +Op)

Определяет позицию, приоритет и

ассоциативность оператора.

pref(+Ref, -Pref)

Возвращает указатель на предыдущий терм в

цепочке термов.

put(+Char)

Выводит символ на стандартное устройство

вывода.

put(+Handle, +Char)

Выводит символ в файл.

randomize(+Seed)

Повторно устанавливает (настраивает)

генеретор случайных чисел. Аргумент Seed

является целым числом.

reconsult(+ Filename)

Загружает в базу предложения из файла,

заменяя любые предложения, которые

находятся в базе на их аналоги из файла.

record_after(+Ref,?Term,-Newref)

Добавляет терм после терма с указателем

Ref и возвращает в Newref указатель на

добавленный терм.

recorda(+Key,?Term,-Ref)

Добавляет терм в начало предиката и

возвращает в Ref указатель на добавленный

терм.

recordb(+Tree_name,+Sort_key, +Term)

Записывает термы в Б-дерево.

recorded(+Key,?Term,-Ref)

Возвращает в процессе бэктрекинга

хранящиеся в базе по ключу Key термы и

связанные с ними указатели.

recorded_tro(+Key,?Term,-Ref)

Возвращает в процессе бэктрекинга

хранящиеся в базе по ключу Key термы и

связанные с ними указатели. Предикат

recorded_tro использует оптимизацию

хвостовой рекурсии и может оказаться

поэтому более эффективным, чем предикат

recorded.

recordz(+Key,?Term,-Ref)

Добавляет терм в конец предиката и

возвращает указатель на добавленный терм.

ref(?X)

Истина, если Х - указатель

repeat

Всегда истина. Когда снова встретится в

процессе бэктрекинга, то тоже истина.

retract(+Clause)

Удаляет из базы первый экземпляр

указанного предложения.

rmdir(+Patn)

Удаляет директорию.

seeing(?Filename)

Возвращает имя файла, который был открыт

для чтения при помощи предиката see. Eсли

в программе использовался предикат see_h,

то согласование seeing окончится неудачей.

seen

Завершает ввод из текущего открытого файла

и закрывает его.

setof(?Term,+Goal,-Set)

Собирает все экземпляры терма Term, на

которых доказуема цель Goal, и возвращает

их в упорядоченном списке Set без

дубликатов.

substring(?X)

Истина, если Х строка.

string_length(+String,?Length)

Возвращает длину строки. Если переменная

Length конкретизирована связана значением,

предикат дает истину, когда это значение

совпадает с длиной строки String.

string_search(+Substring, +String,-Location)

Ищет подстроку Substring в строке String и

возвращает начальную позицию подстроки в

аргументе Location. Oтсчет смещения позиции

подстроки производится от 0. Предикат

допускает возврат.

string_search(+Case,+Substring, +String,-Location)

Ищет подстроку Substring в строке String и

возвращает начальную позицию подстроки в

аргументе Location. Oтсчет смещения позиции

подстроки производится от 0. Eсли

аргумент Case установлен в 0, прописная и

строчная в процессе сравнения при поиске

различаются. Если Case установлен в 1,

различие прописной и строчной не

производится. Предикат допускает возврат.

string_term(?String,?Term)

Преобразует строку или атом в терм, или,

преобразует терм в строку.

tab(+Num)

Выводит на стандартное устройство вывода

указанное количество пробелов. Значение

аргумента Num может варьировать в диапазоне

0-255.

tab(+Handle,+Num)

Выводит в файл указанное количество пробелов

Значение аргумента Num может варьировать в

диапазоне 0-255.

tell (+Filename)

Открывает файл для записи и делает его

текущим файлом вывода.

telling(?Filename)

Возвращает имя файла, который был открыт для

записи при помощи предиката tell. Если в

программе использовался предикат tell_h, тo

согласование telling окончится неудачей.

told

Закрывает файл, который был открыт для

записи.

true Эта цель всегда истина.

var(?X)

Определяет, является ли Х

неконкретизированной переменной.

write(+Term)

Выводит терм на стандартное устройство

вывода.

write(+Handle,+Term)

Выводит терм в указанный файл.