인프런 커뮤니티 질문&답변

Raehan Jeong님의 프로필 이미지
Raehan Jeong

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+

Array.prototype.join 보다 다형성이 높은 join 함수

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

해결된 질문

작성

·

437

·

수정됨

0

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

const queryStr2 = pipe(
  Object.entries,
  L.map(([k, v]) => `${k}=${v}`),
  function(a) {
    log(a)
    return a;
  },
  join('&'),
)

위 코드에서 Object.entries는 Lazy하게 구현한 것이 아니라 빌트인 객체의 메서드를 사용했다고 이해 했는데 L.map으로 인해 a값이 Object [Generator] {} 인걸 이해 못했습니다.

 

Object.entries가 이터레이션 프로토콜을 따르는 이터레이터라는 것까진 이해 했는데 내부적으로 제너레이터로 구현이 돼 있는 걸까요?? 값을 yield로 리턴하도록 구현돼 있는 것인지 궁금합니다.

 

아니면 Object.entries는 이미 평가 된 상태에서 L.map 부분만 지연 평가가 돼 Generator가 된 걸까요?

답변 2

3

Raehan Jeong님의 프로필 이미지
Raehan Jeong
질문자

강의 중간에 질문 드렸는데 L.entries까지 듣고 Object.entries까지는 완전히 평가 된 후 L.map부터 지연 평가 되도록 구현했기 때문에 지연평가 된다 로 이해했는데 맞을까요?

감사합니다. 강의 너무 재밌습니다!

1

유인동님의 프로필 이미지
유인동
지식공유자

네 맞습니다 :)

Raehan Jeong님의 프로필 이미지
Raehan Jeong

작성한 질문수

질문하기