강의

멘토링

커뮤니티

Inflearn Community Q&A

milkyway's profile image
milkyway

asked

Functional Programming and JavaScript ES6+

join function more polymorphic than Array.prototype.join

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

Resolved

Written on

·

533

·

Edited

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가 된 걸까요?

javascript함수형-프로그래밍

Answer 2

3

Milkyway님의 프로필 이미지
Milkyway
Questioner

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

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

1

mduniv님의 프로필 이미지
mduniv
Instructor

네 맞습니다 :)

milkyway's profile image
milkyway

asked

Ask a question