Nondeterministic programming(ccs.neu.edu) |
Nondeterministic programming(ccs.neu.edu) |
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-28.html... http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-28.html...
Using this operator make the code really clear (IMHO) and I suppose it is its purpose.
Furthermore, if one day we discover an hardware able to be a non-deterministic Turing machine is discovered, the code will work.
[1]: I doubt such an hardware exists. But you could look about quantum computer for something close to what is a non-deterministic Turing machine.
The embedding recalls the continuation strategies used to implement Prolog-style logic programming, but is sparer because the operator provided is much like a Scheme boolean operator, does not require special contexts for its use, and does not rely on linguistic infrastructure such as logic variables and unification.
The references are better than the posted link.
I have found a couple of uses for this in the past and deparately tried to port the examples to C# (unsuccessfully).