지연평가가 가능한 이유가..
339
작성한 질문수 24
Lazy.range 함수가 이터러블 객체를 반환해서라기보다는
제너레이터의 yield를 통한 순차적인 제어권 위임때문이라고 보는게 더 맞지 않나요?
답변 1
5
안녕하세요 :)
질문자분께서 잘 알고 계시듯 yield가 순차적으로 제어권을 위임하는 것은 제너레이터가 이터레이터를 반환하고 그 이터레이터의 next 메서드를 통해 yield의 결과를 받으며 상호 동작하고 있기 때문에 지연 평가가 가능한 것이겠지요.
딱 어떤 부분이 지연평가를 가능하게 하는 가장 핵심 적인 부분인가라는 관점으로 바라본다고 한다면 저는 제너레이터는 수단이고 이터레이터가 오히려 더 핵심적인 아이디어라고 이야기할 수 있다고 생각합니다.
아래 링크는 타 회사 개발자분들께 오프라인으로 교육할 때 사용했던 자료여서 영상 공개는 어렵지만 코드를 보실 수 있는데요.
https://github.com/indongyoo/NAVER-Pay-functional-js/blob/master/1/QnA.html#L52
이 코드에서는 제너레이터 없이 ES5 문법 만으로 이터레이터를 만들어서 지연평가를 구현하고 있습니다. 결과적으로 제너레이터는 이 코드의 이터레이터와 동일한 이터레이터를 반환하는 것이 목적이라고 말씀드리고 싶습니다.
감사합니다.
프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다
1
111
1
함수형 프로그래밍 심화 강의 자료 추천
0
72
2
함수형 자바스크립트 프로그래밍 책
0
52
1
filter가 아무것도 걸러내지 못하는 경우
0
113
1
take 함수의 성능적면에서의 이점
1
463
1
pipe함수
1
530
1
Identity 함수
0
450
1
함수형 프로그래밍이란
0
831
1
reduce 예제 코드 제안!
0
404
1
fxts를 배워보려고 합니다.
1
537
1
flatMap 관련 질문드립니다~
1
444
1
다용성이 높은 L.flatMap
0
357
1
변수에 재 할당 금지~
0
540
1
DevTools라고 옆에 결과 확인하는거 어떻게 하나요?
0
483
2
소요시간에 관해서 질문드립니다
1
457
1
join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!
0
465
2
reduce에 L.range를 사용할 때
0
526
2
[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유
3
738
2
제가 이해한 C.Reduce와 Reduce의 동작 차이 정리
2
787
3
go, pipe 함수 관련하여 질문 드립니다.
1
498
1
안녕하세요 강사님!
0
379
2
fxts에 go가 없는 이유?
0
839
1
비동기 관련 질문입니다!
0
460
1
질문 있습니다.
0
515
1





