Aplicar Função Condicionalmente

Beginner

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

Introdução

Em Python, funções são objetos de primeira classe (first-class objects), o que significa que podem ser passadas como qualquer outro valor. Uma aplicação útil disso é aplicar condicionalmente uma função a um valor com base em algum predicado. Neste desafio, você será solicitado a escrever uma função que recebe uma função predicado e uma função a ser aplicada quando o predicado for verdadeiro, e retorna uma nova função que aplica a função quando o predicado é verdadeiro.

Aplicar Função Quando Verdadeiro

Escreva uma função chamada when que recebe dois argumentos: uma função predicado predicate e uma função a ser aplicada when_true. A função when deve retornar uma nova função que recebe um único argumento x. A nova função deve verificar se o valor de predicate(x) é True. Se for, a nova função deve chamar when_true(x) e retornar o resultado. Caso contrário, a nova função deve retornar x.

def when(predicate, when_true):
  return lambda x: when_true(x) if predicate(x) else x
double_even_numbers = when(lambda x: x % 2 == 0, lambda x : x * 2)
double_even_numbers(2) ## 4
double_even_numbers(1) ## 1

Resumo

Neste desafio, você escreveu uma função que aplica condicionalmente uma função a um valor com base em algum predicado. Esta é uma técnica útil para criar código mais flexível e reutilizável.