Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments. Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs.
This course will use Haskell as the medium for understanding the basic principles of functional programming. While the specific language isn’t all that important, Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of programming using mathematical functions. It is also a relatively small language, and hence it should be easy for you to get up to speed with Haskell.
Once you understand the Why, What and How that underlies pure functional programming and learned to “think like a fundamentalist”, we will apply the concepts of functional programming to “code like a hacker” in mainstream programming languages, using Facebook’s novel Hack language as our main example.
- Understand the Why, What and How that underlies pure functional programming, and learn to “think like a fundamentalist”
- Apply the concepts of functional programming to “code like a hacker” in mainstream programming languages
The course materials used in this MOOC are available on TU Delft OpenCourseWare and can be viewed and downloaded for free. If you enrol for the MOOC, you will be introduced to up to date techniques in web lectures and webinars. Also you will apply each technique to a case with fellow learners. Ultimately, the combination of these techniques provides a coherent analysis of the problem. If you want to enrol, go to https://online-learning.tudelft.nl/courses/introduction-to-functional-programming/ to learn when the next run will start
- Module 00. Introduction
- Module 01. First steps
- Module 02. Types and Classes
- Module 03. Defining Functions
- Module 04. List Comprehensions
- Module 05. Recursive Functions
- Module 06. Higher-Order Functions
- Module 07. Functional Parsers and Monads
- Module 08. Interactive Programs
- Module 09. Declaring Types and Classes
- Module 10. The Countdown Problem
- Module 11. Lazy Evaluation
- Module 12. Reasoning about Programs
Introduction to Functional Programming by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://ocw.tudelft.nl/courses/introduction-to-functional-programming/.