Mike Lazarro had been making a list of all the operators that Perl6 has.
The latest version I could find was Take 6 (at
http://archive.develooper.com/perl6-l...@perl.org/msg12130.html).
So, my questions:
1. Is there a more recent version of this list?
2. Perhaps this list ought to be expanded to specify how the operators
relate to context (e.g., C<+> applies numeric context to LHS and RHS).
I'm happy to give this a go, but I'd prefer the most recent operator
list first.
3. Speaking of context, what's the complete tree of contexts now?
Am I missing anything from this? Are ArrayRef and HashRef et al still
needed, or are we going away from the %{...} notation for dereferencing
a hash?
Type context
|
+--- Scalar
| |
| +--- Bool
| |
| +--- Num
| | |
| | +--- Int
| |
| +--- Str
| |
| +--- Ref
| |
| +--- HashRef
| |
| +--- ArrayRef
| |
| +--- CodeRef
| |
| +--- ScalarRef
|
+--- List
| |
| +--- (lazy and eager?)
|
+--- Void
(Is there a Pair context? PairRef? My guess is no.)
What about other, orthogonal, context-like things?
Lvalue/Rvalue (i.e., do to with C<=>)?
Binding/Nonbinding (i.e., to do with C<:=>)?
--
Debbie Pickett http://www.csse.monash.edu.au/~debbiep deb...@csse.monash.edu.au
"Have you ever seen anything so wonderful in your entire life?" "Wow, cool!
But, err, what is it?" "I don't know, but I bet Scuttle will." - _The Little
Mermaid_
Nope, I think that version is still good. There will be the addition
of the piping ops <== and ==>, and I'm not sure if (a) the Unicodeness
of >>op<< was ever decided upon, and (b) whether there's still an
>>op<< vs. <<op>> issue.
Note also that some of the things may or may not be "real" operators,
but those should all be clearly marked in that version.
> 2. Perhaps this list ought to be expanded to specify how the operators
> relate to context (e.g., C<+> applies numeric context to LHS and RHS).
> I'm happy to give this a go, but I'd prefer the most recent operator
> list first.
It'll be huge, but needs to be done, that's for sure. I'd certainly be
happy if you gave it a shot!
> 3. Speaking of context, what's the complete tree of contexts now?
> Am I missing anything from this? Are ArrayRef and HashRef et al still
> needed, or are we going away from the %{...} notation for dereferencing
> a hash?
A6 implies that there will be a knowable context for every type, so
your type-context tree probably looks nearly identical to the P6 type
hierarchy. But what that full type tree is, I dunno. :-) We left it
hanging...
-- Is a C<num> a C<Num>, or is a C<Num> a C<num>?
-- Is an C<int> a C<num>, or are they both subclasses of C<numeric>?
-- Are things like C<HashRef> actually called C<Ref::Hash> or similar?
-- Is there a difference between C<Array> and C<List> context?
-- etc.
We also talked on-list about whether 'void' could be considered a type,
but nothing came out of it. So this is definitely an area that needs
some serious help...
> Type context
> |
> +--- Scalar
> | +--- Bool
> | +--- Num
> | | +--- Int
> | +--- Str
> | +--- Ref
> | +--- HashRef
> | +--- ArrayRef
> | +--- CodeRef
> | +--- ScalarRef
> +--- List
> | +--- (lazy and eager?)
> |
> +--- Void
>
> (Is there a Pair context? PairRef? My guess is no.)
(There's also Object, Code, and all the others in A6, approx. page 8.)
MikeL