Язык ЛИСП. Особенности языка функционального программирования

Содержание

Слайд 2

Автор языка Лисп Язык программирования Лисп (LISt Processing), предложен Дж. Маккарти

Автор языка Лисп

Язык программирования Лисп (LISt Processing), предложен Дж. Маккарти

в 1958 г. скорее для работы со строками символов, нежели для работы с числами.
Слайд 3

Особенности языка Лисп В языке Лисп данные и программы представляются одинаково

Особенности языка Лисп

В языке Лисп данные и программы представляются одинаково с

помощью списков.
Лисп является, как правило, интерпретируемым языком. Трансляторы языка Лисп обычно - интерпретаторы. Примером интерпретатора Лисп является система muLisp.
Лисп – бестиповый язык, то есть идентификаторы в Лисп – программе не связываются с каким-либо типом. Описания типов данных и переменных отсутствуют.
Слайд 4

Особенности языка Лисп Лисп имеет необычный синтаксис из-за большого количества круглых

Особенности языка Лисп

Лисп имеет необычный синтаксис из-за большого количества круглых скобок.

Выражения на языке Лисп записываются в круглых скобках. Например, арифметическое выражение (512-378)*301+1580 на языке Лисп будет иметь следующий вид
(+ (* (- 512 378) 301) 1580).
Программы, написанные на языке Лисп, во много раз короче программ на алгоритмических языках, таких как Паскаль, С и С**.
Слайд 5

Язык ЛИСП Основные понятия языка Лисп

Язык ЛИСП

Основные понятия языка Лисп

Слайд 6

Алфавит языка Лисп Алфавит языка Лисп включает латинские буквы, цифры и

Алфавит языка Лисп

Алфавит языка Лисп включает латинские буквы, цифры и

специальные знаки.
Строчные и прописные буквы не различаются.
Слайд 7

S-выражения Основу языка Лисп составляют символьные выражения, которые называются S-выражениями (symbolic

S-выражения

Основу языка Лисп составляют символьные выражения, которые называются S-выражениями (symbolic expression).
S-выражение

– это либо атом, либо список.
Слайд 8

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

Атомы

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

двух типов – символьные и числовые.
Символьный атом – это последовательность букв и цифр, в которой, по крайней мере, один символ отличается от цифры. Например, AB11, 10S, Moscow.
Символьный атом следует отличать от идентификатора переменной. Идентификатор – это последовательность букв, цифр и знака подчеркивания, начинающаяся с буквы, например, X12, A, и т.д.
К символьным атомам применяется только операция сравнения.
Слайд 9

Числовые атомы Числовые атомы – это обычные числа в десятичной системе

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

Числовые атомы – это обычные числа в десятичной системе счисления.

В языке Лисп используются целые и вещественные числа, например,
125, -344 – целые числа без знака и со знаком;
-4.6 , 8.9, 0.35501 - вещественные числа
Слайд 10

Списки Список в языке Лисп – это последовательность элементов, разделенных пробелами

Списки

Список в языке Лисп – это последовательность элементов, разделенных пробелами и

заключенная в круглые скобки. Элемент списка – это либо атом, либо список.
Например,
(abc) – список из одного атома;
(a b c) – список из трех атомов;
(a b (c d) e) – список из 4 элементов;
(1 2 0 -7) – список из 4 числовых атомов.
Слайд 11

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

Пустой список

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

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

Логические константы В языке Лисп логическое «да» (истина) обозначается символом T.

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

В языке Лисп логическое «да» (истина) обозначается символом T. Логическое

«нет» (ложь) обозначают символом так же, как пустой список.
Слайд 13

Понятие функции в языке Лисп Лисп является языком функций. Это означает,

Понятие функции в языке Лисп

Лисп является языком функций. Это означает, что

каждая конструкция языка Лисп является функцией и выполняется с помощью вызова функции.
Вызов функции f(x) записывается в виде списка (f x), где 1-й аргумент – имя функции, а 2-й - аргумент функции f.
Вызов функции многих переменных f(x1, x2,…, xn) представляет собой список из n+1 элементов:
(f x1,x2,…,xn).
Например, (+ 5 4)
(* 5 4)