• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

병렬평가 질문 있습니다!

23.01.31 18:50 작성 조회수 321

0

  C.reduce = curry((f, acc, iter) => {
    log([...acc]);
    return iter ? reduce(f, acc, catchNoop(iter)) : reduce(f, catchNoop(acc));
  });

reduce에 acc를 전개연산자로 펼쳐서 전달하지 않고 이전에 하게 되면 저렇게 iterable의 값이 모두 소비된 상태로 전달 되기 때문에 reduce의 값이 undefined로 평가 되는 것일까요...?

답변 1

답변을 작성해보세요.

0

질문을 정확히 이해하지를 못했어요~!

아 reduce함수에 이터러블을 넘겨주기 전에

저런식으로 log([...acc])를 실행한 후 reduce함수가 실행 됐을때 undefined를 출력하더라구요

생각을 해보니 log([...acc]) << 이 부분에서 전개연산에 의해 이터러블의 값이 모두 소비된 이후에 reduce함수에 전달 되기 때문에 이런 결과가 나온건지 여쭤봤습니다...!

동시에 모두 수행 시킨 뒤에 제어하기 위해 그렇게 해보았어요 :)