Tags
Language
Tags
December 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Functional Programming With Python

Posted By: ELK1nG
Functional Programming With Python

Functional Programming With Python
Published 12/2023
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 3.51 GB | Duration: 14h 28m

A beginner-friendly introduction to functional constructs in python

What you'll learn

Practical fluency with map, filter, reduce, zip, any, all, list, set, dictionary, and generator comprehensions, and generator expressions

Complete coverage of intermediate functional constructs in Python: generators, iterators, decorators, closures, recursion, and much more!

A practical exploration of advanced topics: closures, recursion, partial function application, currying, memoization, infinite iterators, and overloading

A conceptual understanding of the key tenets of functional programming: immutability, purity, higher-order functions, recursion, and referential transparency

Requirements

No prior Python programming experience is required - this course is beginner friendly

A basic understanding of programming concepts is helpful, but not required

Description

Welcome to the best and most comprehensive introduction to functional programming in Python!In this beginner-friendly course, you will get to learn and practice Python's functional capabilities step-by-step, from the ground up. The course will begin with a conceptual understanding of the key tenets of functional programming: immutability: the idea that data should not be modified in placepurity: the practice of writing functions that do not cause side effectshigher-order functions: treating functions as pari passu with other data typesrecursion: the pattern of writing functions that call themselvesreferential transparency: the principle that a function call can be replaced with its return value without changing the program's behaviorThen, we will explore practical utilities that Python offers to help us write functional code, including:map, filter, reduce, zip, any, all: utilities for working with iterableslist, set, dictionary, and generator comprehensions: concise ways of creating lists, sets, dictionaries, and generatorsgenerator functions and iterators: functions that can be paused and resumedvariable arity: functions that can take a variable number of arguments, unknown at the time of writing the function In the final, and longest part of the course, we will take a look at more advanced topics, including:closures: higher-order functions that can access non-local variablesrecursion: functions that call themselvespartial function application: functions that return other functions, with some arguments pre-filledcurrying: a special case of partial function applicationmemoization: caching the results of function calls to speed up executioninfinite iterators: iterators that never endfunctional overloading: functions that behave differently depending on their inputsThroughtout the course, you will get to practice your newly acquired skills through a set of more than 20 skill challenges, each of which will be followed with a detailed video explanation of the solution that we will walk through together.This course is very beginner-friendly and no python experience is assumed. If you've never worked with Python before, there's a full length introduction to Python programming included as an appendix, covering the fundamentals of the language from the basic data types to containers, control flow, loops, classes, and more. See you inside!

Overview

Section 1: PLEASE DO NOT SKIP

Lecture 1 Very Short Intro

Lecture 2 All Course Notebooks

Section 2: The Five Tenets Of Functional Programming

Lecture 3 The Functional Paradigm

Lecture 4 Section Notebook

Section 3: Functions As First-Class Objects

Lecture 5 Passing Functions As Arguments

Lecture 6 Functions Returning Functions

Lecture 7 Skill Challenge

Lecture 8 Solution

Lecture 9 Section Notebook

Section 4: Functions In Data Structures

Lecture 10 Lists Of Functions

Lecture 11 Skill Challenge

Lecture 12 Solution

Lecture 13 Section Notebook

Section 5: HOFs At A Glance

Lecture 14 Order And Higher-Order Functions

Lecture 15 Skill Challenge

Lecture 16 Solution

Lecture 17 Section Notebook

Section 6: Purity And Side Effects

Lecture 18 Impure Functions

Lecture 19 Purity Is Eliminating (Realistically, Isolating) The Side Effects

Lecture 20 Section Notebook

Section 7: Laziness

Lecture 21 Lazy vs Eager Evaluation

Lecture 22 Chaining Lazy Operations

Lecture 23 Section Notebook

Section 8: Immutability

Lecture 24 Mutable Lists

Lecture 25 Skill Challenge

Lecture 26 Solution

Lecture 27 Extra: Undo/Redo Operations With Immutable Data

Lecture 28 Section Notebook

Section 9: Aliasing

Lecture 29 Aliasing And Unintended Side Effects

Lecture 30 Section Notebook

Section 10: Lambdas

Lecture 31 Anonymous Functions

Lecture 32 A Single Expression

Lecture 33 Good And Bad Uses

Lecture 34 Nesting And In-Place Lambdas

Lecture 35 Skill Challenge

Lecture 36 Solution

Lecture 37 Section Notebook

Section 11: Map

Lecture 38 Transformations

Lecture 39 Mapping Over Multiple Iterables

Lecture 40 Built-Ins

Lecture 41 Skill Challenge

Lecture 42 Solution

Lecture 43 Section Notebook

Section 12: Zip

Lecture 44 The Basic Zip

Lecture 45 Strict Mode

Lecture 46 Unzipping With Splat

Lecture 47 Building Dicts

Lecture 48 Extra: Functional Pipelining

Lecture 49 Skill Challenge

Lecture 50 Solution

Lecture 51 Section Notebook

Section 13: Filter

Lecture 52 Declarative Select

Lecture 53 Multiple Conditions

Lecture 54 Extra: Nested Lambdas

Lecture 55 Chained Filtering

Lecture 56 Skill Challenge

Lecture 57 Solution

Lecture 58 Extra: Alternative Solution With namedtuple

Lecture 59 Section Notebook

Section 14: Any And All

Lecture 60 Any

Lecture 61 All

Lecture 62 Any And All With Filter And Map

Lecture 63 Negation

Lecture 64 Short Circuiting Logic

Lecture 65 Skill Challenge

Lecture 66 Solution

Lecture 67 Section Notebook

Section 15: Reduce

Lecture 68 Accumulate

Lecture 69 The Initial Accumulator

