Dan Sugalski wrote:

Creates a disjunction of three classnames, then calls the C<.run> method on each, in parallel, and returns a disjunction of the results
>> of the calls (which, in the void context is ignored, or maybe
>> optimized away).
I was afraid you'd say that.
Then you shouldn't have asked the question. ;-)


It does rather complicate things, as the interpreter really isn't set up to be quantum for control flow.
QCF is definitely not required because "Junctions Are Not Quantum".
Normal threading is quite enough.

And even that's not *essential*. The Q::S module can do this now:

	use Quantum::Superpositions;

	my $test = all(\&tall, \&dark, \&handsome);
	if ($test->()) { print "I'm in lurv!"}

	my $frankie = any(Tall->new(), Dark->new(), Gruesome->new());
	$frankie->spark();
	$frankie->live();
	$frankie->menace();
	# etc.


and just evaluates the various calls serially.

It would be *vastly* better thought integrate junctive calls with
the standard threading behaviour.


Can we at least guarantee undefined order of operations on things?
Yes. Please. I would certainly expect that the order of execution
is undefined, since the states of a junction are not themselves ordered.

Damian

Reply via email to