Powiedzmy, że fn(x)jest to czysta funkcja, która robi coś kosztownego, na przykład zwraca listę głównych czynników x.
Powiedzmy, że tworzymy zapamiętaną wersję tej samej funkcji memoizedFn(x). Zawsze zwraca ten sam wynik dla danych wejściowych, ale zachowuje prywatny bufor poprzednich wyników w celu poprawy wydajności.
Formalnie rzecz biorąc, jest memoizedFn(x)uważany za czysty?
Czy może jest jakaś inna nazwa lub termin kwalifikacyjny używany w odniesieniu do takiej funkcji w dyskusjach dotyczących PR? (tj. funkcja z efektami ubocznymi, które mogą wpływać na złożoność obliczeniową kolejnych wywołań, ale mogą nie wpływać na zwracane wartości).
funcx(){sleep(cached_time--); return 0;}zwraca tę samą wartość za każdym razem, ale będzie działać inaczej