ОСНОВНЫЕ ЭЛЕМЕНТЫ ПРОГРАММЫ НА ЛИСПЕ. СПИСКИ
Программы на языке Лисп строятся из простейших неделимых элементов, называемых атомами. Символы и числа представляют собой атомы, из них состоят все остальные структуры.
Символ - это имя, состоящее из букв, цифр и специальных знаков, которое обозначает какой-нибудь предмет или действие из реального мира, а также число, функцию (программу) и другие объекты. Наряду с символами используются и числа (значения), которые могут быть целыми (например, 543), десятичными (например, 3.789) и в представлении с мантиссой и порядком (например, 1.0243Е-6).
Главной структурой в Лиспе является список.
Списком называется упорядоченная последовательность, элементамикоторойявляются либо атомы, либо списки (подсписки). Списки заключаются в круглые списки, аих элементы разделяются пробелами. Например,
(ab(cd)e)
(В группе 18 студентов)
(((((первый) 2) третий) 4) 5).
Список, в котором нет ни одного элемента, называется пустым списком и обозначается "( )" или специальным символом NIL. Список - это структура данных, представляющая некоторую иерархическую связь (дерево) с помощью строго соответствующих друг другу открывающих и закрывающих скобок.
Имеется и альтернативный способ записи списков - с использованием, так называемой, точечной нотации. Точка при этом отделяет начальный элемент списка -его голову - от остальной части списка - хвоста: (голова, хвост) или
(а1 а2 ... aN) = (а1. (а2.... (aN.Nil)...)).
Здесь Nil - это предопределенная константа, означающая пустой список (и одновременно логическое значение «Ложь»).
Атомы и списки называютсяS-выражениями. Все вышесказанное можно обобщить в следующих формах Бэкуса - Наура
<S-выражение> :: = <атом> | <список>
<список> :: = (<внутренняя часть>)
<внутренняя часть> :: = NIL | <S-выражение> [{внутренняя часть}}
<атом> :: = цепочка алфавитно-цифровых символов без пробелов или специальных символов (,);.
Списки в Лиспе - основное средство представления знаний. Например,с помощью вложенных списков может быть представлена характеристика человека:
(сотрудник
(имя Петр)
(отчество Петрович )
(фамилия Иванов)
( образование ( среднее (с 1969 по 1979))
(высшее ( ВГУ г.Воронеж (с 1979 по 1982)
(МГУ г. Москва (с 1982 по 1984)) ( специальность
(техническая кибернетика)
(программирование)
(стаж (с 1984 по 1997)
)
Дата добавления: 2015-10-13; просмотров: 719;