Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
flp.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
207 Кб
Скачать
☆

10. Свойства функционального программирования в постановке а. П. Ершова.

Сущность функционального программирования определена А. П. Ершовым как «... способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».

11. Структура символьного выражения в Лиспе.

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

>(имя_функции аргумент1 аргумент2 ... аргументN)

12. Символы, атомы, константы, t, nil, списки.

(Символьные выражения) S-выр:

1.скалярные объекты (символы, числа, атомы). Примеры символов: Vmax, A753,S. Символ, который используется для представления константного объекта предметной области, называется атомом. Символы, которые используются для именования других объектов, называются переменными (числа - не переменные). Существуют 2 системно определенных атомов T & NIL. NIL обозначает логическое значение «ложь», с другой стороны – это пустой список. Т используется для логического значения «истина».

2.структурные объекты (списки).

Список - структура, которая либо пуста, либо состоит из 2-х элементов: головы и хвоста. Хвост - обязательно является списком.

13. Список как основная структура функционального и логического программирования.

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

Список - структура, которая либо пуста, либо состоит из 2-х элементов: головы и хвоста. Хвост - обязательно является списком. Список строится перечислением символов через пробел и заключением получившегося выражения в скобки.

14. Префиксная нотация Лиспа, вычисление арифметических выражений.

В лиспе принято единообразная префиксная нотация записи выражений. Все выражения записываются в круглых скобках. Одно и то же выражение, в зависимости от контекста, может выступать в разных ролях. Префиксная нотация дает широкие возможности для синтаксического анализа выражений, а так же обеспечивает возможность использования единого списочного контекста для программ и данных.

>(имя_функции аргумент1 аргумент2 ... аргументN)

15. Понятие псевдофункции.

Функции, обладающие побочным эффектом, в языке LISP называют псевдо-функциями.   Например, функция определения функции в лиспе называется defun (это псевдо-функция). Побочный эффект - создание связи между именем и вычисляемым выражением.

16. Псевдофункция статического связывания объекта.

Статическая связь в лиспе организовывается с помощью псевдо-функции set. Псевдофункция - функция имеющая побочный эффект. В данном случае - организация статической связи.

Функция требует ровно два аргумента. Значением первого аргумента должен быть атом, а значением второго - произвольное S-выражение. Функция присваивает атому, являющемуся значением первого аргумента, значение второго аргумента. Это значение функция одновременно возвращает в качестве результата. Будем называть атом, которому присваивается значение, целевым атомом.

17. Функция eval.

Функция EVAL - это функция, которая может вычислить любое правильно составленное выражение языка LISP. Функция EVAL вычисляет свой аргумент (который может быть атомом или списком).

(eval 1)

==> 1

(eval _Pi)

==> 3.1415926535

18. Функция quote.

Функция QUOTE - Эта функция на самом деле не делает ничего, она просто блокирует вычисление своего единственного аргумента (который может быть любым мыслимым S-выражением\ вызов QUOTE записывается в виде (QUOTE нечто

19. Символьные выражения Лиспа.

S-выражения:

  1. скалярные объекты – атомы:

  1. символы – могут использоваться для именования других объектов программ;

  2. числа – константные объекты;

  1. структурные объекты – список

лежит единообразная префиксная нотация (имя операции записывается перед операндом).

20. Символьные выражения Пролога и Эрланга

Эрланг:

S-выражения – термы:

  1. скалярные

  1. атомы - с маленькой буквы

  2. числа

  3. логические значения

  1. переменные

  2. структуры

  1. списки

  2. кортеж

Списки записываются в [ … ]; пустой список записывается как [].

[a, b, c] – список

[] – пустой список

[голова | хвост]

Пролог:

S-выражения – термы:

  1. Константные объекты

    1. атом

    2. число

  2. Переменная

  3. Структура

Атом записывается с маленькой буквы: student, ivanov, p789.

Числа – целые и вещественные.

Переменные могут и должны использоваться для именования других объектов; им могут быть присвоены значения – конкретизация переменных; переменные записываются с большой буквы; анонимная переменная сопоставляется с любым значением, обозначается: _.

Структура имеет следующий вид:

функтор (компонент1, компонент2, …, компонентn)

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