我检查了Haskell,但即使在那儿,它们也在内部使用可变数据类型。
假设一切都是不可变的,有没有办法拥有缓存?
编辑:假设这是一个通用缓存,应该保留计算结果(例如从数据库中读取数据)
答案 0 :(得分:0)
尽管我正在使用Scala,但我偶然发现了这篇文章,试图做与OP想要做的事情类似的事情。在Scala中,变量和对象可以是可变的,因此您可以随时使用可变类型。
但是,如果不是这样,则可以在Haskell中将State monad与Data.Map结合使用,以不可变数据为有状态的可变高速缓存建模。在Scala中,您可以将State monad in Cats与不可变的映射一起使用。