해결된 질문
작성
·
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
강의 중간에 질문 드렸는데 L.entries까지 듣고 Object.entries까지는 완전히 평가 된 후 L.map부터 지연 평가 되도록 구현했기 때문에 지연평가 된다 로 이해했는데 맞을까요?
감사합니다. 강의 너무 재밌습니다!
1