尾递归,C#也玩尾递归(续)

大约半年前,我写过一篇文章《C#也玩尾递归》,里面介绍了一种技巧使得C#也能实现尾递归,不再像普通递归调用那样受调用栈的限制。 今天重新看了下文中最后的实现代码,感觉还是不够满意:因为引入了一个对用户来说不是很必要的数据结构RecFunc<>,用户需要定义的代码大概是这样:(rec,i,n,a,b) => (n<3 ? 1 : (i==n ? a+b : rec.Callback(i+1, n, b, a+b))) 从调用方的角度来看,下面代码就比上面的更容易理解(不用self都不好意思说自己学过python):(self,i,n,a,b) => (n<3
Tags:  c递归算法 c语言递归函数 c语言递归 c递归 尾递归

延伸阅读

最新评论

发表评论