Worlds: Tabs for Programming by Alan Kay
windley.com
windley.com
`amb` takes zero or more expressions, and makes a
nondeterministic (or ``ambiguous'') choice among them,
preferring those choices that cause the program to
converge meaningfully. Here we will explore an embedding
of amb in Scheme that makes a depth-first selection of
the ambiguous choices, and uses Scheme's control operator
call/cc to backtrack for alternate choices.If we don't consider side-effects then "tabs" just degenerates into "continuations".
EDIT: Maybe tabs == "monads" + "continuations"? I don't know enough about haskell to tell.
Originally posted here: http://news.ycombinator.com/item?id=338271
I would think this would be more like backtracking done in a side-effect free way.
For instance, if the "world" / "tab" knows that it's no good, it could self-exit. That'd leave only the "good" one standing without any coordination / communication.
Or, in some other cases, return codes may be good enough.
Even if it's easily possible with current stuff though, it's still an interesting idea.