We have shown how to implement exceptions using a datastructure
representation of continuations. We can’t immediately apply the recipe of
section 2.2.3 to get a procedural representation, because we now have two observers:
apply-handler and apply-cont. Implement the continuations of this section as a
pair of procedures: a one-argument procedure representing the action of the continuation
under apply-cont, and a zero-argument procedure representing its action
under apply-handler.
Czy komuś udało się zrobić to zadanie? W szczególności tak, żeby druga z procedur (ta zastępująca apply-handler
) miała rzeczywiście zero argumentów?
W zadanym przez nas języku, raise <exp>
oblicza wartość, która potem jest przekazana do bloku “catch
” i inicjalizowana jako zmienna, więc nie bardzo rozumiem jak można ominąć przekazywanie tej wartości właśnie jako argument do procedury zastępującej apply-handler
.