Thursday, April 09, 2015

Функциональное программирование

Предварительном знакомство с LINQ или Stream API (lambda expressions) или (ещё лучше) каким-либо functional language желательно, но не обязательно. Ниже есть более развёрнутое описание курса.



https://www.youtube.com/watch?v=AbDqKlVP3V4&list=PLDrmKwRSNx7LMu3Rd3BNVU6SuOPYbCiRP


Ссылка на слайды
http://www.intuit.ru/studies/courses/471/327/info#

Ниже есть ссылки на слайды ко всем лекциям плюс описание курса.
Ниже есть продолжение.

Лекция 1 http://download.intuit.ru/video/484/1.ppt

Лекция 2 http://download.intuit.ru/video/484/2.ppt

Лекция 3 http://download.intuit.ru/video/484/3.ppt

Лекция 4 http://download.intuit.ru/video/484/4.ppt

Лекция 5 http://download.intuit.ru/video/484/5.ppt

Лекция 6 http://download.intuit.ru/video/484/6.ppt

Лекция 7 http://download.intuit.ru/video/484/7.ppt

Лекция 8 http://download.intuit.ru/video/484/8.ppt

В ней есть досадные ошибки. См. Understanding map, filter, and fold


Лекция 9 http://download.intuit.ru/video/484/9.ppt

Лекция 10 http://download.intuit.ru/video/484/10.ppt

Лекция 11 http://download.intuit.ru/video/484/11.ppt

Лекция 12 http://download.intuit.ru/video/484/12.ppt

Лекция 13 http://download.intuit.ru/video/484/13.ppt

Лекция 14 http://download.intuit.ru/video/484/14.ppt

Лекция 15 http://download.intuit.ru/video/484/15.ppt

Лекция 16 http://download.intuit.ru/video/484/16.ppt

Лекция 17 http://download.intuit.ru/video/484/17.ppt

Лекция 18 http://download.intuit.ru/video/484/18.ppt

Лекция 19 http://download.intuit.ru/video/484/19.ppt

Лекция 20 http://download.intuit.ru/video/484/20.ppt

Лекция 21 http://download.intuit.ru/video/484/21.ppt

Лекция 22 http://download.intuit.ru/video/484/22.ppt

Лекция 23 http://download.intuit.ru/video/484/23.ppt

Лекция 24 http://download.intuit.ru/video/484/24.ppt

Лекция 25 http://download.intuit.ru/video/484/25.ppt

Лекция 26 http://download.intuit.ru/video/484/26.ppt

Лекция 27 http://download.intuit.ru/video/484/27.ppt

Лекция 28 http://download.intuit.ru/video/484/28.ppt

Лекция 29 http://download.intuit.ru/video/484/29.ppt

Лекция 30 http://download.intuit.ru/video/484/30.ppt

Курс знакомит слушателей с парадигмой функционального программирования, в которой решение задач сводится к описанию функций, перерабатывающих некоторые входные данные в выходные и строящихся из более простых функций на основе принципов функциональной абстракции и аппликации. Рассматриваются теоретические основы функционального программирования (лямбда-исчисление, комбинаторная логика, вопросы вычислимости), на примере функционального подхода дается представление о некоторых теоретических разделах компьютерных наук (семантика языков программирования, доказательство программ). С другой стороны курс содержит значительную практическую составляющую, основанную на промышленном языке программирования F# (входит в состав Microsoft Visual Studio 2010), рассматриваются вопросы использования функциональных языков для построения компиляторов, грамматического разбора и т.д.
Курс будет интересен как практикующим программистам и студентам, изучившим основы компьютерных наук, так и математикам. Для программистов на императивных языках знакомство с функциональным подходом позволит расширить сознание, перейти на более чистый (свободный от побочных эффектов) стиль программирования с более высоким уровнем абстракции, научиться эффективно использовать новые возможности современных императивных языков (LINQ, лямбда-выражения и т.д.). Для математиков, функциональное программирование может служить безболезненным введением в компьютерные науки, поскольку в рамках курса мы практически «с нуля» строим (начиная от математических основ, вплоть до реализации интерпретатора/компилятора и описания формальной семантики) язык программирования на базе лямбда-исчисления – раздела дискретной математики.
http://www.intuit.ru/studies/courses/471/327/info