gpt4 book ai didi

scala - 惰性 val 可以尾递归吗?

转载 作者:行者123 更新时间:2023-12-02 01:46:31 26 4
gpt4 key购买 nike

lazy val seq: Unit = {
println("a")
seq
}

我们可以尾递归调用上面的表达式吗?

最佳答案

我想你可以从这个意义上说,是的 - 评估时,seq将递归评估自身,它的评估是执行的最后一个 Action 。

不过,无论这是否可以称为尾递归,似乎都没有什么意义。没有退出条件,如果你试图让你的代码保持纯粹的功能性,是否可以有一个:没有参数,这意味着没有“状态”传递给更深层次的评估,也没有什么可以测试来破坏递归.

此外,如果它确实是尾递归,则它不是 Scala 认可或支持的尾递归形式 - 评估 seq你会得到一个 StackOverflowError .

关于scala - 惰性 val 可以尾递归吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25364183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com