Implementar Composição de Funções da Esquerda para a Direita

Beginner

This tutorial is from open-source community. Access the source code

Introdução

A composição de funções é uma técnica utilizada em programação funcional para combinar duas ou mais funções e criar uma nova função. Em Python, podemos usar a função compose do módulo functools para realizar a composição de funções. No entanto, a função compose realiza a composição de funções da direita para a esquerda (right-to-left), o que pode não ser adequado para todos os casos de uso. Neste desafio, você implementará uma função que realiza a composição de funções da esquerda para a direita (left-to-right).

Composição de Funções Inversa

Escreva uma função compose_right que recebe uma ou mais funções como argumentos e retorna uma nova função que realiza a composição de funções da esquerda para a direita (left-to-right). A primeira função (mais à esquerda) pode aceitar um ou mais argumentos; as funções restantes devem ser unárias.

Sua implementação deve usar a função reduce do módulo functools para realizar a composição de funções da esquerda para a direita.

from functools import reduce

def compose_right(*fns):
  ## seu código aqui
from functools import reduce

def compose_right(*fns):
  return reduce(lambda f, g: lambda *args: g(f(*args)), fns)
add = lambda x, y: x + y
square = lambda x: x * x
add_and_square = compose_right(add, square)
add_and_square(1, 2) ## 9

Resumo

Neste desafio, você implementou uma função compose_right que realiza a composição de funções da esquerda para a direita (left-to-right). Você usou a função reduce do módulo functools para realizar a composição de funções da esquerda para a direita.