39得票4回答
如何实现两个方法相互调用?

我有些困惑如何让两个方法相互调用(例如,让A()调用B(),并使B()调用A())。似乎 F# 只有在代码中遇到方法后才会“看到”它,因此如果没有遇到它,它就会显示“值或构造函数未定义”的错误信息。 我是否漏掉了一些非常基础的东西?

35得票3回答
F#前向类型声明

我在使用F#时遇到了这个问题。假设我想声明两个相互引用的类型: type firstType = | T1 of secondType //................ type secondType = | T1 of firstType ...

18得票1回答
为什么Haskell不支持互相递归的模块?

关于Haskell的相互递归let-bindings和模块 Haskell支持相互递归的let-bindings,这是不错的。但Haskell不支持相互递归的模块,这有时很糟糕。我知道GHC有它的.hs-boot机制,但我认为那有点像一个hack。 据我所知,支持透明的相互递归模块应该相对...

17得票3回答
互递归函数的不动点组合子?

是否存在一种固定点组合子,可以创建相互递归函数的元组?也就是说,我正在寻找类似于Y组合子的东西,但它可以接受多个“递归”函数,并返回函数的元组。 *:当然不是真正的递归,因为它们是按照通常的Y组合子方式编写的,以自己(和兄弟姐妹)作为参数。

17得票1回答
Haskell中使用let表达式收敛,而使用fix的类似表达式却不收敛。

我一直很难理解为什么Haskell表达式let (x,y) = (y,1) in (x,y)会如预期地收敛到(1,1),但fix (\(x,y)-> (y,1))会抛出<<loop>>。 有人可以解释一下吗?

14得票4回答
由于循环引用,无法确定如何对 F# 类型进行排序的问题

我有一些类型,它们都扩展了一个公共类型,并且这些类型是我的模型。 之后,我为每种模型类型都有相应的DAO类型,用于CRUD操作。 现在我需要一个函数,可以根据任何模型类型找到id,因此我创建了一个新类型来存放一些杂项函数。 问题在于我不知道如何对这些类型进行排序。目前,我的模型排在DAO...

14得票3回答
可以在区分联合中相互引用吗?

我正在使用辨别联合构建表达式树。以下是代码:type IntExpression = | TrueIsOne of BoolExpression type BoolExpression = | LessThan of IntExpression * IntExpression...

12得票2回答
OCaml: 在定义函数之前声明函数

有没有在OCaml中声明函数但未定义的方法?我正在使用OCaml解释器。 我有两个函数:let myFunctionA = (* some stuff here..... *) myFunctionB (*some stuff *) let myFunctionB = (* some ...

12得票3回答
F#: 相互递归函数

可能是重复的问题: [F#] 如何让两个方法相互调用? 大家好, 我有一个场景,其中有两个函数可以从相互递归中受益,但我不确定如何在F#中实现这一点。 我的情况并不像以下代码那么简单,但我希望得到类似编译的东西:let rec f x = if x>0 then ...

12得票2回答
如何在C++中实现相互调用的两个函数

我有2个函数,可以对if循环进行混淆,代码如下:void funcA(string str) { size_t f = str.find("if"); if(f!=string::npos) { funcB(str); //obfuscat...