Unit 3: Functional Programming
Functional programming is not used very frequently in the industry, yet it is very powerful. Functional programming treats computation as the evaluation of mathematical functions. Functional programming languages are deeply rooted in lambda calculus.
Whereas older Functional Programming languages were typically designed with a specific purpose in mind, newer Functional Programming languages are more "general purpose" and are more widely applicable. In this unit, we will discuss Functional Programming's place in the programming languages world, first taking a look at exactly what constitutes a Functional Programming language. We will conclude the unit with a discussion of some of the more prevalent features in Functional Programming. By the end of this unit, you will be able to identify Functional Programming languages and, more importantly, instances in which a Functional Programming language would be most beneficial.
Completing this unit should take you approximately 21 hours.
3.1: Overview
Read this article, which gives an overview of functional programming.
Watch these lectures for an overview of functional programming.
3.2: Higher-order Functions
Watch this lecture for examples of higher-order functions and procedures in functional programming.
3.3: Pure Functional Functions
Read this page about values and types in Haskell.
Read this page about functions in Haskell.
3.4: Real Languages: Haskell
Read this overview of Haskell, a major functional programming language.
3.5: MapReduce
Read this article, which gives an overview of the famous MapReduce algorithm invented by Google and its implementation in Haskell.
Unit 3 Assessment
Please take this assessment to check your understanding of the materials presented in this unit.
Notes:
- There is no minimum required score to pass this assessment, and your score on this assessment will not factor into your overall course grade.
- This assessment is designed to prepare you for the Final Exam that will determine your course grade. Upon submission of your assessment you will be provided with the correct answers and/or other feedback meant to help in your understanding of the topics being assessed.
- You may attempt this assessment as many times as needed, whenever you would like.