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



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.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Your comment could not be posted. Error type:
Your comment has been saved. Comments are moderated and will not appear until approved by the author. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.


Post a comment

Comments are moderated, and will not appear until the author has approved them.

Your Information

(Name is required. Email address will not be displayed with the comment.)

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