language-agnostic - 如何处理最大递归深度?

标签 language-agnostic recursion

许多语言(例如 python)都有一个设置的最大递归深度。我意识到你可以改变那个深度,或者干脆不写递归函数,但是如果你写了一个递归函数并且你达到了最大的递归深度,你将如何准备和处理?

最佳答案

在函数签名中有一个参数,每次调用都会递增。当它接近最大递归深度时,做一些事情 之前 它达到了。

这是一个ruby-ish伪代码示例:

def my_recursive_function(current_depth)
   # do stuff
   if current_depth >= MAX_RECURSION_LIMIT
     # throw exception, or output helpful information or return default value
   else
     my_recursive_function(current_depth+1)
   end

end

关于language-agnostic - 如何处理最大递归深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933413/

相关文章:

python - 如果 myStr = 'test' ,为什么 myStr[4] 会产生超出范围的错误,而 myStr[4 :] does not?

sql - 递归CTE查找父记录

python - 以Python os.walk为例的递归定义

language-agnostic - 测试类可以变成 "God object"吗?

.net - 开始解耦对象的最佳位置

language-agnostic - 什么时候不使用垃圾收集?

types - 求和类型的结构类型

multithreading - 什么是多线程该做和不该做的事情?

c - 我不明白这个递归

python - Python 中的任意字典 (JSON) 到更严格的树状字典 (JSON)