rartym@cybavax.UUCP (Richard Artym) (12/10/84)
[gobble this line, not the rest please] Is there life in this newsgroup? Speak up! (Lispkit will do!) -- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv > Rich Artym, Elec.Eng., Univ.College of Swansea, Swansea SA2 8PP, Wales, UK. < > UUCP : {UK}!ukc!ru-cs44!cybavax!rartym ; JANET : rartym@swxa/234207920018 < ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mccaugh@uiucdcs.UUCP (01/01/85)
Yes, if you can call it that--life thrives hereabouts...though ofttimes conditions mandate perspicuity. Now, if LISP is so computationally com- plete, it should not be such a chore to implement coroutines. Without the obvious resort to machine-language implementations of "resume" or C-level SWITCH statements, how can this be done in pure LISP? (That it can be done oughtn't to be the question, if LISP is computationally com- plete.) If this can NOT be accomplished in pure LISP, a proof would be warmly welcomed (as evidence that LISP is not so computationally complete). --uiucmsl!mccaugh
shebs@utah-cs.UUCP (Stanley Shebs) (01/04/85)
I don't know exactly what "pure Lisp" is supposed to be - I've seen several definitions floating around. There are at least two main flavors. The simpler version of Lisp does not have functions as first-class objects. Implementations include such dialects as Maclisp, Franz, and PSL. In these dialects, there is no good way to do coroutines (except by brute force, amounting to building your own specialized interpreter). The better versions of Lisp have promoted functions to first-class status. The data objects themselves are called *closures* (essentially a lambda expression + a context). Implementations include Scheme (the grandaddy), Scheme84, T, Common Lisp, and 3-Lisp. Coroutines are ridiculously easy - just build the function corresponding to the remaining computation (usually called a *continuation*), save it somewhere, then call the other coroutine's continuation. stan shebs (shebs@utah-cs)