## ЛЕКЦИЯ 1.

## Введение. Основные понятия Лиспа.

## Содержание

  1.1 ЛИСП - язык функционального программирования.
  1.2 Основные особенности Лиспа.
  1.3 ЛИСП. Элементарные понятия.
  1.3.1 Символьные данные:- выражения и представление данных.
  1.3.1.1 Выражения.
  1.3.1.2 Атомы.
  1.3.1.3 Списки.
  1.3.1.4 Логические константы.

## 1.1 ЛИСП - язык функционального программирования.

| Язык ЛИСП (LISP) был разработан в 1958 году американским ученым Джоном Маккарти как функциональный язык, пред- назначенный для обработки списков. ( LISt Processing). Lisp - означает "лепетать". С появлением этого языка машина стала пока лепетать, a не говорить по-человечески.

В основу языка положен серьезный математический аппарат:

- лямбда-исчисление Черча
- алгебра списочных структур
- теория рекурсивных функций

Долгое время язык использовался узким кругом исследователей. Широкое распространение язык получил в конце 70-х - начале 80-х годов с появлением необходимой мощности вычислительных машин и соответствующего круга задач. В настоящем - Лисп одно из главных инструментальных средств систем искусственного интеллекта. Он принят как один из двух основных ЯП для министерства обороны США и постепенно вытесняет второй ЯП - АДА.
Система AutoCAD разработана на Лиспе.

## 1.2 Основные особенности Лиспа.

До изучения языка трудно говорить об его особенностях, но
тем не менее...

- Представление программы и данных производится одинаково - через списки.
  Это позволяет программе обрабатывать другие программы и даже саму себя.
- Лисп
как правило является интерпретирующим языком, также как BASIC.
- Лисп
безтиповый язык, это значит что символы не связываются по умолчанию
с каким-либо типом.
- Лисп
имеет необычный синтаксис. Из-за большего числа скобок LISP
расшифровывают как Lots of Idiotic Silly Parentheses.
- Программы, написанные на Лиспе во много раз короче, чем написанные на процедурных языках.

## 1.3 ЛИСП. Элементарные понятия.

### 1.3.1 Символьные данные: выражения
и представление данных.

### 1.3.1.1 Выражения.

Основу ЛИСПа составляют символьные выражения, которые
называются

S-выражениями и образуют область определения
для функциональных программ.

S-выражение (Simbolic expresion)

- основная структура данных
в ЛИСПе.

       (ДЖОН СМИТ 33 ГОДА)            \
                                       S-ВЫРАЖЕНИЯ
       ((МАША 21) (ВАСЯ 24) (ПЕТЯ 1)) /

S-выражение

- это либо атом, либо список.

### 1.3.1.2 Атомы.

Атомы

- это простейшие объекты Лиспа, из которых
строятся остальные структуры.

Атомы бывают двух типов -

символьные и числовые.

Символьные атомы

- последовательность букв и цифр,
при этом должен быть по крайней мере один символ
отличающий его от числа.

ДЖОН АВ13 В54 10А

Символьный атом или

символ - это не идентификатор
переменой в обычном языке программирования.
Символ как правило обозначает какой либо предмет, объект
вещь, действие.

Символьный атом рассматривается как неделимое целое.

К символьным атомам применяется только одна операция:

сравнение.

В МCL в состав символа могут входить:

+ - * / @ $ % ^ _ \ <>

Числовые атомы

- обыкновенные числа

124

-344
4.5 3.055Е8

Числа это константы.

Типы чисел зависят от реализации ЛИСПа

Атом - простейшее S-выражение.

### 1.3.1.3 Списки.

В ЛИСПЕ

список это последовательность элементов (list).
Элементами являются или атомы или списки.
Списки заключаются в скобки, элементы списка разделяются
пробелами.

(банан)

1 атом

(б а н а н)

5 атомов

(a b (c d) e)

4 элемента

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

(+ 2 3)

3 атома

(((((первый) 2) второй) 4) 5)

2 элемента

Список, в котором нет ни одного элемента, называется

пустым
списком и обозначается "()" или символом NIL.

NIL

- это и список и атом одновременно.

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

Пустой список может быть элементом других списков.

(NIL)

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

(())

;то же самое, что и (NIL)

((()))

;- " -((NIL))

(NIL ())

;список из двух других списков

### 1.3.1.4 Логические константы.

NIL

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

Логическое "да"(true) задается символом

"Т".

Атомы и списки - это символьные выражения или S-выражения.
Соотношение рассмотренных основных типов ЛИСПА поясняет
диаграмма:

Содержание