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]

Reply via email to