Leser: 13
![]() |
|< 1 2 3 4 >| | ![]() |
31 Einträge, 4 Seiten |
murphy+2008-02-21 23:07:05--Wenn ich mal zu viel Zeit habe, könnte ich das vielleicht in Perl in CPS umschreiben und ins Wiki stellen...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
our $\="\n"; sub test { print "Entering test"; @_=("Back"); goto &tsub; Back: print "Back to test"; } sub tsub { my $label=shift; print "Entering tsub"; goto $label } test();
murphy+2008-02-21 16:06:57--Es gibt ein paar Webframeworks, die Continuations oder Techniken mit vergleichbarem Effekt einsetzen, um die asynchrone, anfragegesteuerte Natur einer Webanwendung zu verschleiern und dem Programmierer mehr das Gefühl eines linearen, interaktiven Programmablaufes zu geben. Für Perl existiert beispielsweiseContinuity,
1 2 3 4 5 6 7
# Current Inputs Next Action $next{'INIT'} {'create'} = ['EDIT', sub { } ]; $next{'SAVE'} {'edit'} = ['EDIT', sub { } ]; $next{'PREVIEW'}{'edit'} = ['EDIT', sub { } ]; $next{'PREVIEW'}{'save'} = ['SAVE', sub { } ]; $next{'EDIT'} {'preview'} = ['PREVIEW', sub { } ]; $next{'EDIT'} {'save'} = ['SAVE', sub { } ];
KurtZ+2008-02-22 23:00:56--[...]
Meine Frage, unterstützen Scheme-Syntax (oder andere Sprachen) das optional (oder sogar per Default) ohne explizites Labeling? Dann ließe sich CPS ja auch von Anfängern mit dem gewohnten Jump-Subroutine Muster verwenden.
[...]
1 2 3 4
sub call_with_current_continuation(&&) { my ($rc, $proc) = @_; @_ = ($rc, $rc); goto &$proc; }
![]() |
|< 1 2 3 4 >| | ![]() |
31 Einträge, 4 Seiten |