(no commit message)
[lambda.git] / coroutines_and_aborts.mdwn
index 69e9668..4b2b5da 100644 (file)
@@ -576,7 +576,7 @@ If all the subject did then was supply an `e` to the `e -> t` it receives as an
 
 This inversion of who is the argument and who is the function receiving the argument is paradigmatic of working with continuations.
 
-Continuations come in many varieties. There are **undelimited continuations**, expressed in Scheme via `(call/cc (lambda (k) ...))` or the shorthand `(let/cc k ...)`. (`call/cc` is itself shorthand for `call-with-current-continuation`.) These capture "the entire rest of the computation." There are also **delimited continuations**, expressed in Scheme via `(reset ... (shift k ...) ...)` or `(prompt ... (control k ...) ...)` or any of several other operations. There are subtle differences between those that we won't be exploring in the seminar. Ken Shan has done amazing work exploring the relations of these operations to each other.
+Continuations come in many varieties. There are **undelimited continuations**, expressed in Scheme via `(call/cc (lambda (k) ...))` or the shorthand `(let/cc k ...)`. (`call/cc` is itself shorthand for `call-with-current-continuation`.) These capture "the entire rest of the computation." There are also **delimited continuations**, expressed in Scheme via `(reset ... (shift k ...) ...)` or `(prompt ... (control k ...) ...)` or any of several other operations. There are subtle differences between those that we won't be exploring in the seminar. Ken Shan has done terrific work exploring the relations of these operations to each other.
 
 When working with continuations, it's easiest in the first place to write them out explicitly, the way that we explicitly wrote out the `snapshot` continuation when we transformed this:
 
@@ -586,7 +586,7 @@ When working with continuations, it's easiest in the first place to write them o
                else abort 20
                ) + 100
            end
-       in (foo 2) + 1;;
+       in (foo 2) + 1000;;
 
 into this:
 
@@ -609,3 +609,5 @@ Various of the tools we've been introducing over the past weeks are inter-relate
 
 Mutation, delimited continuations, and monads can also be defined in terms of each other in various ways. We find these connections fascinating but the seminar won't be able to explore them very far.
 
+We recommend reading [the Yet Another Haskell Tutorial on Continuation Passing Style](http://en.wikibooks.org/wiki/Haskell/YAHT/Type_basics#Continuation_Passing_Style)---though the target language is Haskell, this discussion is especially close to material we're discussing in the seminar.
+