image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image

RC

Rodolfo Contieri27/08/2023 11:36
Compartilhe

Explorando a Elegância da Computação Declarativa

  • #Python

A Programação Declarativa é como dar as direções para um destino sem se preocupar com cada passo do caminho, ela é um paradigma que descreve os resultados desejados sem listar explicitamente os comandos ou etapas que devem ser executados. Assim a ênfase está em "o que" precisa ser feito, não em "como" deve ser feito. Isso resulta em um código mais conciso e legível.

Um Olhar em Código Imperativo:

def soma_quadrados(lista):
  soma = 0
  for i in lista:
      soma += i**2
  
  return soma

numeros = [1, 2, 3, 4, 5]
resultado = soma_quadrados(numeros)
print("A soma dos quadrados é:", resultado)

Neste código, iteramos sobre a lista e realizamos o processo de "como" usando um loop `for`, explicitamente calculando e somando o valor do quadrado à nossa variável `soma`.

Um Olhar na Abordagem Declarativa:

def soma_quadrados(lista):
  return sum(map(lambda x: x ** 2, lista))

numeros = [1, 2, 3, 4, 5]
resultado = soma_quadrados(numeros)
print("A soma dos quadrados é:", resultado)

Neste exemplo, usamos a função `map` para aplicar uma função `lambda` a cada elemento da lista e, em seguida, usamos a função `sum` para calcular a soma dos resultados. A abordagem está mais focada na composição entre funções do que na criação de iterações explícitas, como no exemplo anterior com o uso de um loop `for`.

Outros exemplos incluem elevar apenas números pares ao quadrado.

Forma Imperativa:

def numeros_pares_ao_quadrado(numeros):
  numeros_pares = []
  for num in numeros:
      if num % 2 == 0:
          numeros_pares.append(num ** 2)

  return numeros_pares

lista_original = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
resultado = numeros_pares_ao_quadrado(lista_original)
print("Números pares elevados ao quadrado:", resultado)

Forma Declarativa:

def numeros_pares_ao_quadrado(numeros):
  numeros_pares = filter(lambda x: x % 2 == 0, numeros)
  numeros_quadrados = map(lambda x: x ** 2, numeros_pares)
  return list(numeros_quadrados)

lista_original = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
resultado = numeros_pares_ao_quadrado(lista_original)
print("Números pares elevados ao quadrado:", resultado)

Conclusão:

A Programação Declarativa em Python oferece uma abordagem poderosa para criar códigos mais claros e modulares. Ao enfatizar a avaliação de funções, podemos alcançar um design de software mais previsível e fácil de manter. Embora a abordagem declarativa possa parecer complexa em alguns cenários, sua compreensão se torna mais natural à medida que os desenvolvedores se familiarizam com os conceitos. Ao escolher quando aplicar a programação declarativa e quando adotar outros paradigmas, os desenvolvedores podem aproveitar ao máximo as vantagens que cada abordagem oferece para diferentes situações.

Compartilhe
Comentários (0)