Looking for scala Answers? Try Ask4KnowledgeBase
Looking for scala Keywords? Try Ask4Keywords

Scala LanguageBiblioteca de continuaciones


Introducción

El estilo de paso de continuación es una forma de flujo de control que implica pasar a las funciones el resto de la computación como un argumento de "continuación". La función en cuestión luego invoca esa continuación para continuar la ejecución del programa. Una forma de pensar en una continuación es como un cierre. La biblioteca de continuaciones de Scala trae continuaciones delimitadas en la forma de los shift primitivos / reset al lenguaje.

biblioteca de continuaciones: https://github.com/scala/scala-continuations

Sintaxis

  • reset {...} // Las continuaciones se extienden hasta el final del bloque de reinicio adjunto
  • shift {...} // Crear una continuación indicando después de la llamada, pasándola al cierre
  • A @cpsParam [B, C] // Un cálculo que requiere una función A => B para crear un valor de C
  • @cps [A] // Alias ​​para @cpsParam [A, A]
  • @suspendable // Alias ​​para @cpsParam [Unidad, Unidad]

Observaciones

shift y reset son estructuras de flujo de control primitivas, como Int.+ es una operación primitiva y Long es un tipo primitivo. Son más primitivos que cualquiera de los dos en que las continuaciones delimitadas se pueden usar para construir casi todas las estructuras de flujo de control. No son muy útiles "listos para usar", pero realmente brillan cuando se usan en bibliotecas para crear API ricas.

Las continuaciones y las mónadas también están estrechamente vinculadas. Las continuaciones se pueden hacer en la mónada de continuación , y las mónadas son continuaciones porque su operación de flatMap toma una continuación como parámetro.

Biblioteca de continuaciones Ejemplos relacionados