inflearn logo
강의

Course

Instructor

Functional Programming and JavaScript ES6+

Go

go에서 사용하는 reduce 함수가 어떻게 동작되는지 이해가 되지않습니다.

386

lexky820778

8 asked

1

const reduce = (facciter=> {
  // 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(acca); // acc = ?(0, a => a + 1) { ? }
  }

  return acc;
};

const go = (...args=> reduce((af=> f(a), args);

go(
  0,
  (a=> a + 1,
  (a=> a + 10,
  (a=> a + 100
);

 

reduce에서 f로 인자로 넘겨준 함수가 reduce 함수내에서 어떤식으로 동작하는지를 모르겠습니다.

이거가지고 2일동안 막히고 있네요 ㅠㅠ

함수형-프로그래밍 javascript

Answer 2

1

dlxotjde6891

저도 동일한 문제로 고민하고 있었는데 도움이 되었습니다. 기존 array 내장 함수인 reduce 와 혼동이 되면서 헷갈렸네요! 감사합니다!

0

mduniv

안녕하세요!

로그를 찍어보면서 다시 한 번 잘 봐보시면 어떨까요?

0

lexky820778

익명 함수여서 그런지 보이지가 않네요..

아래 부분만 어떤식으로 돌아가는지 알려주세요!

acc = f(acca);

0

mduniv

저기서 f가 뭘까요?

0

lexky820778

(af=> f(a)
이 부분이 f로 들어가는 것 아닌가요?

0

lexky820778

아! f가 reduce(a, f) 함수이고 각각 a는 acc로  f는 a로 인자로 받는건가요?

map, filter, reduce에서 쓰던걸 망각했네요 ㅠㅠ

0

mduniv

 네. 말씀주신게 맞습니다 :) 멋집니다!

프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다

1

111

1

함수형 프로그래밍 심화 강의 자료 추천

0

72

2

함수형 자바스크립트 프로그래밍 책

0

54

1

filter가 아무것도 걸러내지 못하는 경우

0

114

1

take 함수의 성능적면에서의 이점

1

463

1

pipe함수

1

531

1

Identity 함수

0

450

1

함수형 프로그래밍이란

0

832

1

reduce 예제 코드 제안!

0

405

1

fxts를 배워보려고 합니다.

1

537

1

flatMap 관련 질문드립니다~

1

444

1

다용성이 높은 L.flatMap

0

358

1

변수에 재 할당 금지~

0

540

1

DevTools라고 옆에 결과 확인하는거 어떻게 하나요?

0

483

2

소요시간에 관해서 질문드립니다

1

458

1

join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!

0

465

2

reduce에 L.range를 사용할 때

0

527

2

[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유

3

739

2

제가 이해한 C.Reduce와 Reduce의 동작 차이 정리

2

787

3

go, pipe 함수 관련하여 질문 드립니다.

1

498

1

안녕하세요 강사님!

0

380

2

fxts에 go가 없는 이유?

0

840

1

비동기 관련 질문입니다!

0

462

1

질문 있습니다.

0

517

1