Looking for scala Keywords? Try Ask4Keywords

Scala LanguageFortsetzungen Bibliothek


Einführung

Continuation Passing Style ist eine Form des Kontrollflusses, bei der der Rest der Berechnung als "Fortsetzung" -Argument an Funktionen übergeben wird. Die fragliche Funktion ruft diese Fortsetzung später auf, um die Programmausführung fortzusetzen. Eine Möglichkeit, sich eine Fortsetzung vorzustellen, ist die Schließung. Die Scala Fortsetzungen Bibliothek begrenzt Fortsetzungen in Form der Primitiven bringt shift / reset auf die Sprache.

Fortsetzungsbibliothek: https://github.com/scala/scala-continuations

Syntax

  • reset {...} // Fortsetzungen erstrecken sich bis zum Ende des umschließenden Rücksetzblocks
  • shift {...} // Erstellen Sie eine Fortsetzung, die aus dem Aufruf hervorgeht, und leitet sie an die Schließung weiter
  • A @cpsParam [B, C] // Eine Berechnung, die eine Funktion A => B erfordert, um einen Wert von C zu erstellen
  • @cps [A] // Alias ​​für @cpsParam [A, A]
  • @suspendable // Alias ​​für @cpsParam [Einheit, Einheit]

Bemerkungen

shift und reset sind einfache Kontrollflussstrukturen, wie Int.+ eine primitive Operation und Long ein primitiver Typ. Sie sind primitiver als beides, indem mit begrenzten Fortsetzungen tatsächlich fast alle Kontrollflussstrukturen erstellt werden können. Sie sind nicht sehr nützlich "out-of-the-box", aber sie leuchten wirklich, wenn sie in Bibliotheken zum Erstellen von umfangreichen APIs verwendet werden.

Fortsetzungen und Monaden sind ebenfalls eng miteinander verbunden. Es können Fortsetzungen in die Fortsetzungsmonade aufgenommen werden , und Monaden sind Fortsetzungen, da ihre flatMap Operation eine Fortsetzung als Parameter flatMap .

Fortsetzungen Bibliothek Verwandte Beispiele