なぜScalaの再帰は、0
Pythonで再帰とScalaの
def foo(id:Int): Int = {
if (id == 0) { return id } else { foo(id - 1) }
}
foo(2)
戻っていますか?
def foo(id):
if id == 0:
return id
else:
foo(id - 1)
foo(2)
どのようにPythonとScalaは再帰を処理し、ネストされたアクティベーションレコードを管理しますか?
このようにして、ScalaとPythonの両方のソリューションが同じ結果を返しますが、なぜ2番目のreturn文を追加する必要があるのでしょうか?これらの再帰の処理方法の違いはどちらですか? – w4bo
@ w4bo、Scalaは最後の式を暗黙的に*返します。 Pythonはそうではありませんので、*明示的* returnを追加する必要があります。再帰は同じように扱われる可能性が高い。 – cdlane