tail-recursion 相关问题

尾递归是一种递归策略,其中函数执行一些工作,然后调用自身。 “尾部”指的是递归位于函数的最后。许多 - 特别是功能 - 编程语言编译器可以将这些类型的调用转换为迭代,这意味着可以使用受支持语言中的尾递归而不必担心堆栈溢出,无论调用的数量如何。

Clojure中s表达式列表的递归

[为了设置背景,我正在学习Clojure,并且更广泛地开发Lisp。在通往Lisp的道路上,我目前正在研究“小”系列,以巩固...

回答 2 投票 13

如何创建尾递归函数

我对如何使函数“尾递归”感到非常困惑。这是我的函数,但我不知道它是否已经是尾递归。我正在尝试在Haskell中合并两个列表。 ...

回答 1 投票 4

如何使我的排序函数成为尾递归?

这些年来,我一直以命令式进行编码,但现在开始学习函数式,并面临一些将函数转换为尾递归的障碍。尝试修改和添加...

回答 1 投票 4

如何使该方案功能不尾递归?

我不知道如何使此尾部递归方案功能不再尾部递归。谁能帮助我? (定义(foldrecl f x u)(如果(null?x)u(foldrecl f(cdr x)(...

回答 1 投票 0

如何识别是否有问题可与尾递归在斯卡拉解决或不

如何才能辨别是否有问题语句还可以用尾递归或没有得到解决。有没有通过一个可识别的问题的任何特点?

回答 1 投票 -1

如何使用函数式编程的方法来实现谷歌云功能?

最近我拿出来与执行递归和尾递归的方式谷歌的云功能。通过这种方式实现功能的编程方法。简单的递归函数在Python:...

回答 2 投票 0

如何解决在下面的代码错误“已达到最大递归深度”?

我已经写在python,做以下操作的脚本:取一个文件夹路径可能包含与上传.json文件很多子目录在他们所有加载以.json文件输入...

回答 1 投票 0

有可能使用延续传递样式将此递归函数转换为尾递归吗?

我最近写了一个ETL,它运行得很好。我想提醒自己如何使用免费monad,所以想转换我的ETL。注意:我这里的意图不是写得更好......

回答 1 投票 2

尾递归究竟是如何工作的?

我几乎理解尾递归是如何工作的以及它与正常递归之间的区别。我只是不明白为什么它不需要堆栈来记住它的返回地址。 // 尾巴 ...

回答 8 投票 118

尾递归 - Scala(任何其他语言)

我有一个关于尾递归的问题。据我所知Tail递归是函数的最后一次递归调用将传递函数的结果。但是当我有一个像这样的函数def func1(...

回答 4 投票 2

Racket是否使用尾递归?

如果我在Racket中尝试这个:( expt 2 1000)我得到的数字比宇宙中的所有原子大许多倍:...

回答 3 投票 3

如何将此递归更改为尾递归?

这里是递归代码我试图将它改为尾递归def stairClim(n):如果n <= 3:WaysToClimb = [1,2,4]返回WaysToClimb [n - 1] else:return ...

回答 2 投票 0

这个尾部是递归的还是Kotlin编译器的问题?

如果跟随函数是尾递归或Kotlin编译器或IntelliJ Idea有问题,我有点困惑。根据我的理解,这不适合进行tailrec优化,因为......

回答 1 投票 0

我需要在Scala中使用@tailrec吗?

在下面的Scala函数示例中:@tailrec def someFunction(...):Unit = {@tailrec注释是否有用,或者知道这是尾递归是否真的很好?

回答 2 投票 5

试图巩固Scala中的尾递归理解

我正在审查Scala的考试,并试图找出我错过的这个测验问题。我理解尾递归是“最后一次调用本身”,但我对一些...之间的区别感到困惑。

回答 3 投票 2

检索文件夹和子文件夹以使用尾递归在java中读取文件

我正在使用正常的递归方法来迭代并从java中的文件夹和子文件夹中获取文件。有人可以帮助我改变尾部递归方法吗?我无法理解尾巴是什么......

回答 1 投票 1

[Little Schemer Ch3 pp.34&37]:为什么(rember a(cdr lat))作为第37个示例的cons的第2个参数被解释为未知的p.37示例

我使用DrRacket调试模式逐步在p.34和p.37上运行这两个示例。以下是两个示例中第一次处理(cdr lat)时的堆栈窗口结果。 p.34,失败的例子......

回答 2 投票 1

为什么scala @tailrec不能在Option.flatMap上使用?

在scala中,以下两个函数用于完全相同的目的:@tailrec final def fn(str:String):Option [String] = {Option(str).filter(_。nonEmpty).flatMap {v => fn(v .drop(1))}} @ ...

回答 3 投票 4

除非方法是最终的,否则为什么Scala编译器不会应用尾调用优化?

除非方法是最终的,否则为什么Scala编译器不会应用尾调用优化?例如,this:class C {@tailrec def fact(n:Int,result:Int):Int = if(n == 0)...

回答 5 投票 45

“兄弟电话”是什么意思?

在GCC手册中,-foptimize-sibling-calls优化同级和尾递归调用。我知道尾递归调用,例如int sum(int n){return n == 1? 1:n + sum(n-1); } ...

回答 3 投票 17

© www.soinside.com 2019 - 2024. All rights reserved.