javascript/인동님 인프런강의 정리

섹션 4. 자바스크립트에서의 지연 평가

리셔시당 2018. 8. 1. 02:53
반응형

섹션 4. 자바스크립트에서의 지연평가 - 지연평가 부분 내용 정리 (https://www.inflearn.com/course-status-2/ )



다음의 value들이 있고 , 실행 해야하는 함수 들이 있고, 최종 결과를 얻는 함수 가 있다.


value val1 , val2 , val3 , val4 , val5 , val6


실행해야하는 함수 :  map , filter , map , reject 


최종 결과 함수 :  take(2)


원래의 엄격하게 평가 되는 방식

처음 map 에서 val1 에서 부터 val6 까지  평가 한다.

그 다음 filter 에서 또  val6 까지  평가 하면서 걸러낼 것 들만 걸러 낸다.

그 다음 map 에서 filter 에서 걸러낸 val 들을 다 평가 한다.

그 다음 reject 에서 마찬가지로 val들을 다 평가 하면서 걸러 낼 것만 걸러낸다.

최종 2개의 val만 남기고 종료 한다.


지연 평가 되는 방식

처음 map 에서 val1 평가 후 다음 함수인 filter  바로 평가 한다.

filter 함수에서 평가 결과false 이면 그 다음 val  처음 map 부터 다시 평가 하고,

filter 함수에서 평가 결과가 true 그 다음 map 에서 val을 평가 하고 

그 다음 함수인 reject 함수가 실행하고 그 다음 최종 take 에 담게 된다.


이런식 으로 val평가 하다가 val3 에서 최종 결과 함수 take(2)충족 이 되면  val4 평가 하지 않고 바로 종료 한다.