将延续传递风格称为函数式编程语言的救援有意义吗



我不确定以下语句是否有意义:

  1. 在函数式编程语言中调用非尾部递归函数通常会由于不断增长的调用堆栈而产生空间效率问题

  2. 通过将函数调用转换为连续传递样式,每个非尾部递归函数都可以系统地转换为尾部递归函数。

  3. 连续传递风格是函数式编程语言的救星,因为如果没有它,函数式编程的代码库中流行的非尾部递归函数必然会导致显著的性能问题。

这是完全错误的。虽然每一个函数都可以系统地转换为使用连续传递方式的函数,但这并不能解决算法的空间效率问题。空间可以在延续闭包中分配,而不是在执行堆栈上分配,但这没有什么区别。

(此外,这与语言的功能性与否无关。(

最新更新