我试图在haskell中转换一些递归函数。为了获得这类函数的经验,我尝试理解尾递归的概念。为了得到一个线索,我想从非常简单的函数开始,来理解尾递归背后的概念。下面的代码显示了我编写的随机递归函数。我想把它转换成尾递归变体,但是我在实际代码的理论概念上有问题。
h x = if x > 20 then 50 else x*x
我所处的情况是,我试图在具有双返回类型的函数中使用递归。我实际上想使用递归来显示49,但它显示了10。我不能理解这背后的机制。根据我在调试后的理解,因为backlog中的返回值,计数器函数本身会回调,因此返回到值10,而不只是显示49。对于这种情况,我不确定是否有解决办法。描述我的问题的代码如下: int i