HomeCoursesLearn Functional Programming in Python
AI-powered learning
Save

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 3 million developers at
Join 3 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

95 Lessons12 Quizzes3 Assessments2 Challenges

1.

Introduction

Introduction

Get familiar with functional programming in Python, its characteristics, advantages, and challenges.

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.
Fahim Ul HaqLearn Functional Programming inPythonFounder & CEO
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.

Learn more about Martin

Trusted by 3 million developers working at companies

Built for 10x Developers

No Passive Learning
Learn by building with project-based lessons and in-browser code editor
Learn by Doing
Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go
Learn by Doing
Future-proof Your Career
Get hands-on with in-demand skills
Learn by Doing
AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"
Learn by Doing
Learn by Doing
MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies
Learn by Doing

Free Resources

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath