Как reduce работает в данном контексте?
я думал reduce работает как-то так .reduce((a,b)=>a(b)
А здесь он возвращает сначала функцию ,а затем работает как обычный метод reduce .reduce((a,b)=>(C)=>a(b(c))))
Объясните на пальцах как это работает ?
let b = (str) => {
let st = str[0]
return st.toUpperCase()
}
let a = (str) => {
console.log("im in a")
return str + "!"
}
const compose = (...funcs) => {
return funcs.reduce((a, b) => (...args) => (a(b(args))))
}
const comp = compose(a, b)("hey")
console.log(comp)