Hi,
The "choice" statement *does not* create a clone: clones are created by
the search engine only.
I know, I should have written "causes a space to be cloned".
Whenever the program "backtracks" beyond "choice", it also backtracks
the value of FoundWord to what it was (i.e. false). More precise
explanation is that the engine "forgets" the current branch (the one
with @FoundWord==true) and re-starts from the "choice" statement, now
taking the second alternative with @FoundWord==false. And
The computation has been cloned exactly when the program was stuck at
the "choice" statement. At that point, the value of the cell was false.
So when the search engine backtracks, it restarts with a computation
where the cell has value false.
Which is exactly what I wrote, right?
to get things even worse, note that the two alternatives can even be
executed in parallel (concurrently), so there is IMHO really no
"clean" way of the "first" having effect on the "second".
"Clones don't talk to each other." ;-)
Yeah :-)
Cheers,
Filip
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users