Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Porque ReduceRight?

Professor, queria saber porque se usa na composição de função, as funções passadas como parâmetros, da direita para a esquerda? Não seria mais fácil ler o código se fosse da esquerda para a diereita?

Começando da esquerda:

compose(getObj, filterObj, sumObj)

Começando da direita:

compose(sumObj, filterObj,  getObj)
6 respostas

Boa noite, Vagner! Como vai?

Isso foi feito para manter a ordem na declaração das funções que anteriormente era:

sumItemsValue(
     filterItems(
          getItemsFromNotas(notas)
     )
)

Como pode ser visto nessa aula!

Grande abraço e bons estudos!

solução!

Bom dia meu aluno! Ficaria mais fácil sim, muito mais fácil, mas o compose segue as regras de aplicação de funções matemáticas. Porém, acho que você não chegou na aula que eu crio a função pipe, justamente para melhorar a legibilidade.

https://cursos.alura.com.br/course/javascript-padroes-abordagem-funcional/task/35102

Em suma, você poderá usar compose ou pipe de acordo com sua preferência.

Sucesso e bom estudo!

Entendi! Eu não tinha mesmo visto a próxima aula :D Mas conseguir ver qual benefício da função compose. Entendo que tem a explicação de como são feitas na matemática, mas, seria somente esse mesmo o ponto? Ou estou deixando de ver algum outro benefício?

Obrigado pelo esclarecimento Gabriel Leite e Flavio.

Esse ponto mesmo! O Pipe faz a mesma coisa, mas em uma ordem mais fácil de compreender Compose vem de function composition da matemática e o Pipe vem do pipe do sistema operacional unix :)

Aliás, há uma proposta para o Pipe fazer parte da linguagem JavaScript. Confira aqui:

http://cangaceirojavascript.com.br/pipeline-operator-proposta-interessante-tc39/

Entendi, muitoooo massa. Obrigado pela ajuda!