Недавно я начал учиться программировать в Scala, и до сих пор было весело. Мне действительно нравится возможность объявлять функции в другой функции, что кажется интуитивно понятным.
У меня есть одна любимая мозоль о Scala - тот факт, что Scala требует явного возвращаемого типа в своих функциях . И я чувствую, что это мешает выразительности языка. Кроме того, просто сложно программировать с этим требованием. Может быть, это потому, что я из зоны комфорта Javascript и Ruby. Но для такого языка, как Scala, у которого в приложении будет множество связанных функций, я не могу представить, как мне в мозгу надо точно определить, какой тип конкретной функции, которую я пишу, должен возвращаться с рекурсиями после рекурсий.
Это требование явного объявления возвращаемого типа для функций не беспокоит меня для таких языков, как Java и C ++. Рекурсии в Java и C ++, когда они случались, часто имели дело с максимум 2-3 функциями. Никогда не объединяйте несколько функций, таких как Scala.
Поэтому я думаю, мне интересно, есть ли веская причина, по которой в Scala должно быть требование наличия функций, имеющих явный тип возврата?