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

Re: A plea for a new old language




 Michael Vanier <mvanier@cs.caltech.edu> wrote:
>
> For what it's worth, I find CPS to be easier to understand than scheme
> continuations.  The word "continuation" (on this list, anyway) is usually
> used to mean "first-class continuations, reified as a separate language
> construct" i.e. what call/cc in scheme allows you to manipulate.
...
> CPS, on the other hand, only really requires first-class functions and tail
> calls, which parrot already will have, right?  How you *use* those
> first-class functions and tail calls may seem very opaque to some of your
> intended users, but you don't have to make a big deal about it i.e. "this
> is what computer scientists refer to as continuation-passing style; all
> this means is ...".


I lead a small open source project named Mnet [1], which is written in 
Python [2].  We recently had a discussion about which idioms we use for 
concurrency (local and remote), and I said "We use Continuation-Passing-
Style...".  One of the other developers said "What is THAT?".  I said "That's 
where a function doesn't return a result value, but instead takes a callback 
argument and invokes the callback with the result value.".  He said "Oh, that.".

Regarding the plea for a language, the E language [3] follows the Actors model 
of concurrency, which seems to be the same thing as CPS as far as I know.  
Please forgive my ignorance about Actors.  Here's a page describing E's debt to 
Actors: [4].

Regards,

Zooko

http://zooko.com/
         ^-- under re-construction: some new stuff, some broken links

[1] http://mnet.sf.net/
[2] Oh come on -- you know where the Python home page is!
[3] http://erights.org/
[4] http://erights.org/history/index.html