1
resposta

Problema com dois parametros

Boa tarde

No exemplo da aula abaixo, retorna o valor total dos pedidos por usuário, porém quando eu fiz dessa forma (está mais abaixo):

Aula

(defn quantia-de-pedidos-e-gasto-total-por-usuario
  [[usuario pedidos]]
  {
   :usuario usuario
   :total-de-pedido (count pedidos)
   :preco-total (total-dos-pedidos pedidos)
   })

Passei dois parametros para fazer o calculo e começou a retornar zero o preço total do pedido. Sabem me dizer o porquê?

Meu código

(defn quantia-de-pedidos-e-gasto-total-por-usuario
  [[usuario preco-unitario quantidade pedidos]]
  (println "TESTE" preco-unitario quantidade)
  {
   :usuario usuario
   :total-de-pedido (count pedidos)
   :preco-total (total-dos-pedidos pedidos)
   })

O resto do código é igual ao da aula.

Obrigada

1 resposta

Oi Natasha, boa tarde!

Pelo que você descreveu, parece que o problema está na forma como você está passando os parâmetros para a função quantia-de-pedidos-e-gasto-total-por-usuario. No exemplo da aula, a função espera um vetor com dois elementos: o usuario e os pedidos. No seu código, você está tentando passar quatro elementos: usuario, preco-unitario, quantidade e pedidos. Isso pode estar causando a confusão.

A função total-dos-pedidos provavelmente está esperando uma estrutura específica para calcular o total, como um mapa de itens, onde cada item tem um preço unitário e uma quantidade. No exemplo da aula, essa função é aplicada sobre os pedidos, que é uma coleção de mapas de itens.

Para resolver isso, você pode tentar seguir o padrão da aula e garantir que a função total-dos-pedidos receba a estrutura correta. Veja como o exemplo da aula está estruturado e tente replicar essa estrutura no seu código. Por exemplo, os pedidos devem ser uma coleção de mapas que contém os detalhes de cada item, como :quantidade e :preco-unitario.

Espero ter ajudado e bons estudos!