For this version of the operator list, (since I am unsure that _every_ unary/binary op has a meaningful hyper, and some tentatively have _two_) I have placed all of them in EXPLICITLY. Please check that I didn't miss any, or put any in that are incorrect.
hyperoperators:
[op] - as prefix to any unary/binary operator, "vectorizes" the operator
unary (prefix) operators (with all hyper equivs):
\ [\] - reference to
* [*] - list flattening
? [?] - force to bool context
! [!] - force to bool context, negate
not [not] - force to bool context, negate
+ [+] - force to numeric context
- [-] - force to numeric context, negate
+^ [+^] - force to numeric context, complement
~ [~] - force to string context
~^ [~^] - force to string context, complement
. [.] - method call on current topic
++ [++] - preincrement
-- [--] - predecrement
unary (postfix) operators:
++ [++] - postincrement
-- [--] - postdecrement
... [...] - [maybe] same as ..Inf
other postfix operators:
() - (when operator is expected)
[] - array access
{} - hash access
binary operators (with ALL hyper equivs!):
+ - * / % ** x xx ~ - arithmetic
+= -= *= /= %= **= x= xx= ~=
[+] [-] [*] [/] [%] [**] [x] [xx] [~] - (hyperversions)
[+]= [-]= [*]= [/]= [%]= [**]= [x]= [xx]= [~]=
[+=] [-=] [*=] [/=] [%=] [**=] [x=] [xx=] [~=]
< > <= >= == != <=> - comparision
lt gt le ge eq ne cmp
[<] [>] [<=] [>=] [==] [!=] [<=>] - (hyperversions)
[lt] [gt] [le] [ge] [eq] [ne] [cmp]
&& || ^^ // - boolean operations
&&= ||= ^^= //=
and or xor err
[&&] [||] [^^] [//] - (hyperversions)
[&&]= [||]= [^^]= [//]=
[&&=] [||=] [^^=] [//=]
[and] [or] [xor] [err]
.& .| .^ << >> - bitwise (integer) operations
.&= .|= .^= <<= >>=
[.&] [.|] [.^] [<<] [>>] - (hyperversions)
[.&]= [.|]= [.^]= [<<]= [>>]=
[.&=] [.|=] [.^=] [<<=] [>>=]
~& ~| ~^ - charwise (string) operations
~&= ~|= ~^=
[~&] [~|] [~^] - (hyperversions)
[~&]= [~|]= [~^]=
[~&=] [~|=] [~^=]
?& ?| ?^ - [maybe] C-like bool operations
?&= ?|= ?^= - (result is always just 1 or 0)
[?&] [?|] [?^] - (hyperversions)
[?&]= [?|]= [?^]=
[?&=] [?|=] [?^=]
& | ^ - superpositional operations
&= |= ^= - conjunctive, disjunctive, exclusive
all any one none - conj, disj, excl, dismissive
sum prod cat reduce - [maybe]
[&] [|] [^] - (hyperversions)
[&]= [|]= [^]=
[&=] [|=] [^=]
[all] [any] [one] [none]
[sum] [prod] [cat] [reduce]
~~ !~ - smart match, smart non-match
[~~] [!~] - smart match, smart non-match
like unlike - [maybe]
[like] [unlike] - [maybe]
=> [=>] - pair creator
, [,] - list creator
; [;] - "greater comma", list-of-lists creator
: [:] - adverbial
. [.] - method call
.. [..] - range
... [...] - [maybe] range, exclusive of endpoint
= [=] - assignment
:= [:=] - binding
::= [::=] - binding, but more so
trinary operator:
?? :: - if/else
parens, misc, and quotelike operators
()
[] - [when term is expected]
{} - [when term is expected]
m// - shorthand, "matches"
s/// - shorthand, "substitute"
tr/// - shorthand, "transliterate"
'...' "..." `...` /.../ << >>
q qq qx rx qw [qm?]
[+ qr ?]
<...> - readline
(heredocs) - [exact format unknown]
named unary (prefix) operators, terms, and other important assorteds, identified
when possible:
-X [-X] - [op] filetest operators
ref [ref] - [op]
exists [exists] - [op]
delete [delete] - [op]
defined [defined] - [op]
undef [undef] - [op]
undef - [term]
temp ? - [op]
let ? - [op]
but ? - [op] val properties
${ } - [deref] dereference scalarref
@{ } - [deref]
%{ } - [deref]
&{ } - [deref]
... - [term] yada**3
Inf - [term]
Nan - [term]
is - [declar] var properties
-> - [declar] like 'sub'
hash - [declar] force hash context
MikeL
- Re: [RFC] Perl6 HyperOperator List Michael Lazzaro
- Re: [RFC] Perl6 HyperOperator List Larry Wall
- Re: [RFC] Perl6 HyperOperator List Martin D Kealey
- Re: [RFC] Perl6 HyperOperator List Austin Hastings
- Re: [RFC] Perl6 HyperOperator List Buddha Buck
- Re: [RFC] Perl6 HyperOperator List Andrew Wilson
- RE: [RFC] Perl6 HyperOperator List Brent Dax
- RE: [RFC] Perl6 HyperOperator List Austin Hastings
- RE: [RFC] Perl6 HyperOperator List Larry Wall
- Re: [RFC] Perl6 HyperOperator Li... Michael Lazzaro
- Re: [RFC] Perl6 HyperOperato... Larry Wall