live-small / JsDeepDive_Study

모던 자바스크립트 deep dive 책 스터디

Home Page:https://github.com/live-small/JsDeepDive_Study/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[토의] 지연 평가를 사용하는 코드

Markers opened this issue · comments

질문

지연 평가의 이점은 해당 코드를 실행할때 데이터를 평가해서 계산하기 때문에 빠른 실행이 가능하다고 합니다.
그럼 지연 평가를 하게끔 만드는 코드는 iterable 인 코드를 사용할 때만 지연 평가가 이뤄지는 걸까요?

상세내용

지연 평가가 성능상 빠르다는 것이 인터넷 검색을 통해서 알게 된 사실입니다.
다만 이러한 지연평가가 이뤄지는 코드들은 무엇이 있을까요?
제 생각엔 iterable을 사용하는 코드만 해당하는 상황인 것 같은데, 그 외에 다른 것도 있는지 알고 싶네요.

참고

제 생각에는 많은 데이터들을 필요하지도 않는데, 한번에 계산하는 상황이 단일 데이터 처리보다 성능에 영향을 미치기 때문에, 지연 평가가 주로 iterable 을 사용한 코드에서 이루어진다고 생각합니다. 그래서 iterable 이 아닌 lazy evaluation 을 사용하는 코드가 잘 주목받지 못한게 아닐까 조심스럽게 예측해봅니다. 그나마 생각나는 예시는 a && b 에서 a 가 참이면 b 문을 애초에 실행하지 않는 경우도 lazy evaluation 이 적용된 사례라고 생각합니다. 또한 반복되는 evaluation 을 한번만 계산하는 것도 lazy evaluation 에 포함된다고 알고 있습니다.