问题标签 [mutual-recursion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
50 浏览

python - 减少嵌套循环中 re.sub() 的处理时间

我正在预处理一组文件,其中一个文件包含在另一个文件中,其中包含标签,如下所示:

档案A

在这里,我需要用每个相应文件的内容替换包含标签。就像编译器所做的一样。我有两个功能

如您所见,函数parseContentparseIncludes相互递归调用以替换每个文件中的所有包含标记。逻辑工作正常。但是执行起来需要一点时间。有没有更好的方法可以用更少的执行时间来做同样的事情?

0 投票
3 回答
209 浏览

c++ - 程序返回值 -1073741571 而不是永远执行

我正在学习函数并决定创建一个循环,其中两个函数(在本例中为funcAfuncB)永远互相调用,但它会在一段时间后停止执行。代码如下所示:

返回值为-1073741571( 0xC00000FD)。你能解释为什么会这样吗?

0 投票
1 回答
94 浏览

haskell - Arrow 库中“first”的实现

我不明白first库中的实现。

first似乎是用递归定义的***——我看不到递归何时结束!?

first f(f *** id)哪个是(first f >>> arr swap >>> first id...),新的first将是另一个(*** id),依此类推...

0 投票
1 回答
81 浏览

recursion - 如何在我的相互递归程序中完成步骤数?

我是 OCaml 的新手。我有一些训练练习来熟悉 OCaml 中相互递归的概念。我需要编写的函数的想法是能够计算函数的步骤基本上:有一个仓库有 2 名员工需要把这些盒子拿出来。员工 A 一次可以取出一箱,如果剩余箱子数为偶数,员工 B 一次可以取出 2 箱。取出一盒(或两盒)是一步。

我尝试使用一个变量,每次调用其中一个函数时我都会尝试递增该变量。

这是我到目前为止的代码。

到目前为止,它一直为 employeeA 函数返回 0 或 1,或者为 employeeB 函数返回 0 或 2。尽管预期的结果是,例如,对于 11 个框,如果 EmployeeA 启动,它应该返回 10 个步骤,如果 EmployeeB 启动,它应该返回 11 个步骤。

谢谢。

0 投票
0 回答
67 浏览

recursion - 如何将此序列转换为 MIPS 汇编代码?

所以过去几周我一直在学习机器代码和汇编语言,但有些挣扎。我的作业中的一个问题要求将下面列出的序列转换为汇编语言,但我只是不明白从哪里开始。我们的笔记中没有任何东西看起来更接近这个问题,教科书也没有太大帮助。这是给我的信息:

在这一点上,我几乎迷失了,因为我们一直在做的一切,直到这个问题一直在转换 if 和 while 循环以及一些数组比较。谁能指导我正确的方向?

0 投票
1 回答
57 浏览

coq - 产品类型上的相互递归函数

(初学者 Coq 问题)

在产品类型上定义递归函数有关,我正在尝试在产品类型上定义递归函数。这里的区别是有一个相互递归的定义。我一直遇到这个错误:

printObjItem 的递归定义格式不正确。

对 printJson 的递归调用的主要参数等于“val”,而不是“item”的子项。

从概念上讲,递归应该经过,因为val是 的一个子项item,是 的一个子项items,是 的一个子项x。我了解 Coq 正在为第一个断言而苦苦挣扎,但我不确定如何解决。没有明确的有根据的证明,有没有直接的方法?

0 投票
0 回答
93 浏览

racket - Racket (ASL) 中的调度算法

我需要将任意数量树的各个方面与生成递归和回溯相结合,以便提出一个简单有效的时间表。

到目前为止,我有两个结构,一个用她的可用槽和她可以工作的最大槽数来标识个人:(define-struct ta [name max avail])以及一个作为有序对的分配结构:(define-struct assignment [ta slot])其中槽只是一个自然数。因此,例如,我对以下虚拟对象进行了以下单元测试:

所以我现在的主要功能是这样的:

因此,要通过生成递归生成数据,我希望将(next-assignments tas slots)其作为我需要的组合:进行所有分配并按可用性和最大可用插槽数进行过滤:

但是我不相信这是我需要的,因为它宁愿一次性创建整个可搜索空间,而不是我需要实施的分支和修剪策略。无论如何,为了完整起见,其余的辅助功能都在这里:

我对这些过滤功能也不是很满意,因为它们似乎太“愚蠢”了;他们只是放弃他们碰巧找到的任何 ta 以满足条件。

最后,我有生成递归的基本情况:

我认为这在某种程度上是最“愚蠢”的。无论如何,如您所见,我对我的代码不满意。但是我看到的主要问题是,我不认为我正在生成一棵真正的树。因此,如果您能告诉我该怎么做,我将不胜感激!

注意这是我正在上的一门课程,但我想你可以看出我真的试过了。请帮忙!

0 投票
1 回答
151 浏览

coq - How to define an inductive type mutually recursive with a function?

I want to define an inductive type Foo, with constructors accepting as arguments some properties. I want those properties to depend on inductive arguments of the type I am currently defining. I want to be able to collect some data from them inside those properties using some recursive function bar that would take an object of type Foo. However, I don't know of a way to declare those two so that Coq would accept their definitions. I want to be able to write something like this:

Usually, with is the way to handle mutual recursion, however all examples I've seen was it being used with both definitions begin either both Inductive or both Fixpoint. Is such mutual recursion even possible?

0 投票
1 回答
226 浏览

racket - Racket(递归结构和处理模板)

我很难处理这个结构,我想编写一个函数来告诉讨论中出现了多少主题。

我已经尝试了几个小时,但还没有解决它。我不知道从哪里开始,有人对球拍有敏锐的眼光吗?我试图先处理这个话题,但没有任何运气这样做。

0 投票
1 回答
85 浏览

recursion - 您如何使用方案查找文件是否在目录树中?

我正在尝试编写一个函数 find ,它使用目录树和文件名,并确定具有该名称的文件是否出现在目录树中。我所写的内容适用于树的第一级中的文件(读取!),但没有“看到”更远的文件。知道文件是否不在树中的唯一方法是每个目录和文件被选中,但有些目录没有文件,有些没有目录,但有些有。对于我知道在树中的文件,我所写的远远返回 false。我不知道如何写假条件。