问题标签 [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.
python - 减少嵌套循环中 re.sub() 的处理时间
我正在预处理一组文件,其中一个文件包含在另一个文件中,其中包含标签,如下所示:
档案A
在这里,我需要用每个相应文件的内容替换包含标签。就像编译器所做的一样。我有两个功能
如您所见,函数parseContent
和parseIncludes
相互递归调用以替换每个文件中的所有包含标记。逻辑工作正常。但是执行起来需要一点时间。有没有更好的方法可以用更少的执行时间来做同样的事情?
c++ - 程序返回值 -1073741571 而不是永远执行
我正在学习函数并决定创建一个循环,其中两个函数(在本例中为funcA
和funcB
)永远互相调用,但它会在一段时间后停止执行。代码如下所示:
返回值为-1073741571
( 0xC00000FD
)。你能解释为什么会这样吗?
haskell - Arrow 库中“first”的实现
我不明白first
库中的实现。
first
似乎是用递归定义的***
——我看不到递归何时结束!?
和
first f
是(f *** id)
哪个是(first f >>> arr swap >>> first id...)
,新的first
将是另一个(*** id)
,依此类推...
recursion - 如何在我的相互递归程序中完成步骤数?
我是 OCaml 的新手。我有一些训练练习来熟悉 OCaml 中相互递归的概念。我需要编写的函数的想法是能够计算函数的步骤基本上:有一个仓库有 2 名员工需要把这些盒子拿出来。员工 A 一次可以取出一箱,如果剩余箱子数为偶数,员工 B 一次可以取出 2 箱。取出一盒(或两盒)是一步。
我尝试使用一个变量,每次调用其中一个函数时我都会尝试递增该变量。
这是我到目前为止的代码。
到目前为止,它一直为 employeeA 函数返回 0 或 1,或者为 employeeB 函数返回 0 或 2。尽管预期的结果是,例如,对于 11 个框,如果 EmployeeA 启动,它应该返回 10 个步骤,如果 EmployeeB 启动,它应该返回 11 个步骤。
谢谢。
recursion - 如何将此序列转换为 MIPS 汇编代码?
所以过去几周我一直在学习机器代码和汇编语言,但有些挣扎。我的作业中的一个问题要求将下面列出的序列转换为汇编语言,但我只是不明白从哪里开始。我们的笔记中没有任何东西看起来更接近这个问题,教科书也没有太大帮助。这是给我的信息:
在这一点上,我几乎迷失了,因为我们一直在做的一切,直到这个问题一直在转换 if 和 while 循环以及一些数组比较。谁能指导我正确的方向?
coq - 产品类型上的相互递归函数
(初学者 Coq 问题)
与在产品类型上定义递归函数有关,我正在尝试在产品类型上定义递归函数。这里的区别是有一个相互递归的定义。我一直遇到这个错误:
printObjItem 的递归定义格式不正确。
对 printJson 的递归调用的主要参数等于“val”,而不是“item”的子项。
从概念上讲,递归应该经过,因为val
是 的一个子项item
,是 的一个子项items
,是 的一个子项x
。我了解 Coq 正在为第一个断言而苦苦挣扎,但我不确定如何解决。没有明确的有根据的证明,有没有直接的方法?
racket - Racket (ASL) 中的调度算法
我需要将任意数量树的各个方面与生成递归和回溯相结合,以便提出一个简单有效的时间表。
到目前为止,我有两个结构,一个用她的可用槽和她可以工作的最大槽数来标识个人:(define-struct ta [name max avail])
以及一个作为有序对的分配结构:(define-struct assignment [ta slot])
其中槽只是一个自然数。因此,例如,我对以下虚拟对象进行了以下单元测试:
所以我现在的主要功能是这样的:
因此,要通过生成递归生成数据,我希望将(next-assignments tas slots)
其作为我需要的组合:进行所有分配并按可用性和最大可用插槽数进行过滤:
但是我不相信这是我需要的,因为它宁愿一次性创建整个可搜索空间,而不是我需要实施的分支和修剪策略。无论如何,为了完整起见,其余的辅助功能都在这里:
我对这些过滤功能也不是很满意,因为它们似乎太“愚蠢”了;他们只是放弃他们碰巧找到的任何 ta 以满足条件。
最后,我有生成递归的基本情况:
我认为这在某种程度上是最“愚蠢”的。无论如何,如您所见,我对我的代码不满意。但是我看到的主要问题是,我不认为我正在生成一棵真正的树。因此,如果您能告诉我该怎么做,我将不胜感激!
注意这是我正在上的一门课程,但我想你可以看出我真的试过了。请帮忙!
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?
racket - Racket(递归结构和处理模板)
我很难处理这个结构,我想编写一个函数来告诉讨论中出现了多少主题。
我已经尝试了几个小时,但还没有解决它。我不知道从哪里开始,有人对球拍有敏锐的眼光吗?我试图先处理这个话题,但没有任何运气这样做。
recursion - 您如何使用方案查找文件是否在目录树中?
我正在尝试编写一个函数 find ,它使用目录树和文件名,并确定具有该名称的文件是否出现在目录树中。我所写的内容适用于树的第一级中的文件(读取!),但没有“看到”更远的文件。知道文件是否不在树中的唯一方法是每个目录和文件被选中,但有些目录没有文件,有些没有目录,但有些有。对于我知道在树中的文件,我所写的远远返回 false。我不知道如何写假条件。