OK, by my count -- after editing to reflect Larry's notes -- only a few issues remain before the ops list can be completed.

----

1) Need a definitive syntax for hypers,
^[op] and «op»
have been most seriously proposed -- something that keeps a
bracketed syntax, but solves ambiguity issues.

2) Possible inclusion of unary prefix ^, meaning "complement".
(Assuming doesn't conflict with (1))

3) Possible inclusion of "like"/"unlike" or similar as synonyms for ~~ !~. Which we don't have to decide now.

----

All other op issues, by my count, revolve around the meanings of specific hyperop constructs. There is one, overriding question with the hyperops, which is the precise relation between an op, an assignment op, and their (three!) hyperop equivs:

A op B
A op= B
A ^[op] B
A ^[op=] B
A ^[op]= B

If we can formalize the precise relationship between the three hypers in the presence of scalar and list (and hash?) values for A and B, I believe we can answer nearly all the hyperop questions definitively. For example:

@a ^[op] @b # array v array
$a ^[op] @b # scalar v array
@a ^[op] $b # array v scalar
$a ^[op] $b # scalar v scalar

@a ^[op=] @b # array v array
$a ^[op=] @b # scalar v array
@a ^[op=] $b # array v scalar
$a ^[op=] $b # scalar v scalar

@a ^[op]= @b # array v array
$a ^[op]= @b # scalar v array
@a ^[op]= $b # array v scalar
$a ^[op]= $b # scalar v scalar

Some of these are nonsensical, some of them aren't. So which are which, and can someone demonstrate that the rule holds true for ALL hyperoperators, as opposed to just MOST? ;-)

MikeL

Reply via email to