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

2006.01.04

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d83451e8fb69e200d834a53e3c69e2

Listed below are links to weblogs that reference Context and coercion. :

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.

June 2014

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          

Audrey

My Photo

License