inflearn logo
강의

Course

Instructor

Functional Programming and JavaScript ES6+

Polymorphism of map following iterable protocol 2

reduce 에서 초기값이 없을 때

312

Dev

4 asked

0

const reduce = (f, iter, acc) => {
    if (acc === undefined) {
        iter = iter[Symbol.iterator]();
        acc = iter.next().value;
    }
    for (const a of iter) {
        acc = f(acc, a);
    }
    return acc;
};

log(reduce(add, [1, 2, 3]));
log(reduce(add, [1, 2, 3], 10));

위 처럼 acc가 옵션값으로 마지막에 들어가지 않고

설명에서 acc 를 중간에 넣으신 이유가 궁금합니다.

javascript 함수형-프로그래밍

Answer 2

0

Dev

답변 감사합니다.

관례적으로 옵셔널한 값은 맨 뒤에 넣는다고 생각했는데, 함수형 언어들은 중간에 넣어서 쓰기도 하나보네요.

0

mduniv

다른 함수형 언어들의 reduce가 보통 acc가 중간에 들어갑니다 :)

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

1

177

1

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

0

163

2

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

0

118

1

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

0

185

1

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

1

544

1

pipe함수

1

569

1

Identity 함수

0

485

1

함수형 프로그래밍이란

0

867

1

reduce 예제 코드 제안!

0

431

1

fxts를 배워보려고 합니다.

1

562

1

flatMap 관련 질문드립니다~

1

484

1

다용성이 높은 L.flatMap

0

391

1

변수에 재 할당 금지~

0

569

1

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

0

519

2

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

1

498

1

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

0

507

2

reduce에 L.range를 사용할 때

0

565

2

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

3

788

2

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

2

866

3

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

1

540

1

안녕하세요 강사님!

0

418

2

fxts에 go가 없는 이유?

0

882

1

비동기 관련 질문입니다!

0

491

1

질문 있습니다.

0

543

1