Sobes.tech
Middle

O que é a paradigma de programação funcional?

sobes.tech IA

Resposta da IA

O paradigma de programação funcional é um estilo de construção de software cujo princípio principal é o uso de funções como blocos de construção básicos. Destaca-se:

  • Funções puras: Funções que, com os mesmos dados de entrada, sempre retornam o mesmo resultado e não têm efeitos colaterais (não alteram o estado fora de si mesmas).
  • Imutabilidade dos dados: Os dados, uma vez criados, não podem ser alterados. Qualquer alteração cria uma nova cópia dos dados.
  • Funções de primeira classe: As funções podem ser passadas como argumentos, devolvidas de outras funções e atribuídas a variáveis.
  • Ausência de estado mutável: O programa busca minimizar ou eliminar completamente o uso de variáveis mutáveis.

Vantagens:

  • Simplificação na depuração e testes devido à ausência de efeitos colaterais.
  • Melhoria do paralelismo e multithreading, pois não é necessário bloquear ao trabalhar com dados imutáveis.
  • Código mais legível e previsível.

Em Java, as funcionalidades funcionais foram implementadas com o surgimento do Java 8 através de:

  • Expressões lambda.
  • Interfaces funcionais.
  • Stream API.
  • Referências a métodos.

Exemplo de uso da Stream API para filtrar e transformar:

// Importação das classes necessárias
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// Exemplo de lista de números
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// Uso da Stream API para filtrar números pares e multiplicá-los por 2
List<Integer> processedNumbers = numbers.stream()
                                        .filter(n -> n % 2 == 0) // Filtrar números pares
                                        .map(n -> n * 2)         // Multiplicar por 2
                                        .collect(Collectors.toList()); // Recolher em uma nova lista

// Mostrar resultado
// System.out.println(processedNumbers); // Vai mostrar: [4, 8, 12, 16, 20]