甚至在非功能性/非内存管理语言中也有大量功能性样式。有哪些技术可以处理类似中间垃圾的问题?清理惰性/缓存分配的内存。性能(因为如果您必须跟踪其进度以释放它(智能指针),则无法轻松地在不可变变量之间共享资源)
您可能对具有线性或唯一类型的编程语言感兴趣,这些语言可以管理资源(尤其是内存)。最近的例子包括ATS和LinearML。已经尝试过“基于区域的内存管理”(例如Cyclone),但它们还没有起飞--区域也允许(更早地)回收内存,但它们并不足够(例如,有些程序在使用基于区域的内存管理运行时会表现出无法接受的性能)。我认为这两种方案可以混合使用。回到您的问题,一些ATS程序可以在没有垃圾回收的情况下运行。(我不会说这样的程序是以“函数式”样式编写的,例如SML,而是以命令式和一阶函数式样式的混合方式编写的。)