Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_по_jason_(итог).doc
Скачиваний:
79
Добавлен:
21.03.2016
Размер:
1.79 Mб
Скачать

2) Функция «.Ground»

Проверяет, все ли переменные аргумента конкретизированы. Возвращает истину, если у аргумента нет свободных переменных. Для чисел, строк и атомов функция возвращает истину.

Примеры использования

a) ground(b(10)): возвращает true.

b).ground(10): возвращает true.

c) .ground(X): возвращает false если X свободная переменная или обозначает терм со свободной переменной.

d) .ground(a(X)): возвращает false если X свободная переменная или обозначает терм со свободной переменной.

e) .ground([a,b,c]): возвращает true.

f) .ground([a,b,c(X)]): возвращает false если X свободная переменная или обозначает терм со свободной переменной.

3) Функция «.Literal»

Проверяет, является ли аргумент литералом. Если да, то возвращает истину. Литералом является любая формула. Числа и строки литералами не являются.

Примеры использования

a) .literal(b(10)): возвращает true.

b) .literal(b): возвращает true.

c) .literal(10): возвращает false.

d) .literal("Jason"): возвращает false.

e) .literal(X): возвращает true, если X обозначает литерал, false - во всех других случаях.

f) .literal(a(X)): возвращает true.

g) .literal([a,b,c]): возвращает true.

h) .literal([a,b,c(X)]): возвращает true.

4) Функция «.List»

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

Примеры использования

a) .list([a,b,c]): возвращает true.

b) .list([a,b,c(X)]): возвращает true.

c).list(b(10)): возвращает false.

d) .list(10): возвращает false.

e) .list("home page"): возвращает false.

f) .list(X): возвращает true, если X обозначает список, false - во всех других случаях.

g) .list(a(X)): возвращает false.

5) Функция «.Number»

Проверяет, является ли аргумент числом. Возвращает истину, если это так.

Примеры использования

a) .number(10): возвращает true.

b) .number(10.34): возвращает true.

c) .number(b(10)): возвращает false.

d) .number("home page"): возвращает false.

e) .number(X): возвращает true, если X обозначает число, false - во всех других случаях.

6) Функция «.String»

Проверяет, является ли аргумент строкой. Возвращает истину, если это так.

Примеры использования

a) .string("home page"): возвращает true.

b) .string(b(10)): возвращает false.

c) .string(b): возвращает false.

d) .string(X): возвращает true, если X обозначает строку, false - во всех других случаях.

7) Функция «.Structure»

Проверяет, обладает ли аргумент структурой (функция, обратная atom).

a) .structure(b(10)): возвращает true.

b) .structure(~b): возвращает true.

c) .structure(b): возвращает false.

d) .structure(10): возвращает false.

e) .structure("home page"): возвращает false.

f) .structure(X): возвращает true, если X обозначает некую структуру, false - во всех других случаях.

g) .structure(a(X)): возвращает true.

h) .structure([a,b,c]): возвращает true.

i) .structure([a,b,c(X)]): возвращает true.

Другие внутренние функции

1) Функция «.abolish» – удаляет все убеждения, совпадающие по структуре с аргументом.

Удаляет из базы убеждений данного агента все убеждения заданной структуры. Шаблон удаляемых убеждений задается в качестве единственного параметра команды. При удалении каждого убеждения генерируется сопутствующее событие.

Примеры использования

a) .abolish(customer(_,_)) – удалить из базы убеждений все предикаты со структурой «customer(_,_)».

b) .abolish(c(_,8)[source(ag1)]): удалить из базы убеждений все предикаты со структурой «c(_,8)», полученные от агента «ag1».