LEARNING PATH: Python: Functional Programming with Python
What you'll learn
- Higher-order functions and Lambda expressions (nameless functions)
- Error handling in Functional Programming
- Understand common functional design patterns, and how these apply to Python
- Understand what an iterator is in Python
- Iterators and iterator functions built into Python
- Create your own iterators
- Understand what a generator coroutine is
- Master list and dict comprehensions and generator expressions
Course content
- Preview04:38
- 11:46Example – A Functional, Interactive Calculator
- 07:04Pro – Stateless, Referentially Transparent Functions Produce the Same Result
- 08:34Pro – You Can Prove That Code Is Correct at Least in Theory
- 06:11Con – Complexity and Overly Deep Recursion
- 09:14Con – Functional Programming Can Be Unintuitive
- Preview06:29
- 06:09Diving into Lambda Expressions
- 07:22Understanding ‘and’ and ‘or’
- 05:20Diving into Inline ‘if’ Expressions
- 09:17Passing a Function as an Argument to Another Function
- 06:41Nesting a Function in Another Function
- 04:42Returning a Function from Another Function
- 04:59The Operator Module – Operators as Regular Functions
- 04:40Decorators – The @ Prefix
- 06:33Decorators with Arguments
- 07:32Currying – One Argument per Function
- 07:07Monads – Variables That Decide How They Should Be Treated
- 07:15Memoization – Remembering Results
- 04:56You Cannot Catch Exceptions in Lambda Expressions
- 05:35Handling Errors in Lambda Expressions
- 12:40Example – A Fully Functional, Interactive Calculator
- 5 questionsFunctional Programming in Python
Requirements
- Basic programming knowledge of Python is needed.
Description
Python is not a functional programming language, but it is a multi-paradigm language that makes functional programming easy to perform, and easy to mix with other programming styles. Python is a high level language used in many development areas, like web development, data analysis, desktop UI and system administration. Functional programming is a style of programming that is characterized by short functions, lack of statements, and little reliance on variables. You will learn what functional programming is, and how you can apply functional programming in Python. If you're interested to use Functional Programming as a powerful tool to solve many real-world problems by writing robust and bug-free code, then go for this Learning Path.
Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.
The highlights of this Learning Path are:
- Understand common functional design patterns, and how these apply to Python
- Learn the important role that iterators play in functional programming
In this Learning Path, you’ll learn what functional programming is, and how it differs from other programming styles, such as procedural and object-oriented programming. Then you’ll go on to explore lambda expressions, which are short one-line functions, and are the purest form of functional programming that Python offers. Next, you’ll learn about higher-order functions: functions that accept other functions as an argument, or return other functions as return values. You’ll also encounter important concepts from functional programming, such as monads, currying, statelessness, side-effects, memorization, and referential transparency; these concepts may initially seem odd to Python programmers, but you’ll see how they are elegantly supported by the language.
Further, you’ll learn everything there is to know about iterators in Python and how crucial they are in functional programming, where they are used, among other things, to implement repetitive logic and coroutines. You’ll learn about all standard iterators and iterator functions that Python offers. You’ll also learn to implement your own iterators. Functional programming makes heavy use of iterators, and you’ll learn how you can use them in functional programming through an interactive calculator application.
By the end of this Learning Path, you will get a thorough understanding of iterators to solve many real-world problems by writing robust, testable, and bug-free code.
Meet Your Expert:
We have combined the best works of the following esteemed authors to ensure that your learning journey is smooth:
SebastiaanMathôt currently works as assistant professor at the University of Groningen in the Netherlands. He is the lead developer at OpenSesame, which is an open-source, Python-based program for implementing psychology and neuroscience experiments. Sebastiaan is also the designer of DataMatrix, a Python library for numeric computing that is focused on elegance and readability. Sebastiaan also gives regular workshops on using OpenSesame and Python for scientific purposes, and regularly publishes Python tutorials on his YouTube channel. As such, he has extensive experience in teaching Python and making advanced topics seem as easy as possible.
Who this course is for:
- This Learning Path is intended for developers who have a basic understanding of Python and want to expand their developer toolbox with important new techniques.
Instructor
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.