Quais são as continuações do Scala e por que usá-las?

eu acabei de terminarProgramação em Scala, e eu estive olhando para as mudanças entre Scala 2.7 e 2.8. O que parece ser o mais importante é o plugin de continuações, mas eu não entendo o que é útil ou como funciona. Eu vi que é bom para E / S assíncrona, mas não consegui descobrir o porquê. Alguns dos recursos mais populares sobre o assunto são estes:

Continurações delimitadas e ScalaIr em ScalaUm sabor de 2.8: continuaçõesContinuações Delimitadas Explicadas (em Scala)

E esta pergunta no Stack Overflow:

Quais são as maiores diferenças entre o Scala 2.8 e o Scala 2.7?

Infelizmente, nenhuma dessas referências tenta definir para que servem as continuações ou o que as funções shift / reset devem fazer, e não encontrei nenhuma referência que faça isso. Eu não fui capaz de adivinhar como qualquer um dos exemplos nos artigos vinculados funciona (ou o que eles fazem), então uma maneira de me ajudar poderia ser ir linha a linha através de uma dessas amostras. Mesmo este simples do terceiro artigo:

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

Por que o resultado é 8? Isso provavelmente me ajudaria a começar.

questionAnswers(6)

yourAnswerToTheQuestion