Запоминаемые функции - это функции, которые запоминают найденные значения. Посмотрите в центр док-кода, чтобы узнать об этом в Mathematica, если это необходимо.
Предположим, что у вас есть следующее определение
f[0] = f[1] = 1
f[x_] := f[x] = f[x - 1] + f[x - 2]
в одном из ваших пакетов. Пользователь может загрузить пакет и сразу же запросить f [1000]. Это вызовет сообщение об ошибке $RecursionLimit:: reclim и прервется. Даже если пользователь затем пытается что-то меньшее, скажем f [20], к настоящему времени определение f является коррумпированным, и результат не является хорошим. Конечно, разработчик пакета может увеличить лимит рекурсии и предупредить пользователя, но мой вопрос
Как вы можете улучшить определение f, чтобы, если пользователь запрашивает f [1000], он/она получает ответ без каких-либо проблем? Меня интересует способ улавливать вход пользователя, анализировать его и предпринимать любые шаги для оценки f [1000].
Я легко могу представить, что можно изменить предел рекурсии, если входной сигнал больше 255 (а затем вернет его на исходный уровень), но то, что я действительно хотел бы увидеть, - это если есть способ f, чтобы узнать, сколько значений оно "знает" (fknownvalues) и принять любые значения ввода <= fknownvalues + $RecursionLimit без проблем или увеличить значение $RecursionLimit, если вход выше.
Спасибо за помощь