인프런 커뮤니티 질문&답변
go에서 사용하는 reduce 함수가 어떻게 동작되는지 이해가 되지않습니다.
작성
·
380
1
const reduce = (f, acc, iter) => {
// iter에 값이 없으면 두번째 인자인 acc를 iterable로 변환
// acc는 iter의 첫번째 값인 0으로
if (!iter) {
iter = acc[Symbol.iterator]();
acc = iter.next().value;
}
// iter에서 next를 한번 하였기 때문에 (a) => a + 1, 부터 들어감.
for (const a of iter) {
acc = f(acc, a); // acc = ?(0, a => a + 1) { ? }
}
return acc;
};
const go = (...args) => reduce((a, f) => f(a), args);
go(
0,
(a) => a + 1,
(a) => a + 10,
(a) => a + 100
);
reduce에서 f로 인자로 넘겨준 함수가 reduce 함수내에서 어떤식으로 동작하는지를 모르겠습니다.
이거가지고 2일동안 막히고 있네요 ㅠㅠ
퀴즈
go 함수의 주된 역할은 무엇일까요?
함수 실행을 비동기적으로 처리합니다.
여러 함수를 순서대로 실행하며 값을 전달합니다.
인자가 충분할 때까지 함수의 실행을 미룹니다.
객체 상태 변화를 추적하고 관리합니다.
답변 2
1






익명 함수여서 그런지 보이지가 않네요..
아래 부분만 어떤식으로 돌아가는지 알려주세요!
acc = f(acc, a);