Day 12 of #100DaysOfCode in Python: Embracing Functional Programming

Elshad Karimov
3 min readOct 7, 2023

Welcome to Day 12 of your #100DaysOfCode in Python journey! Today, you’re stepping into the elegant world of functional programming. We’ll dissect powerful tools like lambda functions, map, filter, and reduce that can transform the way you write, read, and think about your code.

Functional Programming

Functional programming is a programming paradigm where programs are constructed by applying and composing functions. It treats computation as the evaluation of mathematical functions and avoids changing state or mutable data.

Characteristics:

  • Immutability: Data is not changed once created.
  • First-class Functions: Functions are treated as first-class citizens, meaning they can be passed around like variables.
  • Purity: Functions have no side effects and return a value that depends only on their inputs.

Lambda Functions

Lambda functions are small, anonymous functions defined with the keyword lambda. They are syntactically restricted to a single expression.

Syntax:

lambda arguments: expression

Example:

greet = lambda name: f"Hello, {name}!" 
print(greet("Alice")) # Output: Hello, Alice!

The map() Function

map() is used to apply a function to all items in an input list. It takes a function and a list as arguments and returns a new list with the function applied to every item in the original list.

Syntax:

map(function, iterable, ...)

Example:

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # Output: [1, 4, 9, 16, 25]

The filter() Function

filter() is used to construct a list from those elements of the iterable for which the applied function returns True.

Syntax:

filter(function, iterable)

Example:

numbers = range(10)
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # Output: [0, 2, 4, 6, 8]

The reduce() Function

reduce() is used to apply a particular function passed in its argument to all of the list elements. This function is defined in the functools module.

Syntax:

reduce(function, sequence[, initial])

Example:

from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x*y, numbers)
print(product) # Output: 120

Advantages of Functional Programming

  1. Simplicity: It allows you to write more straightforward and readable code.
  2. Conciseness: You can express complex ideas in less code.
  3. Testability: The purity of functions (no side effects) makes the code easier to test and debug.

Challenges for Day 12

  1. Lambda Expressions: Create lambda expressions to perform basic arithmetic operations.
  2. Mapping: Use the map() function to convert a list of strings to upper case.
  3. Filtering: Use the filter() function to filter out odd numbers from a list.
  4. Reduction: Use the reduce() function to find the factorial of a number.

Wrapping Up

On Day 12, you’ve unlocked a new level in your Python skills by adding functional programming to your toolkit. These concepts not only contribute to cleaner and more efficient code but also prepare you for advanced topics and other programming languages that heavily rely on functional programming concepts. Keep up the momentum — you’re doing exceptionally well! 🚀🎩 #FunctionalProgramming

--

--

Elshad Karimov
Elshad Karimov

Written by Elshad Karimov

Software Engineer, Udemy Instructor and Book Author, Founder at AppMillers

No responses yet