Qual é a motivação para a atribuição de Scala que avalia a unidade em vez do valor atribuído?

Qual é a motivação para a atribuição de Scala que avalia a unidade em vez do valor atribuído?

Um padrão comum na programação de E / S é fazer coisas assim:

while ((bytesRead = in.read(buffer)) != -1) { ...

Mas isso não é possível no Scala porque ...

bytesRead = in.read(buffer)

.. retorna Unit, não o novo valor de bytesRead.

Parece uma coisa interessante para deixar de fora de uma linguagem funcional. Eu estou querendo saber porque foi feito assim?

questionAnswers(8)

yourAnswerToTheQuestion