AI-powered learning
Save this course
Learn Functional Programming in Python
Gain insights into functional programming in Python, learn about functions as objects, recursion, closures, and generators, and discover how to confidently apply these concepts to your projects.
4.9
95 Lessons
5h
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
- Learn to implement functional programming in Python.
- Understand the pros and cons of functional programming in Python.
- Master the ways to obtain function objects.
- Grasp the concept of mutability and recursion in Python.
- Acquire skill of using closures as function factories.
- Learn to differentiate between iterators and iterables.
- Become competent in creating, reducing, and transforming iterables.
- Master list comprehensions and generator comprehensions.
- Implement function composition and partial application.
- Get familiar with functors, applicatives, and monads.
Learning Roadmap
1.
Introduction
Introduction
Get familiar with functional programming in Python, its characteristics, advantages, and challenges.
2.
Functions as Objects
Functions as Objects
Discover the logic behind treating functions as first-class objects in Python.
3.
Mutability
Mutability
6 Lessons
6 Lessons
Break apart the concepts of mutability in Python, understanding both mutable and immutable objects.
4.
Recursion
Recursion
8 Lessons
8 Lessons
Break down complex ideas in recursion, factorials, limits, memoization, and list flattening.
5.
Closures
Closures
8 Lessons
8 Lessons
Deepen your knowledge of closures, combining functions, and using functions versus classes.
6.
Iterators
Iterators
13 Lessons
13 Lessons
Focus on iterators, iterables, lazy evaluation, creating custom iterators, and built-in functions.
7.
Transforming Iterables
Transforming Iterables
9 Lessons
9 Lessons
Build on Python functions like enumerate, zip, filter, and map for iterable transformations.
8.
Reducing Iterables
Reducing Iterables
7 Lessons
7 Lessons
Step through Python's reducing functions to transform iterables into single outcomes efficiently.
9.
Comprehensions
Comprehensions
5 Lessons
5 Lessons
Get started with creating lists using comprehensions, conditions, and nested structures in Python.
10.
Generators
Generators
7 Lessons
7 Lessons
Go hands-on with generators in Python, enhancing iterator creation and memory efficiency.
11.
Partial Application and Currying
Partial Application and Currying
10 Lessons
10 Lessons
Grasp the fundamentals of closures, partial application, currying, and function composition in Python.
12.
Functors and Monads
Functors and Monads
6 Lessons
6 Lessons
Deepen your knowledge of functors, applicative functors, and monads in functional programming.
13.
Useful Libraries
Useful Libraries
2 Lessons
2 Lessons
Simplify complex topics in Python with Itertools, Functools, PyMonad, and Oslash libraries.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Complete more lessons to unlock your certificate
Developed by MAANG Engineers
ABOUT THIS COURSE
The functional programming paradigm can be a powerful tool, especially as it can be integrated seamlessly with procedural and object-oriented code in Python.
In this course, you’ll learn what functional programming is, how it’s used, and the features of Python that support it. To start, you’ll learn how functions act as objects, the role of mutability, and how to perform recursion.
In the latter half of the course, you’ll focus on closures, iterables & iterators, generators, and more. Throughout the course will be three exams which will test your understanding and really drive home what you’ve learned.
By the end, you’ll have a new programming paradigm to add under your belt and have the confidence to start using functional programming in your own projects.
ABOUT THE AUTHOR
Martin McBride
I am a software developer, specialising in computer graphics, sound, and mathematical programming. I have been writing code since the 1980s in a wide variety of languages from assembler through to C++, Java and Python.
Trusted by 2.9 million developers working at companies
A
Anthony Walker
@_webarchitect_
E
Evan Dunbar
ML Engineer
S
Software Developer
Carlos Matias La Borde
S
Souvik Kundu
Front-end Developer
V
Vinay Krishnaiah
Software Developer
Built for 10x Developers
No Passive Learning
Learn by building with project-based lessons and in-browser code editor


Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go


Future-proof Your Career
Get hands-on with in-demand skills


AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"




MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies


Free Resources