[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Comments on draft 6 about call/cc
-----BEGIN PGP SIGNED MESSAGE-----
For what it's worth, I have thought for some time now that call/cc
is very clever but somehow a bit ... wrong ... as an abstraction.
It's hard to explain fully why, but I suppose it has to do with the
principle of least surprise. I think it's too fine-grained, too
prone to exposing implementation details, too unintuitive in its
operation, and a poor match for the context-switching and
multithreading implementations of modern hardware and operating
As it stands there are many things people want to do that call/cc
is *almost* a good way to do. But most of those things have
lingering problems (like keeping files open while you can still
re-enter a context, but having some guarantee of closing them
when you can't), and when people try implementing these things
with call/cc their code tends to become hairier rather than
simpler as they iteratively approach solutions.
And there are too many people whose design senses I respect
(Graham & Pitman among others) who also don't care for it.
Really, I don't know what to suggest replacing it with. But it
has been ... suspect ... for some time, I think.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----
Scheme-reports mailing list