Новый подход к Искуственному Интеллекту "Экскалибур-2013"
Циклы,
- функции, которые повторяют Сообщение-аргумент заданное число раз.
For
- числовой цикл, выполняющийся от начального значения управляющей переменной var, равного Start, до ее конечного значения Finish с шагом 1.
(For var Start Finish ( Сообщение))
Возвращаемым Результатом цикла значением будет число Finish
Пример:
Rob
- цикл (грабитель) по очереди забирает у списка L его элемент1, элемент2… и передает его (элемент) переменной var.
(Rob var L (выполнить код…) Возвратить)
Пример: (Rob A (qq (ww ee) 1 (2 3) 4) ? где переменная var? это А?
(! A)
Возвратить ) Пример?
Этот цикл будет продолжаться, пока еще есть, что отобрать у списка. Затем вычисляется возвращаемое значение сообщения “Возвратить”
Расширение базы известных функций.
Создание (определение) новых функций.
Экскалибур - динамическая система. Во время работы в любой момент Программа или Пользователь могут создать новые функции, которые сразу включаются.
Экскалибур строго различает функции, относящиеся к Базе Знаний Задачи (БЗЗ), и функции, относящиеся к Базе Глобальных Знаний (БГЗ) .
Новые функции, определенные в теле данной задачи («Экскалибур» многозадачная система) функциями Def и DefF работают только в этой задаче.
Определение новых функций происходит функциями Def и DefF.
Отличие этих функций, в терминологии языка Э как и в Лисп состоит в том, что первая определяет функцию типа EXPR (все аргументы вычисляются до вызова функции), а вторая - функцию тапа FEXPR (аргументы не вычисляются, а передаются, так как они есть).
Определение новых глобальных функций, позволяет сохранить функцию на все время существования данного экземпляра Экскалибур, или до их преднамеренного удаления из Базы Знаний (БЗ=БЗЗ + БГЗ).
Рекомендация: Следует проявлять осторожность при создании глобальных функций в БЗ Экскалибур, так как разрастание их числа замедляет поиск нужного экземпляра функции по имени работу Э.
Занести глобальную функцию в Базу Знаний можно с помощью соответствующего меню прямо из окна редактора кода системы Экскалибур, не представляет труда.
Def и DefF
Функции Def и DefF принимают три параметра, Имя, (слова-аргументы), (тело функции).
Синтаксис:
(Def Имя (слова-аргументы) (тело функции))
(Def Имя (список аргументов) (тело функции))
Пример:
(Def Сумма (A B) (+ A B))
(! (Сумма 1 2))
Элементы определения могут быть переменными: ? Какие
(SetQ X ( + A B ) )
(Def Сумма (A B) X)
(! (Сумма 1 2))
ПРИМЕЧАНИЕ: Функции, определенные в задаче, по завершению задачи исчезают Если задача не завершена (отложенная или редактируемая задача), сообщение, описывающее тело задачи, сохраняется в БЗЗ: функции этой задачи сохраняются вместе с описанием задачи.
Glob и GlobF
Определение глобальных функций
Glob _Функция
GlobF _Функция.
ПРИМЕЧАНИЕ: Поскольку все глобальные функции являются просто свойствами Объекта “Функция” Базы Знаний, и ассоциированы с ним отношением “(Func Функция . Имя_функции ) ”, то получить описание функции не для вызова, а как нейтральное сообщение, можно как обычное контекстуальное значение свойства объекта “Функция”:
(.Имя_функции Функция)
или как значение свойства имени объекта:
(! Функция.Имя_функции)
Определение иерархии функций.
позволяет систематизировать их Для объекта “Функция” нужно сначала создать наследников, например так:
[ Включает Функция (физическая_функция графическая_функция)}
Затем при описании сообщения, следует указать имя подкаталога в иерархии (явно или через переменную ???):
Glob _Подкаталог
GlobF _Графическая_функция.
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »