私は最近Scalaでプログラムすることを学び始めましたが、これまでのところ楽しかったです。私は、別の関数内で関数を宣言する機能が本当に好きです。
私がScalaについて抱えている問題の1つは、Scalaがその関数に明示的な戻り値の型を必要とするという事実です。そして、これは言語の表現力を妨げると感じています。また、その要件でプログラミングするのは難しいだけです。たぶん、私はJavascriptとRubyのコンフォートゾーンから来たからでしょう。しかし、Scalaのようにアプリケーションに大量の関数が接続されている言語の場合、自分が書いている特定の関数が再帰後に再帰で返されるタイプを正確に頭の中にブレーンストーミングする方法を考えることはできません。
関数の明示的な戻り値型宣言のこの要件は、JavaやC ++などの言語では気になりません。JavaとC ++の再帰は、実際に発生したときに、多くの場合2〜3個の関数で処理されていました。Scalaのように、いくつかの機能が連鎖することはありません。
だから私は、Scalaが明示的な戻り値の型を持つ関数の要件を持たなければならない正当な理由があるのだろうかと思いますか?