David Hopwood wrote:
In some other languages with dataflow variables, they have to be declared. For example in E (www.erights.org), "def x" declares a dataflow variable, while "var x" declares a mutable variable. The latter is equivalent to a variable associated with a first-class mutable "slot" or cell; E's kernel language is similar to Oz in that respect.
There is a slight confusion between dataflow variables and futures here! A future is the result of a concurrent computation. Dataflow means that a thread automatically suspends when it needs data that is not available yet.
The language E has futures (called "promises"), but there is no dataflow at all in E! Thread suspension is simply forbidden in E. When you create a promise in E, you have to explicitly create something like a "listener", which creates a thread when the promise is resolved, i.e., the result is known. Dataflow makes all this machinery dynamic and implicit.
Cheers, raph _________________________________________________________________________________ mozart-users mailing list [email protected] http://www.mozart-oz.org/mailman/listinfo/mozart-users
