有什么技术可以用完全不变的编程语言实现缓存?

时间:2018-08-03 19:20:32

标签: caching functional-programming immutability

我检查了Haskell,但即使在那儿,它们也在内部使用可变数据类型。

假设一切都是不可变的,有没有办法拥有缓存?

编辑:假设这是一个通用缓存,应该保留计算结果(例如从数据库中读取数据)

1 个答案:

答案 0 :(得分:0)

尽管我正在使用Scala,但我偶然发现了这篇文章,试图做与OP想要做的事情类似的事情。在Scala中,变量和对象可以是可变的,因此您可以随时使用可变类型。

但是,如果不是这样,则可以在Haskell中将State monadData.Map结合使用,以不可变数据为有状态的可变高速缓存建模。在Scala中,您可以将State monad in Cats与不可变的映射一起使用。