Введение в функциональное программирование на Common Lisp

Научитесь использовать концепции функционального программирования при написании программ на любых языках.

Введение в  функциональное программирование на Common Lisp
This course is archived
Estimated 5 weeks
4–6 hours per week
Instructor-paced
Instructor-led on a course schedule

About this course

Skip About this course

Сегодня функциональное программирование становится все более популярным. Функциональные языки и заложенные в них концепции активно применяются в разработке программного обеспечения, работающего под высокой нагрузкой и предъявляющего повышенные требования к безопасности и масштабируемости.
Многие приемы функционального программирования можно применять и в традиционных процедурных и объектно-ориентированных языках. Особенно учитывая, что такие языки, как Java, C++, С#, Python, со временем приобретают все больше и больше возможностей, характерных для функциональных языков.
В курсе функциональный подход к написанию программ иллюстрируется с помощью Lisp — одного из самых знаковых для функционального программирования языков.
По окончании курса вы сможете применять базовые концепции функционального программирования при написании программ на любых языках, а также получите опыт использования языка Lisp для решения практических задач.

At a glance

  • Institution: ITMOx
  • Subject: Computer Science
  • Level: Introductory
  • Prerequisites:

    Для успешного освоения курса не требуется никаких специальных знаний, кроме знаний уровня школьной информатики. Для успешного выполнения заданий рекомендуется установить компилятор Lisp, поддерживающий стандарт Common Lisp, например, SBCL.

  • Language: Русский

What you'll learn

Skip What you'll learn
  • Основы языка Lisp и умение использовать его для решения практических задач.
  • Базовые сведения о функциональной парадигме программирования и способах её применения.
  • Некоторые часто используемые алгоритмы и структуры данных

Неделя 1
Парадигмы программирования, место и роль функциональной парадигмы,
история развития языков программирования, история языка Lisp, принципы
исполнения программ на языке Lisp и других языках.
Основы языка Lisp, формы и функции, система типов, предикаты и
элементарные логические функции, операции с байтами и битами.

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

Неделя 3
Анонимные функции и замыкания, функции как объекты первого класса,
проблема фунарга.
Практическое использование приемов функционального программирования,
отображение, свертка и фильтрация последовательностей, левая и правая
свертки, работа с хэш-таблицами.

Неделя 4
Средства макрообработки текстов программ, макросы в языке Lisp, проблемы
совпадения имен, анафорические макросы, макрос LOOP, предотвращение
повторного вычисления аргументов.
Организация ввода-вывода в программах на языке Lisp, ссылочная
прозрачность и чистота функций, основные функции ввода-вывода, работа с
файлами, сокетами и потоками ввода-вывода.

Неделя 5
Макросы чтения в языке Lisp, ленивые вычисления и их роль в
функциональном программировании, подходы к реализации ленивых вычислений
в программе на языке Lisp. Подведение итогов курса, экзамен.

About the instructors