inflearn logo
강의

Course

Instructor

Functional Programming and JavaScript ES6+

Iterable-centric programming practical code

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

Resolved

458

projectkmscom

2 asked

1

console.time("지연평가");
go(
  users,
  L.map((u) => u.family),
  L.flatten,
  L.filter((u) => u.age < 20),
  L.map((u) => u.name),
  take(3),
  log
);
console.timeEnd("지연평가");

console.time("프로토타입");
const res = users
  .map((e) => e.family)
  .flat()
  .filter((e) => e.age < 20)
  .map((e) => e.name);

const result = [];
for (let i = 0; i < 3; i++) {
  result.push(res[i]);
}
log(result);
console.timeEnd("프로토타입");

같은 동작을 하는 코드를 이터러블 / js 프로토타입 으로 코드를 작성했을 때

js 기본 프로토타입을 사용한 코드가 소요시간이 조금 더 적게 걸리던데

혹시 제가 놓치고 있는 부분이 있거나 효율부분에서는 프로토타입 사용하는게 더 나은건가요?

javascript 함수형-프로그래밍

Answer 1

3

mduniv

users의 크기가 클 수록, 보조함수안에서 수행하는 일이 오래 걸릴수록 지연평가가 유리합니다. :)

논리적으로 지연평가가 유리하다는 내용이 핵심이고,
실제로 다루는 배열의 크기가 작을 수록 차이가 적고,
브라우저나 엔진의 구현에 따라서도 후자가 유리할 수 있습니다.

언어나 엔진 레벨에서 지연평가를 더욱 적극 지원할 수록 전자가 유리해질 수 있습니다.

감사합니다.

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

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

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

499

1

안녕하세요 강사님!

0

380

2

fxts에 go가 없는 이유?

0

840

1

비동기 관련 질문입니다!

0

462

1

질문 있습니다.

0

517

1

강의 중 혼란스러운 부분이 생겨 질문 드립니다.

0

546

2