I've been playing with the programming language Oz lately. It has an interactive interface. Conceptually, it's a lot like the Python shell. However, when you "Browse" (i.e. output) values, it outputs them to a second window called the "Browser". I could never figure out why a separate window was needed until just the other day.
If you feed the following into the interactive interface, it'll block (i.e. it won't show anything):
Ok, that's kind of interesting, but it gets weirder! If you feed the following into the interactive interface, it'll show "D" in the browser:
If you feed the following into the interactive interface, it'll block (i.e. it won't show anything):
declare A B C inHowever, if you feed it the following:
C=A+B
{Browse C}
A=10It'll display 210 in the browser. It knows that it can't display C until it figures out values for A and B.
B=200
Ok, that's kind of interesting, but it gets weirder! If you feed the following into the interactive interface, it'll show "D" in the browser:
declare D inNow, if you go back and actually bind D to a value:
{Browse D}
D=10It'll change the D to a 10 in the browser. Crazy!
Comments
You should have a peek at verilog or vhdl -- these are event driven modeling languages used in hardware design. This kind of thing is pervasive there.