Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лисп.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.66 Mб
Скачать

5. Основы языка лисп (6 – 15 вопросы)

6. Символы и списки

Символы используются для представления других объектов

Используются символы и построенные из них символьные структуры. В Лиспе понятие символа используется в более узком и точном смысле: под ним подразумевается запись или обозначение. В Лиспе символы обозначают числа, другие символы или более сложные структуры, программы (функции) и другие лисповские объекты.

Примеры символов:

X

Символ

defun

STeP-1984

Символы в языке Коммон Лисп

Символы языка Коммон Лисп могут состоять из букв, цифр и некоторых других знаков */@$%"&_\<>

Прописные и строчные буквы отождествляются и представляются прописными буквами.

В состав символов можно включать пробелы и другие зарезервированные специальные знаки. Для этого либо символ с двух сторон ограничивается вертикальной чертой (|, bar), либо перед каждым таким специальным знаком, входящим в символ, ставится обратная косая черта (\, backslash).

Числа являются константами

Числа все же не являются символами, так как число не может представлять иные лис-

повские объекты, кроме самого себя, или своего числового значения. Как и в других языках программирования, в Лиспе для различных целей используется много различных типов чисел. Примеры чисел:

746 ; целое число

-3.14 ; десятичное число

3.055Е8 ; число, представленное мантиссой и порядком

Числа отличаются от символов способом записи.

Логические значения Т и NIL

Символы Т и NIL имеют в Лиспе специальное назначение: Т. обозначает логическое значение истина (true), а NIL - логическое значение ложь (false). Их нельзя использовать в качестве имен других лисповских объектов.

Числа и логические значения Т и NIL являются константами, остальные символы - переменными, которые используются для обозначения других лисповских объектов.

Кроме этого, система Коммон Лисп содержит глобальные специальные переменные , имеющие изменяемые встроенные значения. В языке Лисп предусмотрена специальная директива (DEFCONSTANT), используемая для превращения любого символа в константу.

Атомы - символы и числа представляют собой те простейшие объекты Лиспа, из которых строятся остальные структуры.

Построение списков из атомов и подсписков

Атомы и списки - это основные типы данных. Список - упорядоченная последовательность, элементами которой являются атомы либо списки. Списки заключаются в круглые скобки, элементы списка разделяются пробелами. Например, следующий список состоит из трех символов и одного подсписка, который в свою очередь состоит из двух атомов:

(а b (с d) е)

Список, в котором нет ни одного элемента, называется пустым списком и обозначается "()" или символом NIL. NIL может быть, например, элементом других списков:

NIL ; то же, что и ()

(NIL) ; список, состоящий из атома NIL

(()) ; то же, что и (NIL)

((())) ; то же, что и ((NIL))

(NIL ()) ; список из двух пустых списков

Атомы и списки называются символьными выражениями или s-выражениями.

Списки можно использовать для представления всевозможных знаний.

(герой-56

(имя Zippy)

(кличка Pinhead)

(язык английский)

(приметы

(голова грушевидная)

(волосы редкие))

(встречается Лисп-машины и комиксы))

Запись в виде списка гибка, свободна по форме и одновременно достаточно точна и понятна. При вводе выражений в Лисп-систему пустые строки, пробелы и расположение текста игнорируются.

Различная интерпретация списков:

(+ 2 3) можно интерпретировать в зависимости от окружения и использования либо как действие, дающее в результате число 5, либо как список, состоящий из трех элементов. Способ интерпретации определяется положением выражения и алгоритмом функционирования Лисп-системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]