Welcome! Please see the About page for a little more info on how this works.

0 votes
in core.cache by

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.

4 Answers

0 votes
by

Comment made by: richhickey

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.

0 votes
by

Comment made by: fogus

Thanks for the feedback Rich. I believe I understand the subtleties now.

0 votes
by

Comment made by: seancorfield

@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?).

0 votes
by
Reference: https://clojure.atlassian.net/browse/CCACHE-17 (reported by fogus)
...