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