Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[svn:perl6-synopsis] r13488 - doc/trunk/design/syn

6 views
Skip to first unread message

la...@cvs.perl.org

unread,
Dec 5, 2006, 12:37:28 PM12/5/06
to perl6-l...@perl.org
Author: larry
Date: Tue Dec 5 09:37:26 2006
New Revision: 13488

Modified:
doc/trunk/design/syn/S03.pod
doc/trunk/design/syn/S06.pod

Log:
Clarify Set/Bag relationship to KeyHash.
Clarify default precedence when creating infix via ::=.


Modified: doc/trunk/design/syn/S03.pod
==============================================================================
--- doc/trunk/design/syn/S03.pod (original)
+++ doc/trunk/design/syn/S03.pod Tue Dec 5 09:37:26 2006
@@ -12,9 +12,9 @@

Maintainer: Larry Wall <la...@wall.org>
Date: 8 Mar 2004
- Last Modified: 13 Nov 2006
+ Last Modified: 5 Dec 2006
Number: 3
- Version: 76
+ Version: 77

=head1 Changes to Perl 5 operators

@@ -582,10 +582,8 @@
$_ $x Type of Match Implied Matching Code
====== ===== ===================== =============
Any Code:($) scalar sub truth match if $x($_)
- Hash Hash hash keys identical match if $_.keys === $x.keys
- Hash Set members identical match if $_.keys === $x
- Set Set members identical match if $_ === $x
- Hash any(Hash) hash key intersection match if exists $_{any(Hash.keys)}
+ Hash Hash hash keys identical sets match if $_.keys === $x.keys
+ Hash any(Hash) hash key intersection match if exists $_{any($x.keys)}
Hash Array hash value slice truth match if $_{any(@$x)}
Hash any(list) hash key slice existence match if exists $_{any(list)}
Hash all(list) hash key slice existence match if exists $_{all(list)}
@@ -672,6 +670,12 @@
both sides, and we can decide when we see more examples of how
it'll work out.

+For the purpose of smartmatching, all C<Set> and C<Bag> values are
+considered to be of type C<KeyHash>, that is, C<Hash> containers
+where the keys represent the unique objects and the values represent
+the replication count of those unique keys. (Obviously, a C<Set> can
+have only 0 or 1 replication because of the guarantee of uniqueness).
+
=head1 Meta operators

Perl 6's operators have been greatly regularized, for instance, by
@@ -973,6 +977,9 @@
$a foo $b # [foo] $a, $b
$a foo $b foo $c # [foo] $a, $b, $c

+(Note that any infix generated with C<::=> will default to the precedence
+of C<+>. When that is not desired you must use C<is equiv>. See S06.)
+
If the reduction operator is defined separately from the infix operator,
it must associate the same way as the operator used:

Modified: doc/trunk/design/syn/S06.pod
==============================================================================
--- doc/trunk/design/syn/S06.pod (original)
+++ doc/trunk/design/syn/S06.pod Tue Dec 5 09:37:26 2006
@@ -13,9 +13,9 @@

Maintainer: Larry Wall <la...@wall.org>
Date: 21 Mar 2003
- Last Modified: 28 Nov 2006
+ Last Modified: 5 Dec 2006
Number: 6
- Version: 62
+ Version: 63


This document summarizes Apocalypse 6, which covers subroutines and the
@@ -1366,8 +1366,8 @@
List Lazy Perl list (composed of Seq and Range parts)
Seq Completely evaluated (hence immutable) sequence
Range A pair of Ordered endpoints; gens lazy Seq in list context
- Set Unordered Seq that allows no duplicates
- Bag Unordered Seq that allows duplicates
+ Set Unordered Seq that allows no duplicates (does KeyHash, but ro)
+ Bag Unordered Seq that allows duplicates (does KeyHash, but ro)
Junction Sets with additional behaviours
Pair Seq of two elements that serves as a one-element Mapping
Mapping Pairs with no duplicate keys

0 new messages