Created
August 29, 2014 14:59
-
-
Save masak/1322886ed7092c522bd8 to your computer and use it in GitHub Desktop.
Draft of change to smartmatching semantics
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/S03-operators.pod b/S03-operators.pod | |
index a6f3eb5..2d651b0 100644 | |
--- a/S03-operators.pod | |
+++ b/S03-operators.pod | |
@@ -14,8 +14,8 @@ Synopsis 3: Operators | |
Created: 8 Mar 2004 | |
- Last Modified: 18 Aug 2014 | |
- Version: 279 | |
+ Last Modified: 29 Aug 2014 | |
+ Version: 280 | |
=head1 Overview | |
@@ -3687,10 +3687,10 @@ as a default because the more specific types listed above it didn't match. | |
Mix Mix identical bags $_ === X | |
Any Mixy force mix comparison $_.Mix === X.Mix | |
- Positional Array arrays are comparable $_ «===» X (dwims * wildcards!) | |
+ Positional Array arrays are comparable $_ «~~» X | |
Associative Array keys/list are comparable +X == +$_ and $_{X.all}:exists | |
Callable Positional list vs predicate so $_(X) | |
- Any Positional lists are comparable $_[] «===» X[] | |
+ Any Positional lists are comparable $_[] «~~» X[] | |
Hash Hash hash mapping equivalent $_ eqv X | |
Associative Hash force hash comparison $_.Hash eqv X | |
@@ -3750,7 +3750,7 @@ the table assumes the following types will behave similarly: | |
Actual type Use entries for | |
=========== =============== | |
- Iterator Array List | |
+ Iterator Parcel Array | |
named values created with | |
Class, Enum, or Role, | |
or generic type binding Type | |
@@ -3838,11 +3838,11 @@ Various proposed-but-deprecated smartmatch behaviors may be easily | |
$_ X Type of Match Wanted What to use on the right | |
====== === ==================== ======================== | |
Array Num array element truth .[X] | |
- Array Num array contains number *,X,* | |
- Array Str array contains string *,X,* | |
- Array Seq array begins with seq X,* | |
- Array Seq array contains seq *,X,* | |
- Array Seq array ends with seq *,X | |
+ Array Num array contains number X.any | |
+ Array Str array contains string X.any | |
+ Array Seq array begins with seq Fuzzy.new(|X, *) | |
+ Array Seq array contains seq Fuzzy.new(*,|X,*) | |
+ Array Seq array ends with seq Fuzzy.new(*,|X) | |
Hash Str hash element truth .{X} | |
Hash Str hash key existence .{X}:exists | |
Hash Num hash element truth .{X} | |
@@ -3862,7 +3862,7 @@ Various proposed-but-deprecated smartmatch behaviors may be easily | |
Any Set superset relation X.{.all}:exists | |
Any Hash superset relation X.{.all}:exists | |
Any Set sets intersect .{X.any}:exists | |
- Set Array subset relation X,* # (conjectured) | |
+ Set Array subset relation not smart match; $_ (<) set(X) | |
Array Regex match array as string .Cat.match(X) cat(@$_).match(X) | |
(Note that the C<.cat> method and the C<Cat> type coercion both take a |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment