首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Erlang函数没有默认回忆录?

为什么Erlang函数没有默认回忆录?
EN

Stack Overflow用户
提问于 2013-08-13 15:42:34
回答 1查看 649关注 0票数 3

功能语言的一个特性是函数没有副作用,因此相同的输入应该总是产生相同的输出。这些语言似乎可以很容易地从回忆录中获益。

但是,至少对于二郎,没有默认的函数调用回忆录。据我所知,Erlang (和其他函数式语言)默认进行回忆录(或使用简单的触发器),或者至少有明确的、良好的回忆录支持,有什么特别的原因吗?

回忆录本身有什么问题吗?

我可以想象的一个原因是,回忆录你的记忆足迹可以快速增长。是的,但是Erlang已经在VM上运行并管理内存,所以我想它可以很容易地驯服缓存并阻止它们的增长。

相关

编辑

EN

回答 1

Stack Overflow用户

发布于 2013-08-14 10:43:27

在这个问题上有许多错误的假设。

函数语言的一个特性是,函数没有副作用。

不正确,只有“纯功能语言”才有这样的约束。Erlang并不是纯功能性的。它允许在功能上任意产生副作用。

据我所知,Erlang (和其他函数式语言)默认进行回忆录(或使用简单的触发器),或者至少有明确的、良好的回忆录支持,有什么特别的原因吗?

没有语言(至少非玩具语言)在默认情况下实现所有函数调用的回忆录。为什么?随之而来的是大量的空间泄漏。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18213527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档