Будут ли оптимизированы цепочечные обратные вызовы с одинаковым контекстом выполнения при использовании фьючерсов Scala в синхронные вызовы?

Новое Future в Scala 2.10 использует контекст выполнения для каждой операции, в которой действие вызывается асинхронно (включаяmapfilter, так далее). Означает ли это, что каждое действие всегда будет вызываться индивидуально через контекст выполнения, или возможно, что этот шаг оптимизирован при объединении нескольких преобразований / фильтров, каждый из которых использует один и тот же контекст выполнения?

То есть если делатьf.map(...).filter(...).map(...), все с тем же контекстом выполнения, будет ли этот вызовexecute() один раз (потому что этодостаточно умный, чтобы составить синхронную функцию из вышеперечисленного) или три раза?

Если в будущем Scala не выполняется вышеописанная оптимизация, существует ли альтернативная структура, лучше подходящая для композиций с длинной цепью, которая выполняет вышеуказанные функции?

Ответы на вопрос(1)

Ваш ответ на вопрос