2024年Clojure调查中分享您的想法!

欢迎!请查看关于页面以获取更多关于该工作原理的信息。

0 投票
core.cache

一种缓存实现,它由一个在缓存未命中时执行某些操作的函数支持,可以作为任何现有缓存实现的前端。

4 个回答

0 投票

评论由:richhickey

它本身并不执行操作,它获取传过的键并返回一个值,然后缓存将该值与键关联并返回。棘手的地方在于当函数无法获取值时(可能像3个参数的get函数那样,进行一些协议通信),并且当缓存稍后再次被问到相同的键时,再次调用该函数。

0 投票

评论由:fogus

Rich,感谢您提供反馈。我相信我现在理解了这些微妙之处。

0 投票

评论由:seancorfield

@fogus,这是FnCache的基础,它似乎没有工厂或者文档/测试吗?这是“废弃”的代码了吗?

此外,似乎{{通过}}填补了这部分空白,因为它提供了一种在缓存未命中时运行函数的方法(虽然它仍然没有解决当函数无法获取值时的方法,对吗?)。

0 投票
参考:https://clojure.atlassian.net/browse/CCACHE-17(由 fogus 报告)
...