Cuando se utilizan futuros de Scala, ¿se optimizarán las devoluciones de llamadas encadenadas con el mismo contexto de ejecución en llamadas síncronas?

El nuevo futuro en Scala 2.10 utiliza un contexto de ejecución para cada operación en la que una acción se llama de forma asíncrona (incluyendomap, filter, etc). ¿Esto significa que cada acción siempre se llamará individualmente a través del contexto de ejecución, o es posible que este paso se optimice al encadenar múltiples transformaciones / filtros cada uno usando el mismo contexto de ejecución?

Es decir. si haciendof.map(...).filter(...).map(...), todos con el mismo contexto de ejecución, será esta llamadaexecute() una vez (porque es lo suficientemente inteligente como para componer una función síncrona de la anterior), o tres veces?

Si el futuro de Scala no realiza la optimización anterior, ¿existe un marco alternativo más adecuado para composiciones de cadena larga que haga lo anterior?

Respuestas a la pregunta(1)

Su respuesta a la pregunta