Recentemente, comecei a aprender a programar em Scala, e tem sido divertido até agora. Eu realmente gosto da capacidade de declarar funções dentro de outra função que parece algo intuitivo a ser feito.
Uma irritação que tenho sobre Scala é o fato de Scala exigir um tipo de retorno explícito em suas funções . E eu sinto que isso atrapalha a expressividade da linguagem. Também é difícil programar com esse requisito. Talvez seja porque eu venho da zona de conforto Javascript e Ruby. Porém, para uma linguagem como Scala, que terá toneladas de funções conectadas em um aplicativo, não consigo imaginar como faço para pensar exatamente em que tipo a função específica que estou escrevendo deve retornar com recursões após recursões.
Esse requisito de declaração explícita do tipo de retorno em funções, não me incomoda em linguagens como Java e C ++. As recursões em Java e C ++, quando aconteciam, geralmente eram tratadas com 2 a 3 funções no máximo. Nunca várias funções encadeadas como Scala.
Então, acho que estou me perguntando se existe um bom motivo para o Scala ter o requisito de funções com tipo de retorno explícito.