函数式编程中大量用到递归,那么性能会有影响吗?


比如Erlang,Haskel这样的FP式的语言会用到大量的递归,哪怕编译器能部分转成尾递归,但是总感觉比非函数式语言更改变量状态要慢吧?
大家有什么意见吗?

erlang commonlisp

禽兽爱好者 12 years, 6 months ago

其实递归的问题就是堆栈的消耗。尾递归编译器也是优化成循环一样,不会有堆栈方面的问题。所以差别不大。
有很多人比较过了
写出正确的尾递归代码:
http://erlang-china.org/study/the-rig...
递归和尾递归汇编层面的差别
http://www.iteye.com/topic/476817

【哔——】 answered 12 years, 6 months ago

Your Answer