我在以下问题上看到了这句话:What is a good functional language on which to build a web service?
这是真的?如果是这样,那么创建此基本限制的JVM是什么?
最佳答案
这篇文章:Recursion or Iteration?可能有帮助。
简而言之,由于安全模型以及始终需要可用的堆栈跟踪,因此在JVM中很难进行尾部调用优化。理论上可以支持这些要求,但是可能需要一个新的字节码(请参阅John Rose's informal proposal)。
Sun bug #4726340中还有更多讨论,评估(从2002年开始)在此结束:
当前,Da Vinci Machine项目中正在进行一些工作。尾部调用子项目的状态列为“原始80%”;它不太可能进入Java 7,但我认为它在Java 8中很有可能。