函数式语言的特性之一是函数没有副作用,因此相同的输入应该总是产生相同的输出。似乎这些语言可以很容易地从记忆化中受益匪浅。
但是,至少关于Erlang,函数调用没有默认的记忆。Erlang(以及据我所知的其他函数式语言)是否有任何特殊原因默认(或使用简单的触发器)做记忆,或者至少对记忆有明确的、良好的支持?
记忆化有什么本质上的问题吗?
我可以想象的一个原因是,通过记忆,你的内存占用会迅速增长。是的,但是 Erlang 已经在 VM 上运行并管理内存,所以我想它可以驯服缓存并防止它们很容易增长。
相关:
编辑: