Cuál es la sintaxis aceptada / recomendada para el código Scala con muchos métodos de encadenamiento?

En Scala, tiendo a favorecer la escritura de grandes expresiones encadenadas sobre muchas expresiones más pequeñas conval asignaciones. En mi empresa, hemos desarrollado un estilo para este tipo de código. Aquí hay un ejemplo totalmente artificial (la idea es mostrar una expresión con muchas llamadas encadenadas):

import scala.util.Random
val table = (1 to 10) map { (Random.nextInt(100), _) } toMap

def foo: List[Int] =
  (1 to 100)
    .view
    .map { _ + 3 }
    .filter { _ > 10 }
    .flatMap { table.get }
    .take(3)
    .toList

Daniel Spiewak'sScala Style Guide (pdf), que generalmente me gusta, sugiere que la notación de punto inicial en las llamadas a métodos encadenados puede ser mala (ver doc: Invocación de métodos / Funciones de orden superior), aunque no cubre expresiones de varias líneas como esta directamente. @

¿Existe otra forma más aceptada / idiomática de escribir la funciónfoo ¿encima

ACTUALIZACIÓN: 28-jun-2011

Muchas respuestas excelentes y discusión a continuación. No parece haber una respuesta del 100% "debe hacerlo de esta manera", por lo que voy a aceptar la respuesta más popular por votos, que actualmente es el enfoque de comprensión. Personalmente, creo que voy a seguir con la notación de punto inicial por ahora y aceptar los riesgos que conlleva.

Respuestas a la pregunta(6)

Su respuesta a la pregunta