[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What is a lightweight language

Well, you're not the only one who has toyed with the idea that 

 "call-with-current-continuation to be [not] essential to scheme." 

as you just wrote. Even I, whom Phil Wadler used to introduce as "king of
continuations", have doubted their value for a short time and suggested to
Matthew that he consider throwing them out of Scheme. 

I must say that I have only toyed with the idea and that the back button in
Web browsers, Christian's lucid writing, and our own recent labor in this
area, have totally convinced me that callcc-continuations are necessary and
important for Scheme. 

;; ---

For the curious, based on my dissertation, I have also developed a theory
of the expressive power that distinguishes languages that have the same
computational power in Turing's sense and does so in a natural manner. For
example, a purely functional language is less expressive in this theory
than the same language with destructive variable assignment (:=, =, set!). 
The theory also shows that call/cc adds power that you can't get in any
other way. 

;; --- 

For the even more curious, I published a paper on reasoning about
continuations at LFP 88 (look for a paper that reverses the title of Guy's
original Scheme paper) and that explains things such as 

 (call/cc call/cc)

in a few lines.

-- Matthias