Updated 2011-01-24 19:59:47 by AK

based on A simple version of Eliza

this page started by TV.

The interesting and fun [eliza] idea, a shrink like character incorporated in a computer program, is fun to have as a tcl script, see that page.

I thought I'd start using it to make a program which can have multiple instances which can talk to themselves:
 Talk::replyto {What is your problem?}
 Talk::replyto {What do you want to talk about?}
 Talk::replyto {We are considering you, not me}
 Talk::replyto {We are considering you, not me}
 Talk::replyto {We are considering you, not me}

To begin with, this plain feed it back to itself is nothing all too staggering, but at least it doesn't get into a loop straight away.

Another initial question may change the course of the conversation:
 How is life?
 Life - do not talk to me about life!
 So ... ?
 Shall we continue?
 What do you want to talk about?
 Anything specific?
 What do you want to talk about?
 Shall we continue?
 Anything specific?
 So ... ?
 Shall we continue?

 set in1 "hi"; set oo {};
 for {set i 0} {$i < 10} {incr i} {
    puts $in1;
    append oo $in1 \n;
    set in1 [Talk::replyto $in1]
 }

 hi
 So ... ?
 So ... ?
 Anything specific?
 Shall we continue?
 Anything specific?
 What do you want to talk about?
 We are considering you, not me
 We are considering you, not me
 We are considering you, not me

So far, not all too thrilling.

A starting bwise version (more or less intended to make such circuits tick and act as test and development guide).

Like two terminals connected inside a network which can 'run' in principle in various ways. In this case it would be handy to (block function) Eval and than (pin data) transfer a terminal, an eliza block, and the other terminals read by one menu or button or key, which is not the way the terminal model works: it gets the data all around, so you get eliza 1 in between and 2's response to that back as 'command' after having fired in circle the net (by pressing return which does a fun_propc).

TV Sep 2 '08 This of course being an example for fun, another example of communicating blocks on a bwise canvas is to make musical notes go from one block to another, see A musical keyboard for BWise and Midi connections !