Erlang Fun是收集垃圾吗?

发布于 2025-01-25 16:51:20 字数 251 浏览 3 评论 0原文

如果一个人在Erlang中生成有趣的,是否收集了垃圾?例如,要复制python,例如迭代器或读取流,一个人可能会为每个收益率生成fun s,这可能是很多。使用后不再需要使用过的fun s,因此最终收集了垃圾吗?

我想那就是说,是一个对象,例如#fun< erl_eval.xx.yyyyyyyyyyyy> a atom吗?

If one generates funs in erlang, are they garbage collected? For instance to replicate a python like iterator or to read a stream, one may generate funs for every yield -- potentially a great many. The used funs are no longer required after use, so are they eventually garbage collected?

I guess that is to say, is such an object as #Fun<erl_eval.xx.yyyyyyy> an atom?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

菩提树下叶撕阳。 2025-02-01 16:51:20

我想那就是,这是一个对象,例如#fun&lt; erl_eval.xx.yyyyyyyy&gt;
原子?

不,有趣的不是原子,而是一个乐趣是其自己的数据类型。在某个时候,您会在文档中看到以下Erlang数据类型的顺序:

number < atom < reference < fun < port < pid < tuple < map < nil < list < bit string

这意味着您可以写下这样的内容:

1> 12 < fun(X) -> X end. 
true

2> abc < fun(X) -> X end.
true

3> [1, 2, 3] < fun(X) -> X end.
false

I guess that is to say, is such an object as #Fun<erl_eval.xx.yyyyyyy>
an atom?

No, a fun is not an atom, rather a fun is its own data type. At some point, you will see the following ordering of erlang's data types in the docs:

number < atom < reference < fun < port < pid < tuple < map < nil < list < bit string

which means you can write things like this:

1> 12 < fun(X) -> X end. 
true

2> abc < fun(X) -> X end.
true

3> [1, 2, 3] < fun(X) -> X end.
false
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文