Онлайн-курс

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

1 месяц
Бесплатно
3 сентября 2019 ― 8 октября 2019
Программа курса

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

Записаться на курс

Для кого курс

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

Расписание

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

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

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

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

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

Комментарии

Комментировать
Close