Редактирование: Искусственный Интеллект, 03 лекция (от 12 сентября)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 16: | Строка 16: | ||
** Символы — некие идентификаторы, которые могут содержать практически всё, кроме пробелов, и они не должны быть числами. Примеры: «a», «b», «1+2» | ** Символы — некие идентификаторы, которые могут содержать практически всё, кроме пробелов, и они не должны быть числами. Примеры: «a», «b», «1+2» | ||
** Строки | ** Строки | ||
- | * Списки. Синтаксис: (выражение выражение | + | * Списки. Синтаксис: (выражение выражение ююю выражение). Пример: «(1 2 a)», «((1 2) 3)» |
=== Как устроены списки === | === Как устроены списки === | ||
Строка 49: | Строка 49: | ||
** a1 ... an — аргументы | ** a1 ... an — аргументы | ||
- | Есть два вида функций: обычные и особые. Обычные сначала вычисляют свои аргументы перед | + | Есть два вида функций: обычные и особые. Обычные сначала вычисляют свои аргументы перед передаячей, особые могут не вычислять. |
Пример: | Пример: | ||
Строка 72: | Строка 72: | ||
'(a b c) == (quote (a b c)) | '(a b c) == (quote (a b c)) | ||
- | |||
- | Используется для подавления вычислений других функций, например, | ||
- | |||
- | (cons (quote (a (b)) ) y) → ( (a (b)) 8 ) | ||
- | |||
- | при вычислении функции cons поиск последовательно пойдёт по аргументам функции - сначала вычислит quote, получит (a (b)), потом вычислит 8 - просто возмёт атом - и потом создаст новый список. Без quote cons будет вычислять (a (b)) | ||
==== car ==== | ==== car ==== | ||
Строка 162: | Строка 156: | ||
* атом — t | * атом — t | ||
* список — nil | * список — nil | ||
- | |||
- | ==== eval ==== | ||
- | |||
- | Сначала вычисляет свой аргумент, потом вычисляет полученное выражение и выдаёт его значение в ответ | ||
- | |||
- | (eval (quote (car (a b))) ) → a | ||
=== Примеры === | === Примеры === |