Допустим, fn(x)
это чистая функция, которая делает что-то дорогое, например, возвращает список основных факторов x
.
И скажем, мы запоминаем версию той же самой функции memoizedFn(x)
. Он всегда возвращает один и тот же результат для заданного ввода, но поддерживает частный кэш предыдущих результатов для повышения производительности.
Формально говоря, memoizedFn(x)
считается чистым?
Или есть какое-то другое имя или квалифицирующий термин, используемый для обозначения такой функции в обсуждениях FP? (т.е. функция с побочными эффектами, которые могут повлиять на вычислительную сложность последующих вызовов, но могут не повлиять на возвращаемые значения.)
funcx(){sleep(cached_time--); return 0;}
каждый раз возвращает одно и то же значение val, но будет работать по-разному