open:메모이제이션

메모이제이션

메모이제이션이란 단어는 영국의 인공지능 연구학자인 도널드 미치^Donald Michie^가 연속해서 사용되는 연산 값을 함수 레벨에서 캐시하는 것을 지칭하는 것으로 처음 사용하였다. 오늘날 메모이제이션은 함수형 프로그래밍 언어에서 흔히 내장된 기능이거나 쉽게 구현할 수 있는 기능이다.

순수함수란 부수효과가 없는 함수를 말한다. 불변 클래스 필드를 참고하지도 않고, 리턴 값 외에는 아무 값도 쓰지 않아야 하며, 주어진 매개변수에만 의존해야 한다. java.lang.Math의 모든 메서드가 순수함수의 좋은 예이다. 물론, 주어진 매개변수에 대해 항상 같은 값을 리턴하는 함수에 한해서만 캐시된 값을 재사용할 수 있다.

  • memoise() : 캐싱 형태의 클로저를 만든다.
  • memoizeAtMost() : 최대 크기를 가지는 캐싱 형태의 클로저를 만든다.
  • memoizeAtLeast() : 최소 크기를 가지고 크기를 자동 조정하는 캐싱 형태의 클로저를 만든다.
  • memoizeBetween() : 캐시 크기를 최대치와 최소치 사이에서 자동 조정하는 캐싱 형태의 클로저를 만든다.

  • open/메모이제이션.txt
  • 마지막으로 수정됨: 2021/12/16 14:37
  • 저자 127.0.0.1