腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9297)
视频
沙龙
5
回答
是否存在不能使用
尾
递归编写的问题?
、
、
尾
递归是函数式
语言
中一种重要的性能优化策略,因为它允许递归调用消耗
常量
堆栈(而不是O(n))。 有没有什么问题根本不能用
尾
递归风格来编写,或者总是可以把一个简单的递归函数转换成一个
尾
递归函数?
浏览 0
提问于2009-12-11
得票数 53
回答已采纳
1
回答
如何在函数式程序中实现
尾
递归
、
、
、
、
fold-rite-cps kons knil (cdr clist) 现在fold-rite-cps是
尾
递归的但是,如果左折叠可以在恒定空间中运行(减去累加值),并且列表上的右折叠与其反向的左折叠相同,那么我想应该有一种方法来实现
尾
递归右折叠,它也可以在恒定空间中运行。如果是这样,我该怎么做呢?更具一般性的是,有什么方法可以将非
尾
递归函数转换为
尾
递归函数,最好是可以在
常量
空间中运行的函数
浏览 2
提问于2015-03-11
得票数 3
3
回答
(++)运算符和(:)运算符与懒惰求值
、
RealWorldHaskell第8章这个函数不是
尾
递归的,它说答案依赖于Haskell非严格(懒惰(++)操作符的简单定义如下所示,它不是
尾
递归的。( ++ ) ::a -> a -> ++ ys =x:(xs ++ ys) [] ++ ys = ys 在一种严格的
语言
中,如果我们计算"foo" ++ "bar",整个列表将被构造
浏览 6
提问于2011-06-03
得票数 6
4
回答
尾
递归在
C
语言
上真的很强大吗?
、
我认为在函数式编程
语言
中非常有用。那
C
呢? 然后,程序可以跳到被调用的子例程。产生这样的代码而不是标准的调用序列称为
尾
呼叫消除。
浏览 5
提问于2016-02-02
得票数 0
回答已采纳
2
回答
为什么像
C
,Pascal这样的
语言
不能实现
尾
递归?
、
、
、
、
其中一个提到: 如果堆栈用于过程参数、局部变量和返回地址,我无法理解为什么不能实现
尾
递归。
浏览 2
提问于2014-12-22
得票数 4
回答已采纳
1
回答
尾
叫优化的不同实现
、
、
我听说过大学里的一些人讨论了ML中的
尾
呼叫优化,就好像它是一个特殊版本的
尾
呼叫优化一样。在这些
语言
中,tco的ML (SML/F#)实现与其他
语言
(如
C
++和Haskell )的实现有很大不同吗?
浏览 0
提问于2015-04-05
得票数 2
回答已采纳
2
回答
C
#做
尾
递归吗?
、
可能重复: 我找不到任何文件告诉我是否有。
浏览 13
提问于2011-08-18
得票数 36
2
回答
尾
呼叫优化失败时的闭包警告/错误
、
在Scala2.8.x中,添加了一个新的注释(@tailrec),如果编译器不能对带注释的方法执行尾调用优化,则会产生编译时错误。编辑:在阅读了我的问题的第一个答案(谢谢,Bozhidar )并在Clojure文档中进一步搜索之后,我看到了以下内容:按顺序计算exprs,然后并行地将递归点的绑定重新绑定到exprs的值。如果递归点是fn方法,则重新绑定params。如果递归点是循环,则重新绑定循环绑定。执行然后跳回递归点。重新出现的表达式必须与递归点的一致性完全匹配。特别是,如果递归点是变量fn方法的顶部,则不需要收集re
浏览 2
提问于2010-04-26
得票数 9
回答已采纳
2
回答
在锈蚀中,
尾
递归什么时候得到保证?
、
、
C
语言
int foo(...) {} }(这是一个很小的例子,真实的一个更复杂,但它抓住了主要的想法)是否保证Rust编译器将应用
尾
递归例如,如果我们声明了一些需要像std::Vec一样销毁的变量,那么它是在递归调用(它允
浏览 0
提问于2019-12-09
得票数 49
回答已采纳
1
回答
部分
尾
递归函数还能获得完全
尾
递归函数的优化优势吗?
、
、
、
我意识到这个问题的答案对于不同的
语言
可能是不同的,而我最感兴趣的
语言
是
C
++。如果因为不能以
语言
不可知的方式回答而需要更改标记,请随意。有没有可能一个函数是部分
尾
递归的,并且仍然可以获得
尾
递归所带来的任何好处呢?据我所知,
尾
递归不是进行完整的函数调用,而是编译器对函数进行优化,只需将本地参数更改为新参数并跳到函数的开头即可。3 + example(arg - 1) # isn't tail recursive because 3 is added to
浏览 5
提问于2011-08-23
得票数 1
回答已采纳
6
回答
将正常递归转换为
尾
递归
、
、
、
.) + foo(...)作为对
尾
递归的最后一次调用来转换“正常”递归。例如(scala): if (
c
== 0 ||
c
== r) 1} 一种简单的方法是将非
尾
递归函数封装在Trampoline monad中。
浏览 4
提问于2013-09-22
得票数 21
回答已采纳
2
回答
为什么在
C
语言
中“字符串”被认为是“
常量
”?
、
、
为什么“字符串”在
C
语言
中属于
常量
范畴?尽管它没有与其相关联的数值,但与“字符
常量
”不同的是,“字符
常量
”具有与其相关联的固定积分值(ASCII值)。在
C
语言
中,字符串在什么引用中被视为
常量
?
浏览 3
提问于2016-03-11
得票数 0
回答已采纳
1
回答
在惰性评估的上下文中,什么时候需要
尾
递归?
、
、
、
、
如果是这样的话,这是否意味着在惰性评估的上下文中不需要
尾
递归?具体来说,让我们看看下面的示例: (if (number?a) (lazy-map foo a))) 这个函数可以很容易地转换成
尾
递归函数.然而,如果是这样的话,我们将失去懒惰的优势-评估。实际上,当输入是相当大的列表(或无限)时,这个非
尾
递归函数需要消耗许多堆栈吗?我不这样认为。那么,是否有充分的理由使用tail-recursion而不是惰性评估?
浏览 3
提问于2016-01-08
得票数 3
1
回答
递归问题
、
、
、
这可以用Java和
C
来完成吗?
浏览 0
提问于2016-01-15
得票数 -2
回答已采纳
7
回答
为什么.NET/
C
#没有针对尾部调用递归进行优化?
、
、
、
我找到了关于哪种
语言
优化
尾
递归的。为什么
C
#不尽可能地优化
尾
递归?
浏览 8
提问于2009-01-29
得票数 120
回答已采纳
2
回答
Ruby中gsub的非正则化版本
、
、
、
我正在寻找gsub的一个版本,它不尝试将其输入解释为正则表达式,并且使用类似于
C
的普通转义字符串。
浏览 2
提问于2013-03-28
得票数 0
回答已采纳
3
回答
关于
尾
递归的课程是否可以转移到不为其优化的
语言
?
、
、
、
、
在这本书的过程中,“您可以通过将递归过程写成
尾
递归来优化递归过程”的课程一遍又一遍地向读者灌输。事实上,我已经有将近100页了,而且还没有看到一个for或while循环--都是递归的。据我所知,优化
尾
调用的方式可以有效地将
尾
递归过程转换为迭代过程,这在现代编程
语言
中并不常见。这给了我一个问题:如果我使用的是一种没有对
尾
递归进行优化的
语言
,我如何应用SICP教授的这些课程?
浏览 0
提问于2020-11-15
得票数 2
回答已采纳
1
回答
从IVsHierarchy获取项目信息
、
、
我已经掌握了一个IVsHierarchy对象,我想要的信息是项目类型(WinForm、WPF、ASP等)、
语言
(
C
#、VB、F#等)。以及调试配置(调试、发布、x86、amd64等)。例如,可能的
语言
值为vsCMLanguageIDL微软IDL
常量
。vsCMLanguageMC视觉
C
++
常量
vsCMLanguageVC视觉
C
浏览 1
提问于2014-01-17
得票数 1
回答已采纳
3
回答
我可以强制编译器优化特定的方法吗?
、
、
、
IL_0008: ldarg.1 IL_000A: conv.i8 IL_000
C
:0006: ceq IL_0009: ldloc.1 IL_000
C
:IL_0015: conv.i8 IL_0017: call UserQuery.
浏览 3
提问于2012-03-13
得票数 16
回答已采纳
1
回答
Lisp如何从递归过程生成迭代过程?
、
、
、
product) max-count)))过程和过程之间的区别可能令人困惑的一个原因是,大多数公共
语言
的实现(包括Ada、Pascal和
C
)的设计方式使得对任何递归过程的解释消耗了随过程调用次数而增加的内存,即使所描述的过程原则上是迭代的。问:我理解所涉及的原则(即什么),但我仍然不明白Lisp解释器/编译器如何从递归函数生成迭代过程,能够使用
常量
空间计算迭代过程,以及为什么大多数其他
语言
不能这样做。
浏览 0
提问于2014-02-03
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
c语言-define与常量
C语言const的用法详解,C语言常量定义详解
入门C语言中的数组,字符串常量与指针
什么尾酒排序算法?详述鸡尾酒排序算法的原理?用c语言实现鸡尾酒排序算法。内附完整代码。
一种C+实现格式化文本解析的方法
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券