Sind Scala "Fortsetzungen" nur eine funky Syntax zum Definieren und Verwenden von Callback-Funktionen?

9

Und ich meine das im selben Sinne, dass ein C / Java for nur eine funky Syntax für eine while Schleife ist.

Ich erinnere mich noch daran, als ich zum ersten Mal etwas über die for -Schleife in C gelernt habe, die mentale Anstrengung, die man brauchte, um die Ausführungsreihenfolge der drei Steuerausdrücke relativ zur Schleifenanweisung zu verstehen. Es scheint mir, dass die gleichen Anstrengungen unternommen werden müssen, um Continuations zu verstehen (in Scala und wahrscheinlich anderen Sprachen).

Und dann gibt es die offensichtliche Anschlussfrage ... wenn ja, worauf kommt es dann an? Es scheint eine Menge Schmerz zu sein (Sprachkomplexität, Programmierfehler, unlesbare Programme, usw.) ohne Gewinn.

    
Alex R 23.04.2010, 18:17
quelle

1 Antwort

3

Ja, Fortsetzungen sind in gewisser Hinsicht eine funky Syntax für die Verwendung von Callbacks. Sie können eine sehr komplexe globale Transformation für Ihren Code durchführen (die so genannte Fortsetzungsübergabe-Stilumwandlung), und Sie erhalten Fortsetzungen in Ihren Händen ohne direkte Sprachunterstützung.

Allerdings ist die Umwandlung Ihrer gesamten Codebasis wahrscheinlich nicht sehr praktisch, und der resultierende Code ist schwer zu lesen, daher ist es viel besser, den Compiler hinter den Kulissen für Sie zu haben.

    
hzap 23.04.2010, 18:45
quelle