[plt-scheme] Grafting a console onto universe, hackety hack.

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Jun 3 10:45:50 EDT 2010

On Jun 3, 2010, at 3:08 AM, Jordan Johnson wrote:

> On Jun 2, 2010, at 7:24 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>> I am trying to figure what exactly you're trying to achieve.
>> I have parameterized the 'world' over many things with mixins
>> and all, but I have not considered a reuse where you want to
>> bring events from somewhere else. I think it should be possible
>> to expose some private interface -- if I knew what you wanted.
> Sorry if the example code wasn't clear.  

Your code was clear. The point of the code wasn't. 

> I'm thinking of the Interactions window, or further afield, some chat and MUD clients, or terminal emulators, where the user interface essentially consists of:
> - a command line for entering text
> - a scrolling display of the interaction history, which cannot be edited

I assigned a chat room to my Bootcamp class last fall. Messages were at most N chars long, and they were sent when the user reached maximum width and/or hit return. If too many messages were sent, the oldest ones were removed from the display. 

No scrolling. See http://www.ccs.neu.edu/home/matthias/107-f09/Assignments/9.html

When I first came up with this functional style of IO, I had hoped to get scrolling in there. I put a PhD student on (Carl), but that didn't work out. I had really hoped -- and still do deep down somewhere -- that it does scale. 

Shriram and Danny are kind of working on this problem. 

> Does that make my intent clearer?


I am wondering whether you could write a console that is a participant of a 'universe' and use a local server to connect the text field and the displayed text. But that's also like set! so it's too imperative. 

;; --- 

In my spare time, I will think about parameterizing big-bang over the text/window field that it displays. I know it's doable in principle because classes are first-class and it could be a neat test case for just that reason. 

-- Matthias

Posted on the users mailing list.