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