지연평가 - ChoDragon9/posts GitHub Wiki
_.go(
_.range(100),
_.map(val => val * val),
_.filter(val => val % 2),
_.take(5),
console.log
);
엄격한평가 모든 로직을 순서에 맞게 평가하는 것 위 코드로 예를 들면
- 배열 100개 생성
- map loop 100회
- filter loop 100회
- take 5개
이와 같은 순서로 동작합니다.
지연평가는 loop가 실행될 때마다 수집하기 -> 거르기 -> 찾아내기 함수를 순차적으로 실행하여 필요한 동작만 하는 것입니다. 위 코드로 예를 들면
- 배열 100개 생성
- [1] map -> filter -> take => 수집됨
- [2] map -> filter => 수집안됨
- [3] map -> filter -> take => 수집됨
- [4] map -> filter => 수집안됨
- ...반복
- 5개 수집 완료
이와 같은 순서로 동작합니다.