오늘 알게된 지식 3 (지연평가)

hojoon·2023년 8월 12일
0

자바스크립트

목록 보기
10/14

lodash의 지연 평가

시작전에 우선 함수형 프로그래밍 부터 보자( lodash 재밌음 )

컴퓨터 프로그래밍에서 지연 평가(Lazy Evaluation)는 함수형 프로그래밍에서 자주 사용되는 개념이다.

동작 원리

우선 지연 평가와 엄격한 평가의 두가지 동작 방식을 알아야 한다.

엄격한 평가

  • 일반적인 평가 방식인데, 평가 흐름 자체가 왼쪽에서 오른쪽으로 흐른다.

오늘 알게된 지식 시리즈이기 때문에 간단하게만 적어봄.

const arr = [1,2,3,4,5,6,7,8,9,10] ;

const result = arr.map((i) => i + 10).filter((i)=> i % 2).slice(2,0); 

엄격한 평가의 연산 횟수

  • 22번

지연평가의 연산 횟수

  • 10번

지연평가의 연산 횟수가 10번인 이유

  1. 엄격한 평가의 흐름과는 반대로 위에서 아래로 흐른다.
  2. 배열의 첫번째 요소 '1'을 10을 더하고 2로 나눈다.
  3. 11은 홀수 -> filter연산과 splice 연산까지(lodash에선 take)
    4 배열의 두번째 요소 '2'에 대해서 연산을 한다.(10을 더함)
  4. 12는 홀수 -> filter 조건에 대한 연산을하고 짝수이기 때문에 splice연산을 하지 않음(필요없기 때문에)
  5. 배열의 세번째, 네번째 '3', '4' 도 마찬가지로 연산함

총 10번의 연산횟수를 가진다.

너무 대충 작성해서 다음에 함수형 프로그래밍과 rxJs 글을 쓸때 자세하게 작성한다.!

profile
프론트? 백? 초보 개발자의 기록 공간

0개의 댓글