たとえばfn(x)
、の素因数のリストを返すなど、高価な処理を行う純粋な関数だとしますx
。
そして、と呼ばれる同じ関数のメモバージョンを作成するとしmemoizedFn(x)
ます。特定の入力に対して常に同じ結果を返しますが、パフォーマンスを向上させるために以前の結果のプライベートキャッシュを維持します。
正式に言えば、memoizedFn(x)
純粋と見なされますか?
または、FPディスカッションでそのような関数を参照するために使用される他の名前または修飾用語はありますか?(つまり、後続の呼び出しの計算の複雑さに影響する可能性があるが、戻り値には影響しない可能性がある副作用を持つ関数。
funcx(){sleep(cached_time--); return 0;}
同じvalのたびに返されますが、別々に実行されます