Functional Programming Concepts in Python

This tutorial covers essential functional programming concepts in Python, including higher-order functions, lambda functions, and practical examples using map, filter, and reduce.

1. Higher-Order Functions

Higher-order functions are functions that can take other functions as arguments or return them as results. This allows for greater flexibility and the ability to create more abstract and reusable code.

Example of Higher-Order Functions

def apply_function(f, value):
    return f(value)

def square(x):
    return x * x

result = apply_function(square, 5)  # Applies the square function to 5
print(result)  # Expected output: 25

In this example, apply_function is a higher-order function that takes another function f and a value, applying the function to the value.

2. Lambda Functions

Lambda functions are anonymous functions defined using the lambda keyword. They can take any number of arguments but can only have one expression. They are often used for short, throwaway functions.

Syntax of Lambda Functions

lambda arguments: expression

Example of a Lambda Function

add = lambda x, y: x + y
print(add(3, 5))  # Expected output: 8

Here, the lambda function add takes two arguments and returns their sum.

3. Functional Programming Examples

In Python, functional programming can be effectively used with built-in functions like map, filter, and reduce (from the functools module).

Using map()

The map() function applies a specified function to each item in an iterable (like a list) and returns a map object (which can be converted to a list).

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

Using filter()

The filter() function creates a list of elements for which a function returns True.

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # Expected output: [2, 4]

Using reduce()

The reduce() function from the functools module applies a rolling computation to sequential pairs of values in a list.

from functools import reduce

sum_of_numbers = reduce(lambda x, y: x + y, numbers)
print(sum_of_numbers)  # Expected output: 15

In this example, reduce() calculates the sum of all numbers in the list.

4. Summary

Functional programming in Python promotes the use of higher-order functions and lambda functions, making it possible to write concise and effective code. The built-in functions map, filter, and reduce enable functional transformations of data, facilitating powerful programming paradigms.

0 Interaction
2.4K Views
Views
41 Likes
×
×
🍪 CookieConsent@Ptutorials:~

Welcome to Ptutorials

Note: We aim to make learning easier by sharing top-quality tutorials.

We kindly ask that you refrain from posting interactions unrelated to web development, such as political, sports, or other non-web-related content. Please be respectful and interact with other members in a friendly manner. By participating in discussions and providing valuable answers, you can earn points and level up your profile.

$ Allow cookies on this site ? (y/n)

top-home