Lecture 70 Skill Challenge

Lecture 71 Solution

Lecture 72 More Applications

Lecture 73 Skill Challenge - Run Length Encoding

Lecture 74 Solution

Lecture 75 Section Notebook

Section 16: Comprehensions

Lecture 76 Introduction To Comprehensions

Lecture 77 Nested List Comprehensions

Lecture 78 Comprehensions Over Multiple Iterables

Lecture 79 Skill Challenge

Lecture 80 Solution

Lecture 81 Section Notebook

Section 17: Set Comprehensions

Lecture 82 From Lists To Sets

Lecture 83 More Advanced Operations

Lecture 84 Skill Challenge

Lecture 85 Solution

Lecture 86 Extra Skill Challenge: Efficient Primes

Lecture 87 Solution

Lecture 88 Section Notebook

Section 18: Dictionary Comprehensions

Lecture 89 Building New Dictionaries

Lecture 90 More Use Cases

Lecture 91 Skill Challenge

Lecture 92 Solution

Lecture 93 Alternative Solution

Lecture 94 Section Notebook

Section 19: Iterators

Lecture 95 Concepts And Foundations

Lecture 96 Implementing The Iterator Protocol

Lecture 97 Section Notebook

Section 20: Generators

Lecture 98 Introduction To Generator Functions

Lecture 99 Generator Expressions

Lecture 100 Two-Way Communication With Generators

Lecture 101 Skill Challenge: Infinite Fibonacci Generator

Lecture 102 Solution

Lecture 103 Alternative Solution

Lecture 104 Extra: Sliding Window Fibonacci With Deque

Lecture 105 Data Pipelining Using Generators

Lecture 106 Section Notebook

Section 21: Variadics

Lecture 107 *args and **kwargs

Lecture 108 Skill Challenge

Lecture 109 Solution

Lecture 110 Section Notebook

Section 22: Nested HOFs

Lecture 111 Higher Order Functions Revisited

Lecture 112 Skill Challenge

Lecture 113 Solution

Lecture 114 Section Notebook

Section 23: Closures

Lecture 115 What Is A Closure?

Lecture 116 Skill Challenge

Lecture 117 Solution

Lecture 118 Section Notebook

Section 24: Decorators

Lecture 119 Introduction To Decorators

Lecture 120 Decorating Parameterized Functions

Lecture 121 Skill Challenge

Lecture 122 Solution

Lecture 123 Section Notebook

Section 25: Advanced Decorators

Lecture 124 Advanced Decorators

Lecture 125 Chaining Multiple Decorators

Lecture 126 Preserving Identity With @wraps

Lecture 127 Skill Challenge

Lecture 128 Solution

Lecture 129 Section Notebook

Section 26: Recursion

Lecture 130 Introduction To Recursion

Lecture 131 Recursion Trees And Recurrence Relations

Lecture 132 Skill Challenge

Lecture 133 Solution

Lecture 134 Tail Recursion And Recursion Limits In Python

Lecture 135 Mutual Recursion

Lecture 136 Parsing Structured Data With Recursive Functions

Lecture 137 A Slight Improvement

Lecture 138 Skill Challenge - Recursive Binary Search

Lecture 139 Solution

Lecture 140 Skill Challenge - Refactored Signature

Lecture 141 Solution

Lecture 142 Section Notebook

Section 27: Memoization

Lecture 143 A Conceptual Understanding

Lecture 144 Defining A Memoization Function

Lecture 145 Predefined Caching Utilities

Lecture 146 Extra: Inline Memoization

Lecture 147 Section Notebook

Section 28: Currying And Partials

Lecture 148 Partial Function Application

Lecture 149 Skill Challenge

Lecture 150 Solution

Lecture 151 Section Notebook

Section 29: Overloading And Polymorphism With singledispatch

Lecture 152 Polymorphic Functions

Lecture 153 A Quick Gotcha

Lecture 154 Skill Challenge

Lecture 155 Solution

Lecture 156 Section Notebook

Section 30: Infinite Iterators

Lecture 157 Count

Lecture 158 Infinite Cycles

Lecture 159 Finite Cycles With Repeat

Lecture 160 Skill Challenge

Lecture 161 Solution

Lecture 162 Section Notebook

Section 31: Appendix: Complete Python Fundamentals In Less Than 3 Hours

Lecture 163 Please Note

Lecture 164 Section Intro

Lecture 165 Data Types

Lecture 166 Variables

Lecture 167 Arithmetic And Augmented Assignment Operators

Lecture 168 Ints And Floats

Lecture 169 Booleans And Comparison Operators

Lecture 170 Strings

Lecture 171 Methods

Lecture 172 Containers I: Lists

Lecture 173 Lists vs. Strings

Lecture 174 List Methods And Functions

Lecture 175 Containers II: Tuples

Lecture 176 Containers III: Sets

Lecture 177 Containers IV: Dictionaries

Lecture 178 Dictionary Keys And Values

Lecture 179 Membership Operators

Lecture 180 Controlling Flow: if, else, And elif

Lecture 181 Truth Value Of Non-booleans

Lecture 182 For Loops

Lecture 183 The range() Immutable Sequence

Lecture 184 While Loops

Lecture 185 Break And Continue

Lecture 186 Zipping Iterables

Lecture 187 List Comprehensions

Lecture 188 Defining Functions

Lecture 189 Function Arguments: Positional vs Keyword

Lecture 190 Lambdas

Lecture 191 Importing Modules

This course is for anyone who wants to learn functional programming in Python from the very basics,Beginners to programming interested in writing concise, readable, and maintainable Python,Beginner Python developers with an interest in functional programming,Intermediate programmers with no exposure to functional constructs in Python