我正在尝试理解Haskell中的尾递归。我想我知道它是什么,它是如何工作的,但我想确保我没有把事情搞砸。现在,我向您介绍另一种可能的阶乘实现:factorial k c = factorial (k-1) (c*k)
这个也是递归的。它将调用自身3次。我听说Haskell的编译器会在幕后将Tail-Recursive函数转换为for循环。我猜这就是为什么做尾部递归</em
为了阐明我的意思,让我们以这个递归示例为例:statement([A|B]):- A, statement(B).头部A由我的规则检查,尾部B被送去递归,然后成为第二级的头部。当它递归到第二级时,我如何访问前一个A?我是不是想错了?如果需要澄清,请提出,我会这样做的。提前谢谢。我想要测试的(类型检查器):
String s; int i; i = s.length(); /