Мне было интересно... почему memoization не предоставляется изначально как функция языка на любом языке, о котором я знаю?
Изменить: чтобы уточнить, я имею в виду, что язык предоставляет ключевое слово для указания данной функции как memoizable, а не для того, чтобы каждая функция автоматически запоминалась "по умолчанию", если не указано иное. Например, fortran предоставляет ключевое слово PURE для указания конкретной функции как таковой. Я думаю, что компилятор может воспользоваться этой информацией для memoize вызова, но я игнорирую, что произойдет, если вы объявите PURE функцией с побочными эффектами.