Author: lwall
Date: 2010-03-19 18:51:46 +0100 (Fri, 19 Mar 2010)
New Revision: 30126
Modified:
docs/Perl6/Spec/S03-operators.pod
Log:
[S03] clarify that nearly all normal operators autothread, including === and eqv
Modified: docs/Perl6/Spec/S03-operators.pod
===================================================================
--- docs/Perl6/Spec/S03-operators.pod 2010-03-18 21:07:41 UTC (rev 30125)
+++ docs/Perl6/Spec/S03-operators.pod 2010-03-19 17:51:46 UTC (rev 30126)
@@ -15,8 +15,8 @@
Created: 8 Mar 2004
- Last Modified: 15 Mar 2010
- Version: 198
+ Last Modified: 19 Mar 2010
+ Version: 199
=head1 Overview
@@ -1168,7 +1168,7 @@
=head2 Chaining binary precedence
All operators on this precedence level may be I<chained>; see
-L</Chained comparisons>.
+L</Chained comparisons>. They all return a boolean value.
=over
@@ -1231,6 +1231,14 @@
the objects are ignored. These semantics are those used by hashes that
allow objects for keys. See also L</Comparison semantics>.
+Note that C<===> is defined with an C<(Any,Any)> signature, and therefore
+autothreads over junctions; hence it I<cannot> be used to determine if two
+objects are the same, if either or both of them are junctions. However,
+since C<.WHICH> is a macro that always returns a value and never autothreads,
+you can easily work around this limitation by saying:
+
+ $junk1.WHICH eqv $junk2.WHICH
+
=item *
Canonical equivalence
@@ -1243,6 +1251,10 @@
that allow only values for keys (such as PerlĀ 5 string-key hashes).
See also L</Comparison semantics>.
+Note that C<eqv> autothreads over junctions, as do all other comparison
+operators. (Do not be confused by the fact that these return boolean values;
+in general, only boolean I<context> forces junction collapse.)
+
=item *
Negated relational operators