Preciso de ajuda para entender o resto e espalhar o operador
Este é o código:
const Pipe = (...fns) => fns.reduce((f,g) => (...args) => g(f(...args)));
Então, por (... fns) os argumentos fns se tornam uma matriz, certo? nesta parte:
(f,g) => (...args)
de onde vieram os args? existe um parâmetro args padrão? e não consigo ler esta parte:
(...args) => g(f(...args))
Eu simplesmente não consigo envolver minha cabeça com esse aninhamento e o que reduzir aqui é tão confuso.