--- Jonathan Scott Duff <[EMAIL PROTECTED]> wrote:
> Maybe we've gone over this before but, if so, I don't remember ...
> 
> On Tue, Oct 29, 2002 at 05:16:48PM -0800, Michael Lazzaro wrote:
> > hyperoperators:
> > 
> >    [op]  - as prefix to any unary/binary operator, "vectorizes" the
> 
> > operator
> 
> >    .     - method call on current topic
> 
> What would [.]method() mean?

@a = @b[.]method();  # Sets each @a[x] to @b[x].method()

Thinking out loud ...

@a = @b[.method()];  # Sets @a to the value stored in @b indexed by 
                     # current context.method()
> 
> >    <      >     <=    >=    ==    !=    <=>      - comparision
> >    lt     gt    le    ge    eq    ne    cmp
> 
> What do these do?
> 
>       if $a [<] @b { ... }            # if $a < all(*@b)

Credible.

>       if @a [<] @b { ... }            # if $a[0] < all(*@b) && 
>                                       #    $a[1] < all(*@b) &&
>                                       #    $a[2] < all(*@b) 

My inclination here is that $a[0] < $b[0] && $a[1] < $b[1] ... 

>       $a [&] @b                       # all($a,*@b)           ???

Questionable. Perhaps an array s.t. @result[x] = $a & @b[x]  ?

On the other hand, I like the idea of being able to distribute an
operator using this syntax...

@a = @b op $c

versus

?? = @b [op] $c

What's the difference? One maybe produces @b[x] op $c while the other
produces -> { $result = $c; for @b -> $b { $c op= $b; } }

But then it's not legal any more in array context unless @b is a LoL.
Erk!


>       @a [&] @b                       # all(*@a,*@b)          ???

Array s.t. @result[x] = @a[x] & @b[x]

>       @a = ($b [,] @c);               # @a = ($b, *@c);       ???

LoL: @a[x] = ($b, @c[x])

> I'm not even sure how to hyper these two.  I guess if I had an array
> of "range objects" I could hyper ;

Hypersemi is probably just the same as hypercomma, since the
circumlocutions needed to use it are such that you'll probably specify
the construction clearly.

But if not:

@a = @b [;] @c  --> @a[x] = ((@b[x]) ; (@c[x]))

> Would this write to several filehandles?
> 
>       print @file_handles [:] "fooey!\n";
> 
> >    ..   - range
> 
> And this is the one that made me start thinking about hypering the
> others
> 
>       @a = @b[..]@c   # @a = ($b[0]..$c[0], $b[1]..$c[1], ...) ???
>       @a = $b[..]@c   # @a = ($b..$c[0], $b..$c[1], ...)      ???
>       @a = @b[..]$c   # @a = ($b[0]..$c, $b[1]..$c, ...)      ???
> 

You, too? Range was the first thing I started trying to hyper.

> I know that this stuff probably seems obvious to everyone, but I'd
> rather have it explicit just in case  :-)

if $x == any(@b[..]@c)
  print "In one of the ranges...\n";

or

if $x ~~ any(@b[..]@c)
  print "In one of the ranges...\n";

Does .. create an implicit flexpr in numeric context, or does it
require smartmatch?

=Austin



__________________________________________________
Yahoo! - We Remember
9-11: A tribute to the more than 3,000 lives lost
http://dir.remember.yahoo.com/tribute

Reply via email to