Andrew Whitworth wrote:
> The issue mentioned in the Synopses is that junctions autothread, and
> autothreading in a conditional could potentially create multiple
> threads of execution, all of which are taking different execution
> paths. At some point, to bring it all back together again, the various
> threads could use a continuation to return back to a single execution
> flow.
Hmm. If that's the case, let me suggest that such an approach would
be counterintuitive, and not worth considering. When I say "if any of
these books are out of date, review your records for inconsistencies;
otherwise, make the books available for use", I don't expect to end up
doing both tasks. In a similar manner, I would expect junctions not
to autothread over conditionals, but to trigger at most one execution
path (continuation?). The real issue that needs to be resolved, I
believe, is illustrated in the following statement:
"if any of these books are out of date, review them." The question,
as I understand it, is "what is meant by 'them'?" Is it "these
books", or is it "the ones that are out of date"? In perl 6 terms:
$x = any(@books);
if $x.out-of-date { $x.review }
Is this equivalent to:
if any(@books).out-of-date { any(@books).review }
or:
if any(@books).out-of-date { any(@books.grep {.out-of-date} ).review }
I don't mean to reopen the debate; though if we can get some
resolution on this, I won't mind. But I _would_ at least like to see
the summary of the issue stated a bit more clearly.
--
Jonathan "Dataweaver" Lang