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

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

7得票2回答
在C和Haskell之间互相递归时编译尾调用优化

我正在尝试使用Haskell中的外部函数接口。我想实现一个简单的测试,以查看是否可以进行相互递归。因此,我创建了以下Haskell代码: module MutualRecursion where import Data.Int foreign import ccall countdownC...

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

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

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

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

8得票3回答
在F# / Scala中优化相互递归的标准方法是什么?

这些语言本身不支持相互递归函数的优化,所以我猜必须使用跳板或重写为循环。我错过了什么吗? 更新:似乎我在FSharp方面说谎了,但我只是在谷歌搜索时没有看到相互尾调用的示例。

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

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

7得票4回答
在Haskell互递归中获取列表元素的奇偶位置

我最近开始学习Haskell。 我在网上找到了一段代码,它返回列表中所有偶数/奇数位置的元素。 它利用了相互递归,但我似乎无法理解其内部工作原理。 evens (x:xs) = x:odds xs evens _ = [] odds (_:xs) = evens xs odds _ =...

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

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

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

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

7得票4回答
相互递归的类

我该如何在C++中实现相互递归的类?就像这样: /* * Recursion.h * */ #ifndef RECURSION_H_ #define RECURSION_H_ class Class1 { Class2* Class2_ptr; public: void C...