mutual-recursion相关内容

由于循环引用,确定如何对 F# 类型进行排序时出现问题

我有一些扩展通用类型的类型,这些是我的模型. 然后我为 CRUD 操作的每个模型类型设置了 DAO 类型. 我现在需要一个函数,它可以让我找到给定任何模型类型的 id,所以我为一些杂项函数创建了一个新类型. 问题是我不知道如何订购这些类型.目前我在 dao 之前有模型,但我在 CityDAO 之前需要 DAOMisc 和 DAOMisc 之前需要 CityDAO,这是'可能. ..

如何让两个方法互相调用?

我对如何让两个方法相互调用有点困惑(即,有 A() call B() 和 B() 调用 A()).似乎 F# 仅在代码中遇到该方法后才“看到"该方法,因此如果没有,它只会说值或构造函数尚未定义. 我在这里遗漏了一些非常基本的东西吗? 解决方案 'let rec... and...' 是您寻求的语法. let rec F() =G()和 G() =F() 另见 F# Co 的冒险- ..
发布时间:2022-01-05 09:30:52 其他开发

F# 前向类型声明

我在 F# 中偶然发现了这个问题.假设,我想声明两个相互引用的类型: 输入 firstType =|第二类T1//…………键入 secondType =|firstType的T1//………… 我该怎么做才能让编译器不产生错误? 解决方案 您使用“和": type firstType =|第二类T1和第二个类型 =|firstType的T1 ..
发布时间:2021-12-16 08:25:12 其他开发

相互递归的类

如何在 C++ 中实现相互递归的类?类似的东西: /** 递归.h**/#ifndef RECURSION_H_#define RECURSION_H_类 Class1{Class2* Class2_ptr;民众:void Class1_method(){//...(*Class2_ptr).Class2_method();//...}};类 Class2{Class1* Class1_ptr; ..
发布时间:2021-12-09 21:50:13 C/C++开发

相互递归问题

如何更改相互递归的两个函数以使其成为线性递归?我必须将两种方法都放在一个方法中吗? 解决方案 您应该能够简单地将第二种方法的实现“内联"到第一种方法中. 也就是说, public static void methA() { // snippet 1 methB(); // snippet 2 } public static void methB() ..
发布时间:2020-07-24 20:28:50 Java开发

F#:类型和函数之间是否可以相互递归?

我可以使用and关键字设置相互递归的函数定义.我也可以将and用于相互递归的类型,但是如果类型和函数之间存在相互递归的关系怎么办?是使函数成为该类型的成员的唯一选择,还是在这里我也可以使用类似于and的东西? 编辑:添加一个简化的伪示例,希望它能说明我正在尝试做的事情 // A machine instruction type type Instruction = Add | Call ..
发布时间:2020-07-24 20:28:47 其他开发

F#:相互递归函数

可能重复: [F#]如何让两个方法互相调用? 大家好, 我有一个场景,我有两个函数可以从相互递归中受益,但我不确定如何在F#中做到这一点 我的情况并不像下面的代码那么简单,但是我想得到一些类似于编译的东西: let rec f x = if x>0 then g (x-1) else x let rec g x = if x>0 then ..
发布时间:2020-07-24 20:28:44 其他开发

什么是相互递归类型?

如果在ML中,则递归数据类型的示例为: datatype llist = Nil | Node of int * llist 在ML中,什么是相互递归的数据类型?它的一个例子是什么? 解决方案 一个这样的例子就是这些愚蠢的数据类型. datatype a = A | Ab of b and b = B | Ba of a 它们没有任何意义,但是它们表明可以使用 ..
发布时间:2020-07-24 20:28:40 其他开发

定点组合器是否具有相互递归的功能?

是否存在用于创建相互递归函数元组的定点组合器? IE.我正在寻找类似Y-Combinator的东西,但是它需要多个“递归" *函数,并且将返回一个函数元组? *:当然不是真正的递归,因为它们被编写为以通常的Y-Combinator方式将自己(和兄弟姐妹)作为参数. 解决方案 您要寻找的生物是 Y * 组合器. 基于此页面由 oleg-at-okmij.org 我将 Y * 移植 ..

F#前向类型声明

我偶然发现了F#中的这个问题.假设我想声明两个互相引用的类型: type firstType = | T1 of secondType //................ type secondType = | T1 of firstType //................ 我该怎么做,这样编译器不会生成错误? 解决 ..
发布时间:2020-07-24 20:27:21 其他开发

如何使两个方法互相调用?

对于如何让两个方法互相调用(即让A()调用B()和B()调用A()),我有些困惑.似乎F#仅在代码中遇到后才“看到"该方法,因此,如果没有,它只会说 value或未定义构造函数. 我在这里错过了一些非常基本的东西吗? 解决方案 'let rec ... and ...'是您要寻找的语法. let rec F() = G() and G() = F() 另请参阅 ..
发布时间:2020-07-24 20:27:17 其他开发

C ++相互递归变体类型

我正在尝试使用变体在c ++中表示PDF对象类型。 PDF对象是以下对象之一: 布尔值 整数 Real 字符串 名称 Stream Array Map 如您所见, Object 类型是相互递归的,因为 Array 类型需要声明 Map 类型,这需要声明 Array 类型。我怎么能在C ++中代表这种类型呢?如果不是最佳方法 ..
发布时间:2020-06-06 20:16:05 C/C++开发

在F#/Scala中优化相互递归的标准方法是什么?

这些语言不“本地"支持相互递归函数优化,因此我猜它一定是蹦床或循环.... heh ..重写)我错过了什么吗? 更新:似乎我确实对FSharp撒谎,但我只是没有看到在谷​​歌搜索时相互尾巴呼叫的例子 解决方案 首先,F#本机支持相互递归函数,因为它可以从.NET IL( MSDN ).但是,这有点棘手,并且可能不适用于.NET的某些替代实现(例如Compact Frameworks) ..
发布时间:2020-05-21 20:54:20 其他开发

无法理解相互递归

我正在阅读Programming In Haskell,在第8章中,作者给出了一个编写解析器的例子。 完整的源代码位于: http://www.cs。 nott.ac.uk/~gmh/Parsing.lhs 我无法理解以下部分: many 允许零个或多个 p , 而 many1 至少需要一个成功的应用程序: many :: Parser a→Parser [a] many p = ..
发布时间:2018-06-04 17:37:40 其他开发

由于循环引用而确定如何订购F#类型的问题

我有一些扩展常见类型的类型,这些是我的模型。 然后,我为每个CRUD操作的模型类型都有DAO类型。 > 现在我需要一个函数来让我找到任何模型类型的id,所以我为一些其他函数创建了一个新类型。 问题是我不知道如何订购这些类型。目前我有dao之前的模型,但是我在某种程度上需要 DAOMisc 在 CityDAO 和 CityDAO > DAOMisc 之前,这是不可能的。 简单 ..

python如何实现相互递归?

由于python程序被解释了,所以我不得不使用C / Java背景来实现Python的相互递归。如果我在同一个python文件中有两个函数: def A(n): B(n-1) #如果我在这里添加A(1),它给了我一个错误 def B(n): 如果n return else: A(n-1) 解释器正在读取 A , B 尚未定义,但此代码确实不会给我一个错误 ..
发布时间:2018-04-17 11:32:30 Python

如何有两个函数调用对方C ++

我有两个这样的函数,对if循环进行模糊处理: void funcA(string str) { size_t f = str.find(“if”); if(f!= string :: npos) { funcB(str); // obfuscate if-loop } } void funcB(string str) { // obfuscate if loop ..
发布时间:2016-10-14 20:25:32 C/C++开发