Functional programming 是否有任何函数式语言不支持';我们没有垃圾收集

Functional programming 是否有任何函数式语言不支持';我们没有垃圾收集,functional-programming,unmanaged-memory,Functional Programming,Unmanaged Memory,甚至是非功能性/非内存管理语言中功能性很强的样式。 有什么样的技术来处理中间垃圾之类的问题?懒散/thunk分配内存后的清理。性能(因为如果您必须跟踪不可变变量的进度以取消分配它(智能指针?)我能想到的唯一相关的事情是如何通过区域分析消除垃圾收集的重要部分。理论上,应该可以实现一个编译器,将不可管理和未注释的指针泄漏视为错误,然后可以在en依赖手动内存管理设置。您可能对具有线性或唯一性类型的编程语言感兴趣,这些语言可以管理资源(特别是内存)。最近的示例:和 有人尝试过“基于区域的内存管理”(例如

甚至是非功能性/非内存管理语言中功能性很强的样式。
有什么样的技术来处理中间垃圾之类的问题?懒散/thunk分配内存后的清理。性能(因为如果您必须跟踪不可变变量的进度以取消分配它(智能指针?)

我能想到的唯一相关的事情是如何通过区域分析消除垃圾收集的重要部分。理论上,应该可以实现一个编译器,将不可管理和未注释的指针泄漏视为错误,然后可以在en依赖手动内存管理设置。

您可能对具有线性或唯一性类型的编程语言感兴趣,这些语言可以管理资源(特别是内存)。最近的示例:和

有人尝试过“基于区域的内存管理”(例如Cyclone),但还没有成功——区域也允许(早期)内存回收,但还不够(例如,有些程序在使用基于区域的内存管理运行时,将表现出不可接受的性能).我认为这两个计划可能是混合的

回到你的问题,一些ATS程序可以在没有垃圾收集的情况下运行。(我不会说这些程序是以“函数式”风格编写的,比如SML,而是以命令式和一阶函数式的混合方式编写的。)