腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(3821)
视频
沙龙
2
回答
如何将
尾
递归
方法
转
换为
更具
Scala
风格
的
函数
?
、
、
在我
的
代码中,我经常需要通过在内部模型上执行操作来处理列表。对于每个已处理
的
元素,将返回模型,然后将“新”模型用于列表
的
下一个元素。通常,我使用
尾
递归
方法
来实现这一点: def createCar(myModel: Model, record: Record[Any]): Either[CarError, Model] = {case e@Left(_) => e case Nil => Right(myModel) } 因为我一直在重复这种模式,
浏览 38
提问于2021-02-19
得票数 2
回答已采纳
1
回答
@tailrec会影响编译器优化吗?
、
、
、
我查看了,试图更好地理解
scala
中
的
@tailrec注释。 我不确定
的
是,注释是否也暗示编译器进行一些优化,还是只在标记不是
尾
递归
的
方法
时才用于警告?
更具
体地说,这个注释可能会以任何方式影响性能吗?例如,如果我不添加这个注释,编译器将将一个
尾
递归
函数
编译为非
尾
递归
函数
?
浏览 3
提问于2014-05-08
得票数 0
回答已采纳
1
回答
扇贝
尾
递归
、
这也许是个奇怪
的
问题但是..。这里有我
的
尾部
递归
解决方案
的
代码(至少我希望它是
尾<
浏览 5
提问于2017-10-06
得票数 0
回答已采纳
3
回答
这是
尾
递归
斐波纳契
函数
尾
递归
的
定义吗?
、
、
、
、
我在下面的F#定义中看到了一个连续传递
风格
的
斐波纳契
函数
,我一直认为它是
尾
递归
的
: let rec fib' k cont = |0 | 1 -> cont 1 fib' k id 在
Scala
中尝试等效
浏览 5
提问于2015-06-23
得票数 3
回答已采纳
1
回答
Idris使用
尾
调用优化吗?
、
我是从斯卡拉来
的
。
Scala
有
尾
调用优化( TCO ),如果编译器不能使用TCO优化
递归
函数
,我可以告诉编译器停止。例如,请参见 。zip:它包含一个不位于尾部位置
的
递归
调用 因为
函数
不直接返回对allLengths
的
调用。使用@tailrec,
Scala
通过将代码转
换为
不存在
递归
错误风险
的
命令式循环来编译代码。我相信,作为一个命令式循环,它也可能更快。由于
浏览 2
提问于2020-06-30
得票数 4
6
回答
将正常
递归
转
换为
尾
递归
、
、
、
我想知道是否有什么通用
方法
可以将foo(...) + foo(...)作为对
尾
递归
的
最后一次调用来转换“正常”
递归
。例如(
scala
): if (c == 0 || c == r) 1}
函数
语言将
递归
函数
转
换为
尾
调用等价物
的
浏览 4
提问于2013-09-22
得票数 21
回答已采纳
1
回答
如何在
函数
式程序中实现
尾
递归
、
、
、
、
之前必须完成fold-rite
的
递归
调用。fold-rite-cps kons knil (cdr clist) 现在fold-rite-cps是
尾
递归
的
但是,如果左折叠可以在恒定空间中运行(减去累加值),并且列表上
的
右折叠与其反向
的
左折叠相同,那么我想应该有一种
方法
来实现
尾
递归
右折叠,它也可以在恒定
浏览 2
提问于2015-03-11
得票数 3
1
回答
尾
递归
的
好处
、
、
、
如果我说得对,智能编译器会检测
尾
递归
函数
并将其转
换为
迭代
函数
。 因此,除了功能
风格
的
写作
的
好处(不变,功能独立等)
尾
递归
还有什么其他好处,如果可能的话,我应该考虑或编写迭代解决方案(在C#中)?
浏览 1
提问于2013-12-01
得票数 3
回答已采纳
1
回答
scala
中
的
递归
到尾
递归
、
、
n > 2) else } 我成功地重写了func2,但我不太清楚如何转换bool
函数
我考虑了匹配和案例,但我仍然需要调用func1来获得比较
的
结果。另一个问题是如何拆分func1本身中
的
双重
函数
调用。有什么暗示吗?
浏览 1
提问于2018-05-21
得票数 0
回答已采纳
1
回答
了解
如何将
递归
转
换为
蹦床
、
、
、
我最近读到过关于蹦床是一种消除尾部呼叫
的
方法
。我想把我
的
一个功能转换成使用蹦床
的
东西,但是我很难开始工作(我是从OO世界来
的
)。new Node(Y, splitVar, splitPoint, left, right) } 具体来说,如果我在'More()‘语句中有两个不同
的
递归
调用
浏览 5
提问于2014-04-01
得票数 0
回答已采纳
4
回答
这个
递归
函数
是如何自动转换成迭代
函数
的
?
、
我正在阅读
尾
递归
,如下所示 if(start == end) out << *start++ << endl; print(start, end,
浏览 3
提问于2011-08-29
得票数 4
回答已采纳
1
回答
当
scala
中没有
尾
递归
优化时堆栈溢出?
、
我正在自己从
scala
编译器源代码构建
scala
编译器。在编译器
的
源代码中,有许多
尾
递归
函数
/
方法
.从源代码构建
scala
编译器还需要编译编译器本身
的
源代码。如果在编译源代码期间添加选项-g:notailcalls来关闭
尾
递归
优化,则在运行构建
的
编译器时会出现statck溢出错误。总之,在一个具有许多
递归
调用
的
大型复杂
scala
浏览 2
提问于2015-09-04
得票数 1
回答已采纳
4
回答
Scala
支持
尾
递归
优化吗?
、
、
Scala
支持
尾
递归
优化吗?
浏览 0
提问于2009-11-05
得票数 65
回答已采纳
1
回答
Scala
会在没有蹦床
的
情况下在
尾
递归
中堆栈溢出,这是哪种语言管理
的
?
、
、
、
我正在使用
Scala
学习
函数
式编程,并看到了Runar
的
精彩演讲。是否有语言已经解决了这个问题:
尾
递归
消除(不使用蹦床或其他显式构造)我知道
Scala
可以将自调用
尾
递归
转
换为
循环,从而避免了堆栈
的
创建,但是也有
递归
,
scala
编译器不接受在3min-7m片段上显示
的
这里所追求
的
语言是功能性
的
,有编译时型系统,并且有惰性评
浏览 1
提问于2014-06-17
得票数 0
回答已采纳
2
回答
将
递归
函数
转
换为
尾
递归
、
我是新来
的
Haskell,还在努力理解一些基本知识。在编写
递归
函数
时,我自然地以
递归
或
尾
递归
的
方式编写它们,而不自觉地选择一个而另一个。我
的
问题是: 给定一个
尾
递归
函数
,是否有一种将其转
换为
<
浏览 0
提问于2013-02-24
得票数 2
回答已采纳
2
回答
使用多个
递归
调用将普通
递归
转
换为
尾
递归
、
、
、
我试图了解
如何将
各种
递归
函数
转
换为
尾
递归
函数
。我看过了斐波纳契和阶乘转换到尾
递归
的
许多例子,并且理解了这些例子,但是很难跳到一个结构有点不同
的
问题上。= { if(n==0) return 1}
如何将
其转
换为
尾</e
浏览 3
提问于2015-05-07
得票数 7
回答已采纳
2
回答
如何使用TailCalls?
、
、
如果我正确理解,可以使用
scala
.util.control.TailCalls来避免非
尾
递归
函数
的
堆栈溢出。API中给出
的
示例非常简单: def isEven(xs: List[Int]): TailRec[Boolean] =,如果您想在
递归
调用之后执行一些操作。我以某种方式运行了一个“天真”
的
析因实现。那么,我
的
问题是如何使用Tail
浏览 2
提问于2010-12-13
得票数 20
回答已采纳
2
回答
在
Scala
中,哪种迭代结构更适合使用?
、
、
最近,我开始用
Scala
编写大量
的
编程竞赛代码。(您可以看看这里
的
平台- )for (i <- 0 until M)(0 until M).foreachvar i = 0---@tailrecrecursion(i: Int): Unit = {
浏览 3
提问于2014-09-30
得票数 4
回答已采纳
3
回答
Scala
中
的
尾
递归
和返回语句
我在思考这里提出
的
问题之一()以及如何改进代码。不管怎样,我是这样想
的
: } else { } } } 第二个实现是否仍然是
尾
递归
的
我仍然不太清楚
函数</e
浏览 1
提问于2011-03-15
得票数 1
回答已采纳
1
回答
将“几乎尾部位置”中
的
递归
调用移动到真正
的
尾
位置
、
、
、
、
但是,可以将其转
换为
尾
递归
代码(尽管非常丑陋和冗长):triangle' = innerTriangle 0 True -> someAction x但我所指
的
只是“几乎是
尾
”调用,其中
递归
调用是返回值
的
一部分,但由于另一个
函数</em
浏览 4
提问于2016-03-09
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
每天学习一点儿算法-递归
我应该追求哪个,函数式编程还是面向对象编程?
从Java到Kotlin(五)
编写高性能 Java 代码的最佳实践
手把手介绍函数式编程:从命令式重构到函数式
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券