본문 바로가기

지연 평가

[JS: ES6+] 제너레이터/이터레이터 프로토콜로 구현하는 지연 평가 (2) #1 결과를 만드는 함수 reduce, take reduce를 통해 구현하는 함수 먼저, 객체로부터 url의 queryString을 만들어내는 함수를 만들어 볼 것이다. const queryStr = obj => obj; console.log(queryStr({ limit : 10, offset: 10, type: 'notice' })); // {limit: 10, offset: 10, type: "notice"} 이제 key와 value를 추출하는 코드를 작성해 볼 것이다. const queryStr = obj => go( obj, Object.entries, // key, value를 entries로 변환 map(([k, v]) => `${k}=${v}`), // 구조분해를 통해 key와 value를.. 더보기
[JS: ES6+] 제너레이터/이터레이터 프로토콜로 구현하는 지연 평가 (1) #1 range와 느긋한 L.range 지연 평가의 정의 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과 값이 필요할 때까지 계산을 늦추는 기법이다. 지연 평가는 필요 할 때까지 계산을 늦추면서 불필요한 계산을 줄일 수 있다. 이러한 지연 평가는 3가지 이점을 가지고 있다. 불필요한 계산을 하지 않으므로 빠른 계산이 가능하다. 무한 자료 구조를 사용 할 수 있다. 복잡한 수식에서 오류 상태를 피할 수 있다. 그럼 이제부터 일반적인 평가와 지연평가를 비교해보록 하자. range 와 L.range 비교 숫자하나를 받고 그 숫자의 크기만한 배열을 리턴 후에 그 값들을 더하는 range함수를 선언해볼 것이다. const add = (a, b) => a + b; const rang.. 더보기