X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=topics%2Fweek13_coroutines_exceptions_and_aborts.mdwn;h=f0ddc61dd9672eaf556f3e64aa295f7143a315da;hp=706050edeb0d9253967c608fc481e32f9d43c14b;hb=e36eaae1de25d2ba2b42afe2f77f51f6a2470a7b;hpb=c46e3672374c47b77a5592161dfd08a919decd0b diff --git a/topics/week13_coroutines_exceptions_and_aborts.mdwn b/topics/week13_coroutines_exceptions_and_aborts.mdwn index 706050ed..f0ddc61d 100644 --- a/topics/week13_coroutines_exceptions_and_aborts.mdwn +++ b/topics/week13_coroutines_exceptions_and_aborts.mdwn @@ -425,7 +425,9 @@ There are also different kinds of "syntactic sugar" we can use to hide the conti (+ (foo 1) 1000)) - - + Various of the tools we've been introducing over the past weeks are inter-related. We saw coroutines implemented first with zippers; here we've talked in the abstract about their being implemented with continuations. Oleg says that "Zipper can be viewed as a delimited continuation reified as a data structure." Ken expresses the same idea in terms of a zipper being a "defunctionalized" continuation---that is, take something implemented as a function (a continuation) and implement the same thing as an inert data structure (a zipper).