[comp.lang.scheme] Seeking help with continuations

wm1@cunixb.cc.columbia.edu (Wilfredo Marrero) (04/29/91)

My class and I are struggling a bit with continuations.  Ableson and Sussman do
not discuss them in their textbook, while Springer and Friedman describe
call/cc using escape procedures and contexts.  While this does seem to produce
a model that works, it is extremely confusing and can be used to explain only
the simplest of examples.  It is obvious that experts "out there" use
continuations productively, so we are all fairly certain that there must be
an easier way of explaining them.

If anyone knows of a place to get a few simple but practical/usefull examples
of the uses of call/cc or of another text which covers this topic, please
let me know.  Of course, any first hand explanations of call/cc would also
be greatly appreciated.

My address is:  wm1@cunixb.cc.columbia.edu

Will Marrero

gyro@cymbal.reasoning.COM (Scott Layson Burson) (05/01/91)

   Date: Mon, 29 Apr 1991 16:05:33 GMT
   From: Wilfredo Marrero <wm1@cunixb.cc.columbia.edu>

   My class and I are struggling a bit with continuations.  Ableson and Sussman do
   not discuss them in their textbook, while Springer and Friedman describe
   call/cc using escape procedures and contexts.  While this does seem to produce
   a model that works, it is extremely confusing and can be used to explain only
   the simplest of examples.  It is obvious that experts "out there" use
   continuations productively, so we are all fairly certain that there must be
   an easier way of explaining them.

   If anyone knows of a place to get a few simple but practical/usefull examples
   of the uses of call/cc or of another text which covers this topic, please
   let me know.  Of course, any first hand explanations of call/cc would also
   be greatly appreciated.

Well, I'm not an expert in Scheme pedagogy, but I would consider the
understanding of continuations to be rather optional in a first course on
Scheme.

Dick Gabriel has frequently expressed his opinion that they should be removed
from the language entirely, and if I thought of Scheme as primarily a teaching
language, I might well agree with him.  However, as it happens, I think of
Scheme as a powerful AI-oriented systems language -- this is, after all, what
it was invented for; it was only after the fact that people decided it would
also be a good language for teaching (correct, GLS?) -- and therefore I think
that continuations have a place in Scheme as a powerful, subtle construct whose
use, in expert hands, can be extremely valuable.

But I am inclined to agree with Dick to the extent of thinking that beginning
and even intermediate-level Scheme programmers are better off ignoring the
existence of CALL/CC.

-- Scott
Gyro@Reasoning.COM