Composição de funções
Composição de funções é a base para construir pipelines de transformação de dados, como em middlewares de Redux ou encadeamento de operações em streams. Em vez de aninhar chamadas manualmente, você reutiliza e combina funções simples para formar lógica complexa com clareza.
O PROBLEMA
Crie compor(...fns) que aplica funções da direita para esquerda.
EXEMPLO
const pipeline = compor(quadrado, incrementar, dobrar); pipeline(3) → 49
SOBRE O CONCEITO
A composição compor(f, g)(x) equivale a f(g(x)): a última função recebe o valor original e o resultado passa para a anterior. No JavaScript, você pode implementá-la com reduceRight ou invertendo o array e usando reduce. O erro mais comum é inverter a ordem — se você aplicar reduce normalmente, a primeira função da lista será chamada primeiro, quebrando a semântica desejada. Por isso, é essencial garantir que a execução vá da direita para a esquerda, usando reduceRight ou espalhando as funções de trás para frente no reduce.
RESOLUÇÃO