腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
3
回答
尾部
调用
和
尾部
递归
有什么区别?
、
我知道尾
递归
是函数对自身
进行
尾部
调用
的一种特殊情况。但是我不明白
尾部
调用
和
尾部
递归
有什么不同。在具有实现TCO (
尾部
调用
优化)的“正确
尾部
递归
”语言中,如Scheme,这意味着
尾部
调用
和
尾部
递归
不会消耗堆栈或其他资源。在编译器不能优化尾
递归
语言中,程序可能会在堆栈之外运行并崩溃。在“正确的尾
浏览 0
提问于2012-08-21
得票数 19
1
回答
不
进行
尾部
调用
优化的尾
递归
、
、
假设我们有两个版本的
递归
函数,其中一个是尾
递归
函数。如果所使用的语言没有
尾部
调用
优化,那么使用函数尾
递归
有什么好处吗?据我所知,在没有优化的情况下,函数的每个版本(
尾部
和非
尾部
)将使用相同数量的堆栈框架(在大多数情况下)。我知道在某些情况下,例如Fibonacci函数,即使没有
尾部
调用
优化,使用
尾部
调用
也会更有效率,因为它避免了双重
调用
。但是,如果两个版本的函数都没有
进行<
浏览 14
提问于2021-03-01
得票数 0
2
回答
进行
递归
调用
,
尾部
递归
、
我有以下
递归
函数 trait SequenceGenerator[T] { case a => program(sequenceNumber(seed, a - 1)) } } 我想不出让sequenceNumber
尾部
递归
的方法
浏览 29
提问于2019-04-14
得票数 3
回答已采纳
3
回答
在Clojure中一起使用Default可选参数和recur
、
、
我可以设置默认参数并使用它
进行
常规
递归
,但由于某些原因,我不能使用recur
进行
尾部
优化……我一直收到一个java.lang.UnsupportedOperationException: nth not例如,对于
尾部
调用
Factorial,以下是有效的方法,但没有针对
尾部
调用
递归
进行
优化,并且对于大型
递归
堆栈将失败。编辑: 当我试图在
递归
调用
中取出(or opti
浏览 7
提问于2016-09-30
得票数 1
3
回答
为什么快速排序被称为
尾部
递归
算法?
、
、
、
、
我知道什么是
尾部
递归
算法作为。然而,我正在研究这个,在18:30秒,教授说这是
尾部
递归
算法。我无法连接这是如何
进行
尾
递归
的。我们没有在
递归
的任何一步
进行
计算,或者我们是在做计算?你能解释一下为什么这被引用为
尾部
递归
算法的一个例子吗?请将你的答案建立在这样一个前提之上:我知道
递归
算法是什么。我不清楚的部分是为什么它被称为尾
递归
?
浏览 3
提问于2012-08-08
得票数 6
1
回答
chapel是否实现了
尾部
调用
优化?
、
、
Chapel支持
递归
函数
调用
,但它是否支持
尾部
调用
优化,以便
尾部
递归
不使用额外的堆栈框架?
浏览 10
提问于2016-09-08
得票数 3
2
回答
在实现TCO的语言中限制尾
递归
中的
递归
深度?
、
在实现
尾部
调用
优化的语言中,
递归
深度的理论/实践限制是什么?(请假设
递归
函数是正确的
尾部
调用
)。 我的猜测是,理论上的限制是无,因为没有
递归
过程,即使它是
递归
过程。
浏览 1
提问于2009-05-15
得票数 0
回答已采纳
2
回答
是否可以将使用TailCall .net操作码的F#函数视为尾
递归
函数
、
、
、
既然.net有操作码,这能用来判断一个F#函数是否真的是尾
递归
的吗? 如果这是真的,有没有人做了一个识别
尾部
和非
尾部
函数的VS插件?
浏览 0
提问于2012-03-14
得票数 4
回答已采纳
2
回答
使用尾
递归
实现Tak函数
、
、
、
是否有可能实现
尾部
递归
在C/C++中的一种方式,以便使gcc/g++可以执行
尾部
递归
优化? 我不确定嵌套的
递归
函数
调用
是否会使编译器感到困惑。
浏览 0
提问于2013-11-14
得票数 0
1
回答
递归
函数是否有部分
尾部
调用
优化?
、
、
、
如何在一个不是完全尾
递归
的函数上对g++
进行
尾部
调用
优化?== nullptr) return; cout << n->datum;} 这是foo(n->left)不是尾
递归
的,但是foo(n->right)是尾
递归
的。有没有办法对此
进行
优化?
浏览 1
提问于2016-12-04
得票数 1
2
回答
java是否支持并优化了尾
递归
调用
?
、
、
、
、
假设我得到了一个
尾部
递归
的
递归
函数。我想知道这个函数是否会被实现为
递归
,在堆栈上增长,还是会被更改为循环(因为它是一个尾
递归
函数)?我刚刚读到Scala会检测到这类
调用
并对其
进行
优化,但这是Scala独有的还是一般意义上的JVM?
浏览 85
提问于2013-12-29
得票数 26
回答已采纳
2
回答
LLVM
尾部
调用
优化
、
、
以下是我对事物的理解:在使用fastcc、GHC或HiPE
调用
约定时,LLVM实现了
递归
尾部
调用
优化。我有几个问题:让我们考虑这个愚蠢的例子: if (x <= 0)
浏览 0
提问于2013-09-04
得票数 7
回答已采纳
3
回答
方案
递归
或迭代
、
、
(cdr l))))) 谁能告诉我这是一个迭代过程还是
递归
过程?我猜它是迭代的,但我不确定,也不知道如何解释我
浏览 1
提问于2015-01-17
得票数 0
1
回答
有人能像我五岁一样解释OCaml尾巴回溯吗?
我不能把我的大脑绕在
尾部
递归
,特别是在ocaml中,也不能解释为什么在结尾
调用
" in“函数。我说的是最基本的
尾部
递归
函数。
浏览 2
提问于2022-02-14
得票数 1
回答已采纳
2
回答
除了
尾部
递归
之外的
尾部
调用
优化?
、
、
、
、
除了
尾部
递归
之外,是否还有其他可能的
尾部
调用
优化?我一直在努力寻找或想出一种不涉及
递归
的方法,但没有成功。有可能吗?有什么例子吗?
浏览 4
提问于2013-08-04
得票数 5
2
回答
ES6尾
递归
优化堆栈溢出
、
、
、
、
在阅读了es6中
递归
尾部
调用
优化的之后,我一直在尝试重新创建他详细描述的
递归
阶乘函数的“零堆栈”执行。使用Chrome调试器在堆栈帧之间单步执行,我发现没有
进行
尾部
优化,并且为每个
递归
创建了一个堆栈帧。 我还尝试通过在没有调试器的情况下
调用
函数,而是将100000传递给阶乘函数来测试优化。
浏览 0
提问于2017-03-14
得票数 49
回答已采纳
3
回答
如何通过尾
递归
检查Scheme中一个数是否为2的幂?
(/ n 2))))) 这段代码是否正确,以及如何使用尾
递归
编写相同的函数?
浏览 0
提问于2011-06-27
得票数 1
回答已采纳
1
回答
Python尾
递归
"Hack“使用While循环
、
、
我见过一些使用while True循环让Python
进行
尾部
调用
优化的例子。例如。return acc我很想知道这种技术是否适用于Python中的所有/大多数
递归
算法,以及在以这种方式优化
递归
算法时是否有任何缺点或“陷阱”需要注意?
浏览 2
提问于2020-09-08
得票数 2
2
回答
就堆栈使用效率和时间而言,哪个函数是最好的
、
、
我尝试了各种输入,并对其
进行
了分析,但我仍然不知道哪个函数在堆栈使用效率和时间效率方面是最好的。请帮帮我。
浏览 3
提问于2009-07-22
得票数 6
回答已采纳
1
回答
有没有办法告诉scala编译器不要做
尾部
调用
优化?
仅出于实验目的,我想停止编译器对尾
递归
函数
进行
尾部
调用
优化。有没有办法做到这一点?
浏览 3
提问于2021-04-22
得票数 1
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
腾讯会议
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券