Читать онлайн «Введение в программирование на языке Лисп: Учебное пособие»

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

Рекурсивные функции и структуры . . . . . . . . . . . 5 2. Идеальный Лисп . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3. Запись программ . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4. Определение языка . . . . . . . . . . . . . . . . . . . . . . . . . 32 5. Интерпретатор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6. Отображения и функционалы . . . . . . . . . . . . . . . . 51 7. Имена и контексты . . . . . . . . . . . . . . . . . . . . . . . . 64 8.
Управление процессами . . . . . . . . . . . . . . . . . . . . . 76 9. Традиционное программирование . . . . . . . . . . . . 80 10. Парадигмы программирования . . . . . . . . . . . . . . 89 История и выводы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Термины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Учебное пособие разработано при поддержке Российского фонда переподготовки кадров и сдано в печать в 2004 году. Курс разработан на базе Высшего колледжа информатики Новосибирского госуниверситета. Содержание курса соответствует PF4, PL7, PL5 классификатора CC2001CS. 2 Предисловие Целью курса является изучение идей языка Лисп и методов функционального программирования. В курсе будут рассмотрены: - История языка Лиспа. - Идеи символьной обработки информации. - Принципы функционального программирования. - Методы программирования на Лиспе. Автор языка Лисп – профессор математики и философии Джон Мак-Карти, выдающийся ученый в области искусственного интеллекта. Он предложил проект языка Лисп, идеи которого возбудили не утихающие до наших дней дискуссии о сущности программирования. Сформулированная Джоном Мак- Каpти (1958) концепция символьной обработки информации восходит к идеям Чёрча (лямбда-исчисление) и других видных математиков конца 20-ых годов предыдущего века. Джон Мак-Карти предложил функции рассматривать как общее понятие, к которому могут быть сведены все другие понятия программирования. Особый интерес представляют рекурсивные функции и методы их реализации в системах программирования. Понятие функции отчасти содержит концепцию времени: сначала вычисляются аргументы в порядке перечисления, затем в соответствии с заданным алгоритмом строится значение функции - ее результат. Лаконизм рекурсии может скрывать нелегкий путь к элегантному решению задачи.