« Dereference and assignment semantics. | Main | "Emit".yaml works. »

2006.01.04

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Okay, the differences between my "context and coersion" and your "context and coersion" follow:

All contexts are types, and my contexts weren't parameterized. List does Plural.

To create a new context, you derive it from an existing context (and mark it as a context).

Here's the important one: No multiple inheritance is allowed in the context hierarchy. This means that Perl 6's contexts cannot be isomorphic to types. See "What's in a context" in my proposal for a proof. (Short version: if there is MI in the context hierarchy, there is no "want" switch, ever, that is guaranteed unambiguous).

Context has an important and cool relationship to MMD functions, described in the very first section.

The way we solve the (\@array).foo problem is quite simple: Every rvalue mention of a variable (including arrays) is a .fetch call on the container; the fetch is polymorphic in context. \$foo (and \@foo) just return the container itself. \42 creates an anonymous scalar, as does \\$foo === \(\$foo).

We'll argue about the parameterization on IRC.

The comments to this entry are closed.

December 2015

Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

License