Pular para conteúdo

Mini-Projeto: Processador de Vendas Funcional 💰

Neste projeto, vamos usar o poder dos Iteradores e Closures para processar uma lista de vendas de forma limpa e eficiente.

📋 Requisitos

  1. Dados: Tenha um vetor de tuplas (cliente, valor).
  2. Transformação: Aplique um "imposto" de 10% sobre todos os valores usando .map().
  3. Filtragem: Mantenha apenas as vendas que, após o imposto, resultem em um valor maior que 50.
  4. Agregação: Calcule o valor total das vendas filtradas usando .sum() ou .fold().

🚀 Guia de Execução

  1. Implementação sugerida:
    fn main() {
        let vendas = vec![
            ("Alice", 100.0),
            ("Bob", 30.0),
            ("Charlie", 50.0),
            ("David", 200.0),
        ];
    
        let imposto = 1.10;
    
        let total_vendas_grandes: f64 = vendas.iter()
            .map(|(_, valor)| valor * imposto)           // Aplica imposto
            .filter(|&valor_final| valor_final > 50.0)    // Filtra grandes
            .sum();                                      // Soma tudo
    
        println!("O total das vendas processadas é: R${:.2}", total_vendas_grandes);
    }
    

✅ Critérios de Aceite

  • [ ] O código não utiliza loops for ou while manuais.
  • [ ] O pipeline de iteradores é claro e funcional.
  • [ ] O uso de closures captura as variáveis de ambiente necessárias.