함수형 프로그래밍-지연 평가

지연 평가는 값이 필요할 때까지 표현식의 평가를 유지하는 평가 전략입니다. 반복적 인 평가를 피합니다.Haskell Lazy Evaluation을 기반으로하는 이러한 함수형 프로그래밍 언어의 좋은 예입니다.

Lazy 평가는 디스크에서 필요한 페이지 만로드하여 성능을 향상시키기 위해 Unix 맵 함수에서 사용됩니다. 나머지 페이지에는 메모리가 할당되지 않습니다.

Lazy Evaluation − 장점

  • 이를 통해 언어 런타임은 표현식의 최종 결과에 직접 연결되지 않은 하위 표현식을 삭제할 수 있습니다.

  • 임시 계산 및 조건을 삭제하여 알고리즘의 시간 복잡성을 줄입니다.

  • 이를 통해 프로그래머는 데이터 구조의 구성 요소를 초기화 한 후 순환 종속성이없는 한 순서없이 액세스 할 수 있습니다.

  • 자주 액세스하지 않는 데이터를로드하는 데 가장 적합합니다.

게으른 평가-단점

  • 최종 결과에서 필요할 때까지 언어 런타임이 하위 표현식 평가를 유지하도록합니다. thunks (지연된 개체).

  • 때로는 알고리즘의 공간 복잡성을 증가시킵니다.

  • 실행하기 전에 표현의 덩어리가 포함되어 있기 때문에 성능을 찾기가 매우 어렵습니다.

Python을 사용한 지연 평가

그만큼 rangePython의 메소드는 Lazy Evaluation의 개념을 따릅니다. 더 큰 범위의 실행 시간을 절약하고 한 번에 모든 값을 요구하지 않으므로 메모리 소비도 절약됩니다. 다음 예를 살펴보십시오.

r = range(10) 
print(r) 
range(0, 10) 
print(r[3])

다음과 같은 출력이 생성됩니다.

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
3