腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
2
回答
在
Scala
中
实现
递归
代码
,
尾部
递归
、
我想将
代码
改为尾
递归
而不溢出堆栈表达式是标签或树的ADT def combine[A](expression: Expression, runners: List[Runner[A]]): Runneror(reduceExpression(right)) } reduceExpression(expression) } 我怎样才能把上面的
代码
变成一个尾
递归
代码
呢
浏览 28
提问于2020-12-22
得票数 1
回答已采纳
2
回答
java是否支持并优化了尾
递归
调用?
、
、
、
、
假设我得到了一个
尾部
递归
的
递归
函数。我想知道这个函数是否会被
实现
为
递归
,
在
堆栈上增长,还是会被更改为循环(因为它是一个尾
递归
函数)?我刚刚读到
Scala
会检测到这类调用并对其进行优化,但这是
Scala
独有的还是一般意义上的JVM?
浏览 85
提问于2013-12-29
得票数 26
回答已采纳
3
回答
java
中
的尾
递归
这是一个展示尾
递归
的好例子吗?public printName(){ printName();我不打算在现实生活
中
这样做,但我把这个作为我考试的一个例子
浏览 0
提问于2012-07-21
得票数 4
1
回答
`
scala
.util.control.TailCalls.TailRec`和`
scala
.annotation.tailrec`有什么区别?
、
scala
标准库似乎提供了两种方法来确保
递归
函数不会导致堆栈溢出。 一个是@tailrec注释,据说它会导致编译器做一些不同的事情,或者特别努力地尝试尾
递归
。
浏览 0
提问于2017-05-03
得票数 1
回答已采纳
1
回答
Idris使用尾调用优化吗?
、
Scala
有尾调用优化( TCO ),如果编译器不能使用TCO优化
递归
函数,我可以告诉编译器停止。例如,请参见 。使用@tailrec,
Scala
通过将
代码
转换为不存在
递归
错误风险的命令式循环来编译
代码
。我相信,作为一个命令式循环,它也可能更快。
在
Brady的
中
,他使用了以下示例allLengths [] = [] allLengths (x :: xs) = lengt
浏览 2
提问于2020-06-30
得票数 4
3
回答
尾部
调用和
尾部
递归
有什么区别?
、
我知道尾
递归
是函数对自身进行
尾部
调用的一种特殊情况。但是我不明白
尾部
调用和
尾部
递归
有什么不同。
在
具有
实现
TCO (
尾部
调用优化)的“正确
尾部
递归
”语言中,如Scheme,这意味着
尾部
调用和
尾部
递归
不会消耗堆栈或其他资源。在编译器不能优化尾
递归
语言中,程序可能会在堆栈之外运行并崩溃。
在
“正确的尾
递归
”语言中,我认
浏览 0
提问于2012-08-21
得票数 19
5
回答
JVM会阻止
尾部
调用优化吗?
、
、
、
我在这个问题上看到了这句话: 这是真的吗?
浏览 51
提问于2008-09-19
得票数 99
回答已采纳
4
回答
如何编写惯用的
Scala
快速排序函数?
我最近回复了一个,试图用
Scala
编写一个快速排序函数,我
在
某个地方看到了类似下面的
代码
。::: pivot :: qsort(tail.filter(_ >= pivot))} 我的回答受到了一些建设性的批评,指出列表对于快速排序来说是一个糟糕的集合选择,其次,上面的列表不是尾
递归
的我试着用
尾部
递归
的方式重写上面的
代码
,但是没有太多的运气。有没有可能写一个
尾部
递归
快速排序?或者,如果不是,如何以函数式风格完成?另外,
浏览 2
提问于2010-06-03
得票数 6
回答已采纳
4
回答
尾部
递归
与头部经典
递归
、
听着
Scala
的课程和解释,我经常听到:“但在实际
代码
中
,我们使用的不是
递归
,而是尾
递归
”。这是否意味着,
在
我的真实
代码
中
,我不应该使用
递归
,而应该使用
尾部
递归
,这非常类似于循环,并且不需要史诗短语“为了理解
递归
,首先需要理解
递归
”。我说错了吗?这种“经典的”
递归
仅仅
浏览 10
提问于2013-11-10
得票数 15
3
回答
Scala
中
的尾
递归
快速连续样式
、
、
、
、
我正试图
在
Scala
中
编写一个尾
递归
快速排序,它可以通过构建一个延续来工作,而不需要使用蹦床。,上面的
实现
是以至少4000000个元素的随机序列工作的,但我对此表示怀疑。我们只看
代码
就知道了吗?它使用@tailrec进行编译,但是对sort(greater)的调用似乎有点可疑。如果(1)的答案是“否”,是否可以
在
Scala
中用CPS风格编写
尾部
递归
快速排序--也就是说,不使用蹦床?怎么做到的?为了明确起见,我看过,它
浏览 0
提问于2016-09-19
得票数 1
3
回答
Scala
中
的尾
递归
和返回语句
我
在
思考这里提出的问题之一()以及如何改进
代码
。SimpleDB Failed") inner_update(attempt+1) }} 第二个
实现
是否仍然是尾
递归
的我仍然不太清楚函数何时是尾
递归
,何时不是尾
递归
。
浏览 1
提问于2011-03-15
得票数 1
回答已采纳
3
回答
Scala
递归
没有副作用
、
好的,我知道所有的
递归
更实用,因为你不会在迭代
中
改变任何对象的状态。但是,没有什么可以阻止您在
scala
中
这样做。magoo = magoo + 1实际上,您可以像在Java中一样,
在
Scala
中使
递归
变得没有副作用。那么,通过使用模式匹配,
Scala
只是让编写简洁的
递归
变得更容易,这样说公平吗?就像没有什么能阻止我用Java编写任何可以用
Scala
编写的
浏览 1
提问于2013-05-18
得票数 3
回答已采纳
1
回答
短路布尔运算的
Scala
尾
递归
优化
、
、
我用
Scala
编写了这样一个函数: listcompare(rest.head, x) && isSorted(rest)(compare)} 我很好奇编译器是否会优化
递归
调用。只有在前导比较成功的情况下,
递归
调用才能发生。如果没有,是否有一种方法可以提前排除而仍然
实现
尾部
递归
优化?
浏览 4
提问于2013-03-19
得票数 2
回答已采纳
1
回答
尾
递归
:比较两种情况
、
、
、
为什么这是
尾部
递归
: def navigate(step: Int, offset: Int, myList: List[Int]): (Int,
scala
.List[Int]) = { navigate(0, 0, myList) def navigate(step: In
浏览 1
提问于2017-12-06
得票数 1
3
回答
努力巩固
Scala
中
的
尾部
递归
理解
、
我正在复习
Scala
的一次考试,并试图找出我错过的这个小测验。我将尾
递归
理解为“最后一次调用本身”,但我对这些
代码
段之间的区别感到困惑。为什么这被认为是
尾部
递归
, if (x % 2 == 0) {1} 但这个,不是吗?def f(x: Int): Int = { else {1 + f(x + 1)} 将1添加到函数
中
,限制它成为尾<
浏览 0
提问于2019-02-18
得票数 2
回答已采纳
2
回答
使用尾
递归
实现
Tak函数
、
、
、
是否有可能
实现
尾部
递归
在
C/C++
中
的一种方式,以便使gcc/g++可以执行
尾部
递归
优化? 我不确定嵌套的
递归
函数调用是否会使编译器感到困惑。
浏览 0
提问于2013-11-14
得票数 0
3
回答
为什么Clojure
在
递归
add函数上比
Scala
快得多?
、
、
、
、
coll) acc (recur (rest coll) (+ (first coll) acc))))并问我它与类似的
Scala
实现
相比表现如何我编写的
Scala
代码
如下所示:val ints = from(1).take(9999998)println((t2 -
浏览 0
提问于2009-08-31
得票数 22
回答已采纳
1
回答
递归
过程
中
的编译器活动;帮助理解所需的答案。
、
在
执行
递归
函数时,堆栈调用等会发生什么情况?
递归
首先会使用堆栈吗?如果能帮助我更好地可视化
在
递归
过程中发生的事情,我将不胜感激。
浏览 2
提问于2014-09-12
得票数 2
4
回答
在
JVM
中
运行
Scala
时使用
递归
、
、
、
、
因此,这是否意味着如果要在JVM上运行,就不应该编写
尾部
递归
Scala
代码
,例如可以
在
非常大的输入列表上运行的以下
代码
?case _ :: tail if n == 1 => list.head}原则上,尾
浏览 10
提问于2011-04-17
得票数 11
1
回答
尾
递归
计数、拆分&获取列表函数的前缀
、
、
、
语言:
Scala
(目标):计算列表
中
的目标数的函数。必须是
尾部
递归
的 import
scala
.annotation.tailrec def countOnes(lst: List[Int], acc: Int =
浏览 4
提问于2022-05-13
得票数 -1
点击加载更多
相关
资讯
什么是递归算法?详述递归算法的原理?用C语言实现递归算法。内附代码
在Python程序中设置函数最大递归深度
递归卷积神经网络在解析和实体识别中的应用
Scala学习笔记02
周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)
热门
标签
更多标签
云服务器
ICP备案
腾讯会议
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券