質問しました。
scala - Scalaで既存クラスに対し再帰を利用したメソッドを定義したい - スタック・オーバーフロー
「再帰してるメソッドの場合は戻り値型を明示しないといけない」 というのは、現状のScala言語の仕様です。
Scalaで再帰を利用した関数を定義したい場合はこういうことがあるみたいです。
問題点は、
- structural subtypingを使っている
- 再帰が末尾再帰になっていない
という話だそうです。
あとボク個人の問題点としては、Stackoverflowの使い方でしょうか。
もっと言うと、再帰メソッドを複数定義したいときは、戻り値の型を複数用意しないといけなくて、複数定義が難しいということでしょうか。