Als «continuation» getaggte Fragen

2
Y-Kombinator- und Tail-Call-Optimierungen
Die Definition eines Y-Kombinators in F # lautet let rec y f x = f (y f) x Als erstes Argument erwartet f eine Fortsetzung der rekursiven Teilprobleme. Wenn wir das yf als Fortsetzung verwenden, sehen wir, dass f auf aufeinander folgende Aufrufe angewendet wird, sobald wir uns entwickeln können …

3
Was sind die Alternativen zur Verwendung eines Stacks zur Darstellung der Funktionsaufrufsemantik?
Wir alle wissen und lieben, dass Funktionsaufrufe normalerweise über den Stack implementiert werden. Es gibt Frames, Absenderadressen, Parameter, das ganze Los. Der Stack ist jedoch ein Implementierungsdetail: Aufrufkonventionen können verschiedene Aufgaben ausführen (dh x86-Fastcall verwendet (einige) Register, MIPS und Follower verwenden Registerfenster usw.) und Optimierungen können sogar andere Aufgaben ausführen …

2
Was ist ein Beispiel für eine Fortsetzung, die nicht als Prozedur implementiert wurde?
Ein interessantes Diskussion über die Unterscheidung zwischen Rückrufen und Fortsetzungen bei SO hat diese Frage aufgeworfen. Per Definition ist eine Fortsetzung eine abstrakte Darstellung der Logik, die zur Vervollständigung einer Berechnung benötigt wird. In den meisten Sprachen wird dies als eine Prozedur mit einem Argument dargestellt, an die Sie den …

1
Sind erstklassige Fortsetzungen in modernen objektorientierten Programmiersprachen nützlich?
Fortsetzungen sind in funktionalen Programmiersprachen (z. B. der ContMonade in Haskell) äußerst nützlich, da sie eine einfache und regelmäßige Notation für Code im imperativen Stil ermöglichen. Sie sind auch in einigen älteren imperativen Sprachen nützlich, da sie zum Implementieren fehlender Sprachfunktionen (z. B. Ausnahmen, Coroutinen, grüne Threads) verwendet werden können. …

4
Wie hält man Code mit Fortsetzungen / Rückrufen lesbar?
Zusammenfassung: Gibt es einige bewährte Best-Practice-Muster, die ich befolgen kann, um meinen Code trotz der Verwendung von asynchronem Code und Rückrufen lesbar zu halten? Ich verwende eine JavaScript-Bibliothek, die viele Dinge asynchron erledigt und stark von Rückrufen abhängt. Es scheint, dass das Schreiben einer einfachen Methode "Laden A, Laden B, …

7
Best Practice, um innerhalb einer verschachtelten Schleife fortzufahren?
Hier ist ein vereinfachtes Beispiel. Grundsätzlich werden Zeichenfolgen aus einer Zeichenfolgenliste überprüft. Wenn die Prüfung erfolgreich ist, wird diese Zeichenfolge ( filterStringOut(i);) entfernt, und es ist nicht mehr erforderlich, andere Prüfungen fortzusetzen. Also continuezum nächsten String. void ParsingTools::filterStrings(QStringList &sl) { /* Filter string list */ QString s; for (int i=0; …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.