tail-recursion 相关问题

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

用于在图中生成所有拓扑排序的尾递归算法

给定一个图,我需要生成所有拓扑排序。例如,给出如下图:我想生成所有拓扑排序,它们是:2 4 7 5 2 7 4 5 2 4 5 7因为很多......

回答 2 投票 3

将递归函数转换为尾递归函数。尾递归的概念

我试图在haskell中转换一些递归函数。为了获得这种函数的一些经验,我试图理解尾递归的概念。为了得到一个线索,我想从...开始

回答 1 投票 -1

使用尾递归和匹配大小写来遍历Scala中的二叉树

我在scala中定义了一个case类作为case类Node(key:String,value:String,var left:Node,var right:Node),我试图使用尾递归和匹配大小写来遍历它,而不是...

回答 1 投票 0

在递归函数中用尾递归替换for循环

我试图让以下函数完全尾递归,例如得到那个讨厌的循环。原因是我试图轻松地将解决方案转换为迭代解决方案......

回答 2 投票 0

迭代过程与递归过程

通过SICP阅读Distilled并尝试围绕迭代与递归过程。给出的例子是:( defn + [a b](if(= a 0)b(inc(+(dec a)b))))(defn + [a b](if(= a ...)

回答 1 投票 5

C尾调用优化

我经常听到人们说C不执行尾部呼叫消除。虽然标准不能保证,但是无论如何,它是否在实践中通过任何体面的实现来执行?假设 ...

回答 8 投票 30

理解这个递归函数

我正在改变/改进这个递归函数。我的目的是添加一个全局类变量nrOfFails来存储搜索不成功的所有迭代。我称这个功能为......

回答 1 投票 1

递归问题 - 希望获得特定于我的代码的建议

我过去曾尝试过询问与此问题相关的建议,并且我被告知问题的根源是“尾递归”。人们指示我切向相关的帖子但我申请时遇到了麻烦......

回答 1 投票 0

Scala多态函数类型不匹配

当试图运行抽象数组类型的多态函数时,我得到一个类型不匹配的错误消息:类型不匹配:expected:(Int)=> Boolean,actual:Int ...

回答 1 投票 0

在Scala中编写阶乘尾递归函数

我试图用下面的方式写一个尾递归函数,但是编译器抛出一个错误:方法的参数太多了:(v1:Int)Int在trait中的函数1否则为factorial(x-1,...

回答 4 投票 1

CodingBat-递归编码

我正在尝试编码蝙蝠问题repeatFront:给定一个字符串和一个int n,返回由字符串的前n个字符组成的字符串,后跟字符串的前n-1个字符,...

回答 4 投票 0

堆栈的大小是多少 - java -xss16M分配16兆字节或16兆字节

我试图通过使用java -Xss160M命令限制分配给线程堆栈的大小来证明我正在使用尾递归。我正在写一个简单的尾递归算法......

回答 1 投票 -1

如何以递归方式思考?

为了理解贪婪方法和动态编程等高级算法概念,首先需要精通递归。我对递归比较新。每当......

回答 5 投票 11

如何为continuation monad实现stack-safe chainRec操作符?

我目前正在试验延续monad。 Cont实际上在Javascript中很有用,因为它从回调模式中抽象出来。当我们处理monadic递归时,总会有......

回答 2 投票 2

尾递归如何改变大O?

没有尾部优化:( define(my-length lst)(cond [(empty?lst)0] [else(+ 1(my-length(rest lst)))]))结果:(my-length(list“a “”b“”c“))=(+ 1(我的长度(列表”b“”c“)))=(+ 1(+ ...

回答 2 投票 0

如何在严格评估的语言中实现保护递归?

我在Javascript中实现了Scott编码的List类型以及模拟Semigroup类型类的重载append函数。追加工作得很好但是对于大型列表它会炸掉堆栈。 ...

回答 1 投票 6

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