• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

23.04.01 14:15 작성 23.04.01 14:18 수정 조회수 346

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

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

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

1

네 맞습니다 :)