On Sat, Feb 12, 2005 at 01:03:26AM -0600, Rod Adams wrote:
> I also find the following incredibly disturbing:
>
> >perl6 -e "$x = 'cat'|'dog'; say $x;"
> dog
> cat
Would that happen though? What's the signature of C<say>? I think
it's something like
multi sub *say ($stream = $*OUT: *$data) { ... }
so autothreading wouldn't happen anyway as S9 says the slurpy array/hash
aren't autothreaded. Also, for user-defined subs I'd imagine that you
could give perl a hint not to autothread it with perhaps a "is
nonthreading" trait.
> Getting iterated executions of a statement without explicitly iterating
> it bothers me greatly.
It's funny how one man's feature is another man's bother :-)
> So, if we are not having Sets, how exactly does one tell if what they
> are holding is a single value scalar, or a multi-value junction?
Using the same introspection capabilities that let's you tell if that
scalar you have is an object of some sort I'd imagine.
> Can a junction hold values of completely different types, or just
> different values of the same type?
Given perl's tendency towards permission rather than restriction, I'd
guess that you could have a junction composed of almost anything.
Consider:
any(3,"fred",@foo, { $^x*$^x})
Now, what that *means* is another story :-)
> If evaluation of one value of a junction causes an error, is $! now a
> junction as well?
How do you "evaluate one value of a junction"? I would think that the
junctive disposition of $! would depend on whether that "one value" were
a junction or not. If not, then you just get $! when that one particular
value is evaluated (like 3/any(2,0,3) would generate a junction of
any(3/2,3/0,3/3) with that 3/0 waiting to be realized (evaluated) and
once it is, then $! would hold the "divide by zero")
In my current sleep-deprived state I think that you're more likely to
get a junction of various $! valus than have $! be a junction of
values (unless you're setting it explicitly)
-Scott
--
Jonathan Scott Duff
[EMAIL PROTECTED]