1. 8
  1. 6

    Admittedly, arguing against call/cc in the present day might seem unnecessary, since it’s rarely found outside scheme, and scheme is a smallish niche.

    But many people (myself included) have a lingering feeling that it was a very nice, elegant idea, and a shame that it isn’t more widely seen. As the article acknowledges, “The generality of call-with-current-continuation, or call/cc, as the ultimate abstraction of control is alluring.”

    This article was interesting as the only one I’ve run across that argues at length the opposite case,

    The primitive call/cc is a bad abstraction – in various meanings of `bad' shown below, – and its capture of the continuation of the whole program is not practically useful. The only reward for the hard work to capture the whole continuation efficiently is more hard work to get around the capture of the whole continuation.

    1. 5

      I’m surprised this essay doesn’t even mention the fact that implementing call/cc is hugely impactful on the design of the scheme interpreter or compiler. Some implementations (Bigloo?) don’t bother because a semantically correct call/cc is at odds with their other goals.