A cache implementation that is backed by a function that performs some action on a cache miss could serve as a front for any of the existing cache impls.
It doesn't perform an action per se, it gets a passed key and returns a value, which the cache then caches (associates with the key) and returns. The tricky bit is when the function can't get a value. There needs to be some protocol for communicating that (could be like 3 arg get), and, should the cache be asked again later for the same key, calling the fn again.
Thanks for the feedback Rich. I believe I understand the subtleties now.
@fogus is this the basis for FnCache which doesn't seem to have a factory or be documented/tested? Is that just "dead" code now?
Also, it seems that through fills some of this gap since it provides for functions to run on a cache miss (although it still doesn't address when the function can't get a value, right?).