Читать онлайн «Основы функционального программирования»

Автор Лидия Городняя

Основные идеи 3 2. Элементарный Лисп 11 3. Интерпретатор 25 4. Функционалы 40 5. Имена и контексты 52 6. Свойства атомов 60 7. Детализация определений 80 8. Компиляция программ 87 9. Реализационные детали 96 10. От ФП к ООП 104 11. Недетерминизм 115 12. Управление процессами 122 13. Функции высших порядков 130 14. Макетирование и тесты 142 15. Парадигмы программирования 147 Литература 165 Учебное пособие разработано при поддержке Интернет-Университета Информационных технологий и опубликовано в серии «Основы информационных технологий» в 2004 году.
Курс разработан на базе Факультета информационных технологий Новосибирского госуниверситета. Содержание курса соответствует PF1, PL7, PL3 классификатора CC2001CS. 2 Лекция 1. Основные идеи В этой лекции дается общее представление о функциональном программировании и сфере его применения, включая анализ основных понятий и принципов и их иллюстрацию на материале истории языка Лисп, его диалектов, наследников и реализаций. Рассматривается роль функциональных программ в жизненном цикле программного обеспечения и эволюции информационных технологий, а также перспективы функционального подхода к совершенствованию информационных cистем. Идея функционального программирования опирается на интуитивное представление о функциях как о достаточно общем механизме представления и анализа решений сложных задач. Механизм функций основательно изучен математиками, и это позволяет программистам наследовать выверенные построения, обладающие предельно высокой моделирующей силой. Систематическое применение функционального программирования впервые достаточно ярко было продемонстрировано Джоном Мак- Карти и его учениками в методах реализации языка Лисп и программирования на этом языке [1]. Наиболее очевидные из этих методов были успешно ассимилированы другими языками и системами программирования. Обычно про функциональное программирование вспоминают при смене технологий, когда возрастает роль аналитики и исследовательских задач. В настоящее время часто употребляют термин <функциональность> при сравнительной характеристике информационных систем, что, видимо, свидетельствует о проявлении новой метрики, заслуживающей отдельного рассмотрения [2]. Функциональный стиль объединяет разные подходы к определению процессов вычисления на основе достаточно строгих абстрактных понятий и методов символьной обработки данных. Связь функционального программирования с математическими основами позволяет в тексте программы наследовать доказательность построения результата - если она достигнута, причем с использованием разных методов абстрагирования решаемой задачи [3,4].