tail-recursion

tail-recursion

文章 0 浏览 6

使用python实现尾递归功能

对于函数 p(0) = 10000, p(n) = p(n-1) + 0.02*p(n-1), 代码应该是这样的: def p(n,v=10000): if n == 0: return v else: return p(n-1,1.02*v) 但…

兮子 2025-01-17 23:24:00 2 0

将递归函数更改为尾递归

def singlesR(xs): if xs != [] : return [[xs[0]]] + singlesR(xs[1:]) else : return [] 如何更改为尾递归函数? #result value singlesR([1,2,3,4]…

给不了的爱 2025-01-15 19:29:08 2 0

为什么这不是尾递归?

我正在阅读真实世界函数式编程这本书,并且我尝试提出自己的方法在阅读本书的示例之前先看一下尾递归的示例(清单 10.2,第 265 页)。书中的例子有效…

诠释孤独 2025-01-05 01:01:07 2 0

FParsec 中的尾递归

我遇到了具有两个递归分支的解析器的问题。为了更容易地演示这个问题,我使用了 Luca Bolognese 写的文章为例: ; ::= ; | | ::= 非空白字符序列 ::= …

久夏青 2025-01-05 00:32:57 6 0

如何在Scala中实现尾递归快速排序

我写了一个递归版本: def quickSort[T](xs: List[T])(p: (T, T) => Boolean): List[T] = xs match{ case Nil => Nil case _ => val x = xs.head val …

2025-01-04 09:00:23 3 0

实例方法中的 CIL (MSIL) 尾调用递归

背景:我正在为一个学校项目编写 .NET 编译器(与 C# 非常相似)。我当前尝试添加的功能之一是方法内的尾调用递归。 更多信息:在 CIL 中,“this”被…

葬﹪忆之殇 2025-01-04 00:30:50 5 0

Haskell 递归空间泄漏

[更新] 所以我更改了代码以使其更具可读性。 函数 dpfsSat 有两个参数,klauselMenge 是一个包含来自 X 的元素的巨大集合。 在递归过程中 klauselMeng…

棒棒糖 2025-01-02 22:02:31 4 0

为什么我的 Scala 尾递归比 while 循环更快?

以下是 Cay Horstmann 的 Scala for the Impressive 中练习 4.9 的两个解决方案:“编写一个函数 lteqgt(values: Array[Int], v: Int),返回一个三元…

掐死时间 2025-01-02 20:42:32 4 0

我对什么是递归、尾递归、原始递归和什么不是感到困惑

我写了一个简单的猜测数字程序,我需要知道其中是否涉及任何类型的递归,以及它是什么类型(原始/尾部)(我对此很陌生,所以请耐心等待) module MyP…

尸血腥色 2025-01-02 13:45:20 4 0

是否可以使用序列尾部调用优化 f# 中的分组函数?

这是我的尝试,它没有优化尾部调用,因为我需要处理枚举器: let Group func seed (items : seq) = let rec some (i : IEnumerator) state = seq { tr…

锦上情书 2024-12-28 08:59:09 5 0

迭代过程的流与尾递归

这是我之前的问题的后续问题。 我知道我们可以使用streams来生成“pi”(和其他数字)、n-th fibonacci等的近似值。但是我怀疑streams是否可以 是执行…

黯淡〆 2024-12-22 14:24:06 4 0

短路运算符和尾递归

假设我有一个像这样的简单函数: int all_true(int* bools, int len) { if (len < 1) return TRUE; return *bools && all_true(bools+1, len-1); } 这…

埋情葬爱 2024-12-21 13:16:31 6 0

如何使这个 Scala 函数(“flatMap”变体)尾递归?

我正在查看以下代码 http://aperiodic.net/phil /scala/s-99/p26.scala 具体来说, def flatMapSublists[A,B](ls: List[A])(f: (List[A]) => List[B])…

忆沫 2024-12-20 17:43:58 3 0

为什么 Scala 不使用 try/catch 优化尾部调用?

在最近的 StackOverflow 答案中,我给出了以下递归代码: def retry[T](n: Int)(fn: => T): T = { try { fn } catch { case e if n > 1 => retry(n - …

凡间太子 2024-12-18 01:01:12 5 0

我的 scala 代码虽然通过了 @tailrec,但却没有获得 TCO 认证

我正在研究 scala TCO 并编写了以下代码, import scala.annotation.tailrec final def tailReccursionEx(str:String):List[String]={ @tailrec def d…

吃→可爱长大的 2024-12-17 08:14:41 5 0
更多

推荐作者

李珊平

文章 0 评论 0

Quxin

文章 0 评论 0

范无咎

文章 0 评论 0

github_ZOJ2N8YxBm

文章 0 评论 0

若言

文章 0 评论 0

南…巷孤猫

文章 0 评论 0

更多

友情链接

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文