Вход в систему

Консульство Овалон-2

Навигация

  • strict warning: Non-static method Pagination::getInstance() should not be called statically in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 308.
  • strict warning: Only variables should be assigned by reference in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 308.
  • strict warning: Non-static method Pagination::getInstance() should not be called statically in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 403.
  • strict warning: Only variables should be assigned by reference in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 403.
  • strict warning: Non-static method Pagination::getInstance() should not be called statically in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 345.
  • strict warning: Only variables should be assigned by reference in /var/www/owalo863/data/www/owalon.com/modules/pagination/pagination.module on line 345.

Новый подход к Искуственному Интеллекту "Экскалибур-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 _Графическая_функция.

Rambler

Сейчас на сайте

Сейчас на сайте 0 пользователей и 1 гость.