Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lisp-ответы.docx
Скачиваний:
2
Добавлен:
12.09.2019
Размер:
58.14 Кб
Скачать
  1. Что называют функциями с побочными эффектами?

Функции set и setq  обладают и побочным эффектом. Эффект функции состоит в образовании связи между символом и его значением, а значением функции является связываемое значение. Символ остаётся связанным с определённым значением до тех пор, пока это значение не изменят.   В Лиспе все действия возвращают некоторое значение. Значение имеется даже у таких действий, основное предназначение которых заключается в осуществлении побочного эффекта, таких, например, как связывание символа или вывод результатов на печать. Функции, обладающие побочным эффектом, в Лиспе называют псевдофункциями.

  1. Чем отличаются s-выражения и списки?

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

S-выражение (Simbolic expresion) - основная структура данных в ЛИСПе.

(ДЖОН СМИТ 33 ГОДА) \

S-ВЫРАЖЕНИЯ

((МАША 21) (ВАСЯ 24) (ПЕТЯ 1)) /

S-выражение - это либо атом, либо список.

  1. Основные особенности лямбда-исчисления.

Ля́мбда-исчисле́ние (λ-исчислениелямбда-исчисление) — формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятиявычислимости.

λ-исчисление может рассматриваться как семейство прототипных языков программирования. Их основная особенность состоит в том, что они являются языками высших порядков. Тем самым обеспечивается систематический подход к исследованию операторов, аргументами которых могут быть другие операторы, а значением также может быть оператор. Языки в этом семействе являются функциональными, поскольку они основаны на представлении о функции или операторе, включая функциональную аппликацию и функциональную абстракцию. λ-исчисление реализовано Джоном Маккарти в языке Лисп. Вначале реализация идеи λ-исчисления была весьма громоздкой. Но по мере развития Лисп-технологии (прошедшей этап аппаратной реализации в виде Лисп-машины) идеи получили ясную и четкую реализацию.

  1. Смысл использования функций высшего порядка.

Одним из главных преимуществ LISP и других функциональных языков программирования является возможность определения функций, параметрами которых являются другие функции, а также функций, возвращающих функцию в качестве результата. Такие функции называются функциями высшего порядка (higher-order functions) и составляют важное средство реализации процедурной абстракции.

В то время как основной способ использования функций – это вызов их с указанием имени, существуют ситуации, когда было бы полезно рассматривать функции как данные. Например, вы можете передать одну функцию в качестве аргумента другой функции, вы можете написать общую функцию сортировки, и предоставить пользователю возможность указания функции для сравнения двух элементов. Так что один и тот же алгоритм может использоваться с разными функциями сравнения. Аналогично, обратные вызовы (callbacks) и FIXME hooks зависят от возможности хранения ссылок на исполняемый код, который можно выполнить позже. Поскольку функции уже являются стандартным способом представления частей кода, имеет смысл разрешить рассмотрение функций как данных.9)

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