On Wed, 4 Sep 2002 22:51:53 -0700 (PDT), Sean O'Rourke wrote:
> On Wed, 4 Sep 2002, Brent Dax wrote:
> > Sean O'Rourke:
> > # On Wed, 4 Sep 2002, Brent Dax wrote:
> > # > What if (say) @b is a two-dimensional array?
> > #
> > # Then you get "interesting values of undef" :).  Seriously, I
> > # suspect one of the following:
> > #
> > # 1 - runtime error
> > # 2 - each row (or column) of @b numified to its length
> > # 3 - the first element of each row/col of @b
> > # 4 - the other arrays boosted to the highest dimension
> > #
> > # I like #2, because it is easy and keeps hyper-operation
> > # simple.  If those aren't just numeric operators, but some
> >
> > It's already been defined to be #4.

Where? I just re-skimmed A3 and E3, but didn't find that. All A3 says is
that scalars get promoted to arrays, which makes sense. Going any further
doesn't necessarily DWIM.

> Argh.  Then I need to whinge a bit -- what if it's a ragged array?  What
> if different elements have different dimensions themselves, e.g.
> "[1,[2,3]]"?  I think there's serious can-of-worms potential here, and by
> making hyping more "intelligent", we'll actually make it useful in fewer
> cases.

I defintely agree. Wouldn't it be simpler to just ignore the
extra-dimensionality? Especially when it's a user defined operator;
it could actually want one scalar and one array operand. Maybe we should
have multiple carets to denote hyper-hyper-operators if that's what the
user wants:

  @a = @b ^^* @c;

If hyperoperators get transformed into loops behind the scenes, this
shouldn't be too hard to implement.

-- 
        Peter Haworth   [EMAIL PROTECTED]
Override self destruct? (y/n@^%i@&$#
NO CARRIER

Reply via email to