Memoización

[2]​ El término "memoization" fue utilizado por primera vez por Donald Michie en 1968[3]​ y deriva del latín memorandum ("que debe ser recordado"), ya que se describe como "convertir [el resultado de] una función en algo a ser recordado".Posteriores llamadas que usen los mismos valores obtendrán el resultado previamente almacenado, en vez de realizar todo el cálculo de nuevo.De esta forma se evitan todos los cálculos, excepto el realizado en la primera llamada.Una función solo puede ser memoizada si cumple la condición de transparencia referencial, es decir, que el resultado de realizar la llamada a la función produce el mismo efecto que reemplazar la llamada a la función por el valor devuelto.En otras palabras, que no se produzcan dentro de la función efectos colaterales.