我已经用 Kotlin 编写了这个递归函数:
fun recursive(target: String, population: Population, debugFun: (String) -> Unit) : Population {
if (population.solution(target).toString() == target) {
return population
}
debugFun.invoke(population.solution(target).toString())
return recursive(target, population.evolve(target), debugFun)
}
这段代码会运行不确定的次数(因为我正在使用随机性来收敛进化算法的解决方案)。但我经常会遇到堆栈溢出的情况。 Kotlin / JVM语言的最大堆栈深度是多少?我应该写一个非递归的函数吗?