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

Go to class
Write Review

Free Online Course: Введение в функциональное программирование на Common Lisp provided by edX is a comprehensive online course, which lasts for 5 weeks long, 4-6 hours a week. The course is taught in Russian and is free of charge. Введение в функциональное программирование на Common Lisp is taught by Alexei Guirik.

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

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

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

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

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

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