在对函数式语言有一定的经验之后,我开始在Java中更多地使用递归-但是该语言似乎只有约1000个相对较浅的调用堆栈。有没有办法使调用堆栈更大?就像我可以像在Erlang中那样进行数百万次调用的函数吗?当我处理Project Euler问题时,我越来越注意到这一点。谢谢。
3 回答

波斯汪
TA贡献1811条经验 获得超4个赞
是否使用尾部递归由JVM决定-我不知道它们中是否有尾递归,但是您不应该依赖它。特别是,改变堆栈大小将非常很少是做正确的事,除非你有你需要多少递归级别实际上使用了硬限制,你知道每个会到底有多少堆栈空间占用。很脆弱
基本上,您不应使用不是为它构建的语言的无限制递归。恐怕您将不得不使用迭代。是的,有时候可能会有点痛苦:(
添加回答
举报
0/150
提交
取消