Functional Programming

Here are the materials for Functional Programming course that I teach at Moscow Institute of Physics and Technology, Higher School of Economics and Moscow Aviation Institute.

For those students taking joint Functional and Logic Programming Course, please also have a look at separate page for Logic Programming.

Course Repository: http://github.com/shwars/funcpro

Course Outline

WeekTopicEnglish CourseNew Russian CourseFunctional Programming in F#ExtrasHomework
YouTubeYouTubeYouTube
0Introduction to Course & The InstructorYouTubeYouTube
1Introduction to Functional Programming and Lambda Calculus
2Introduction to F#Part 1.*
3Functions, Data Types and RecursionPart 2.*
4Algebraic Data Structures - ListsLists 1 - Lists 6Lect 2.1 - Lect 2.6Part 3.*
5Algebraic Data Structures - Trees. Purely Functional Data StructuresTrees 1 - Trees 3, Functional DS - 1Part 4.*
6Functional Tricks: Generators, Closures, etc.Functional Data Structures 2-5Part 5.*
7Implementation of Functional Languages. Combinatory Parsers. Eval-Apply Interpreters
8Applicative Functors and MonadsPart 6.*
9Optics and F# ExtrasPart 7.*Optics in Haskell, F# Plus
10Category TheoryYouTube

You may also look at the following related video courses: