¿Qué son las continuaciones de Scala y por qué usarlas?

Acabo de terminarProgramación en Scala, y he estado investigando los cambios entre Scala 2.7 y 2.8. El que parece ser el más importante es el complemento de continuación, pero no entiendo para qué sirve o cómo funciona. He visto que es bueno para la E / S asíncrona, pero no he podido averiguar por qué. Algunos de los recursos más populares sobre el tema son estos:

Continuaciones delimitadas y Scala.Goto en ScalaUn sabor de 2.8: ContinuacionesContinuaciones delimitadas explicadas (en Scala)

Y esta pregunta sobre Stack Overflow:

¿Cuáles son las mayores diferencias entre Scala 2.8 y Scala 2.7?

Desafortunadamente, ninguna de estas referencias intenta definir para qué son las continuaciones o qué se supone que deben hacer las funciones de cambio / reinicio, y no he encontrado ninguna referencia que lo haga. No he podido adivinar cómo funciona alguno de los ejemplos en los artículos vinculados (o lo que hacen), por lo que una forma de ayudarme podría ser ir línea por línea a través de una de esas muestras. Incluso este sencillo del tercer artículo:

reset {
    ...
    shift { k: (Int=>Int) =>  // The continuation k will be the '_ + 1' below.
        k(7)
    } + 1
}
// Result: 8

¿Por qué el resultado es 8? Eso probablemente me ayudaría a empezar.

Respuestas a la pregunta(6)

Su respuesta a la pregunta