Kent M Pitman <pitman@world.std.com> wrote:
+---------------
| The issue, which really I'm the only one I've ever heard get excited about,
| is that call/cc gets one too few bits as an argument...
| ...two obvious ways, and probably some others. The two ways I've cited are:
| (1) add an extra arg to call/cc saying if you want a one-time use ...
| (2) keep call/cc as it is, but make every continuation take an argument...
+---------------
Several Schemes agree with the general sentiments you voice, but have
chosen to:
(3) Leave call/cc as it is, and add a separate primitive to reify
"one-shot" continuations.
[MzScheme calls this "call/ec" a.k.a. "call-with-escaping-continuation".
It also provide the convenience macros "let/cc" & "let/ec". More info
at <URL:http://www.cs.rice.edu/CS/PLT/packages/doc/mzscheme/node86.htm>.]
-Rob
-----
Rob Warnock, 41L-955 rpw3@sgi.com
Applied Networking http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
1600 Amphitheatre Pkwy. PP-ASEL-IA
Mountain View, CA 94043