Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!unido!fauern!tub!net From: net@tub.UUCP (Oliver Laumann) Newsgroups: comp.lang.scheme Subject: Re: Scheme as an extension language and call/cc Message-ID: <1472@tub.UUCP> Date: 21 Aug 90 17:38:40 GMT References: Reply-To: net@tub.UUCP (Oliver Laumann) Distribution: comp Organization: Technical University of Berlin, Germany Lines: 23 In article pk@tut.fi (Kellom{ki Pertti) writes: > For most applications, "almost first class" continuations would be quite > sufficient. What I'm thinking of is some kind of catch-throw like mechanism The distinction here is not first-class versus non-first-class continuations, but "downward" versus "upward" continuations, as I have just learned with the friendly help of some Lisp experts. "Downward" continuations are those equivalent to Lisp's catch/throw (and usually easy to implement, e.g. by means of setjmp/longjmp in C or by means of catch/throw in Lisp); "upward" continuations are those like the one returned by the function "f" below: (define (f) (call-with-current-continuation (lambda (c) c))) While we're at it-- I'm just working on a version of the Extension Language Kit (Elk) that doesn't require assembly language code any longer (and thus can be ported to new machines easily), but will only support downward continuations in this case. -- Oliver Laumann net@TUB.BITNET net@tub.cs.tu-berlin.de net@tub.UUCP