Редактирование: Искусственный Интеллект, 03 лекция (от 12 сентября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 16: Строка 16:
** Символы — некие идентификаторы, которые могут содержать практически всё, кроме пробелов, и они не должны быть числами. Примеры: «a», «b», «1+2»
** Символы — некие идентификаторы, которые могут содержать практически всё, кроме пробелов, и они не должны быть числами. Примеры: «a», «b», «1+2»
** Строки
** Строки
-
* Списки. Синтаксис: (выражение выражение ... выражение). Пример: «(1 2 a)», «((1 2) 3)»
+
* Списки. Синтаксис: (выражение выражение ююю выражение). Пример: «(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
 
=== Примеры ===
=== Примеры ===

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Разделы