Программа на Лиспе |  |
- Что такое S-выражение?
-
Это именованный список.
Это система атомов.
Это стандартная единица операторов в LISP
В Лиспе не используется термин «оператор». Там только функции.
Но фраза «стандартная единица функций в Лиспе» - тоже не имеет смысла.
- S-выражение. Пример.
-
(2 3 (5 2)) - содержит в себе 2 атома и 3 символа
Слово «символ» может применяться только при рассмотрении содержимого атомов.
Например, об атомах можно говорить, что они символьные, если они содержат в себе нечисловые символы или они числовые, если они содержат в себе только числовые символы.
- Функция atom. Чем она является?
-
Предикат
Атом
Атом - это один из видов S-выражения, но не функция.
Селектор
Конструктор
Квантор
Элемент списка
Это данное. Функция - это программа, но не данное.
T или nil
Это данное. Функция - это программа, но не данное.
True или False
Это данное. Функция - это программа, но не данное.
Истина или Ложь
Это данное. Функция - это программа, но не данное.
- Функция atom. Семантика.
-
Проверяет, является ли элемент атомным
Слово «элемент» можно применять применительно к спискам. Предикат atom может применяться и без списков.
«Атомный» - неправильное название термина.
Эта функция существует для выделения атома из массива.
В Лиспе не используется термин «массив».
Эта функция существует для выделения атома из списка.
Не известно значение термина «выделить».
Проверяет, является ли заданный аргумент элементом списка.
Возвращает T, если аргумент - это элемент списка и nil, если аргумент - это список.
Проверку «является ли Х элементом списка» можно осуществить только зная сам список. У функции atom - только один аргумент, в качестве которого можно передать либо только этот элемент, либо только этот список. Поэтому, такую проверку никак не получится выполнить.
Неправильное понимание термина «элемент списка».
Функция atom возвращает true или false.
Неправильное понимание термина «семантика».
Возвращаемое значение (здесь оно указано не правильно) не является семантикой.
- Функция atom. Тип.
-
- Функция car. Чем она является?
-
Предикат
Атом
Селектор
Конструктор
Квантор
- Функция car. Семантика.
-
- Функция car. Пример.
-
- Функция cdr. Семантика.
-
- Функция cdr. Пример.
-
- Функция cons. Семантика.
-
- Функция cons. Тип.
-
- Функция cons. Пример.
-
$ (cons (a b c) (c b a))
(a b c c b a)
В примере существует вызов функции с неизвестным именем.
$ (car '(a b c d))
a
$ (cons (e f g))
(a e f g)
В примере существует вызов функции с неизвестным именем.
Неправильный синтаксис функции cons. Передан один аргумент вместо двух.
Во втором вызове - дополнительный атом «а» не имеет никакого отношения к первому вызову. Поэтому, по сути, этот атом взялся из ниоткуда.
$ (cons (2 4) 3)
((2 4) 3)
Несоответствие аргументов типу функции cons.
В примере существует вызов функции с неизвестным именем.
В результате получится, видимо, точечная пара, но не список.
- Функция eq. Семантика.
-
Сравнение символьных переменных (посимвольно)
Неправильное понимание термина «переменная».
Ни в одном языке программирования нельзя сравнивать переменные. Можно сравнивать только значения.
- Функция eq. Синтаксис.
-
- Функция eql. Семантика.
-
- Функция eql. Синтаксис.
-
- Функция quote. Семантика.
-
Запрещает вычисление предыдущего списка
Блокировку никогда не имеет смысла применять к атомам.
На самом деле могут существовать атомы, к которым может потребоваться применить блокировку.
- Функция setq. Семантика.
-
Передаёт имя выражению (списку)
Эта функция предназначена для именования списков.
Записывает результат вычисления в константу. При этом, в отличие от set, сама переменная не вычисляется.
Эта функция существует для установления значений.
- Функция setq. Тип.
-
- Функция setq. Пример.
-
(setq (a 4))
Функция setq имеет два аргумента, а в этом примере указан только один аргумент.
В программе подчеркиваю строчку:
(setq P (list 1 2))
Предложите другие способы записи этого же списка.
Ответы:
(cons P (1 2))
(atom '(P (1 2)))
- Арифметика в Лиспе. Синтаксис.
-
- Функции сравнения на равенство
-
=
>=
<=
<
>
eq
eql
equal
eqal
equl
eval
evl
lve
- Функции >, < =. Синтаксис.
-
(> x1 x2 ... xn)
(< x1 x2 ... xn)
(= x1 x2 ... xn)
- Функции сравнения. Примеры.
-
((условия) (вып_если_истина) (вып_если_ложь))
В примере приведено нечто, похожее на синтаксис условного оператора (но тем не менее им не являющееся), но не пример применения функции сравнения.
Последняя модификация: 20.10.06 19:27 Цитирование материалов моего сайта приветствуется! при условии видимой действующей! гиперссылки на мой сайт. [Ссылки] Если Вы нашли опечатку на этой странице, пожалуйста, выделите ее мышью и нажмите Ctrl+Enter. Сделаем язык чище! (c) Yuri Popoff, 2004 - 2008, popoff.donetsk.ua, style.donetsk.ua |
|