Pular para conteúdo

Exercícios: Aula 11 - Programação Funcional 🚀

🟢 Básico

  1. Closure Simples: Crie uma closure que receba um número e retorne o seu quadrado. Use-a em uma variável.
  2. Iterador Básico: Crie um vetor de 1 a 10. Use o método .iter() e um loop for para imprimir cada valor multiplicado por 2.

🟡 Intermediário

  1. Filtragem de Dados: Use .iter(), .filter() e .collect() para criar um novo vetor contendo apenas os números pares de um vetor original.
  2. Soma com Fold: Pesquise o método .fold() (ou .sum()) dos iteradores e use-o para calcular a soma de todos os elementos de um vetor sem usar loops for ou while.

🔴 Desafio

  1. Pipeline de Strings: Dado um vetor de strings vec!["maçã", "banana", "uva", "abacaxi"], crie um pipeline que:
    • Filtre apenas as frutas com mais de 4 letras.
    • Transforme todas em letras maiúsculas (uppercase).
    • Colete o resultado em um novo Vec<String>.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Closure Simples **Resolução e Implementação:**
// Estrutura de implementação recomendada para Closure Simples
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Programação Funcional em Rust**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Iterador Básico **Resolução e Implementação:**
// Estrutura de implementação recomendada para Iterador Básico
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Programação Funcional em Rust**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Filtragem de Dados **Resolução e Implementação:**
// Estrutura de implementação recomendada para Filtragem de Dados
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Programação Funcional em Rust**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Soma com Fold **Resolução e Implementação:**
// Estrutura de implementação recomendada para Soma com Fold
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Programação Funcional em Rust**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 5: Pipeline de Strings **Resolução e Implementação:**
// Estrutura de implementação recomendada para Pipeline de Strings
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Programação Funcional em Rust**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.