Author: larry
Date: Tue Nov 4 15:14:32 2008
New Revision: 14599
Modified:
doc/trunk/design/syn/S02.pod
Log:
Define () as the Nil type
Modified: doc/trunk/design/syn/S02.pod
==============================================================================
--- doc/trunk/design/syn/S02.pod (original)
+++ doc/trunk/design/syn/S02.pod Tue Nov 4 15:14:32 2008
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <[EMAIL PROTECTED]>
Date: 10 Aug 2004
- Last Modified: 14 Oct 2008
+ Last Modified: 4 Nov 2008
Number: 2
- Version: 139
+ Version: 140
This document summarizes Apocalypse 2, which covers small-scale
lexical items and typological issues. (These Synopses also contain
@@ -860,6 +860,7 @@
built-in C<undef> and C<fail> functions. (See S04 for how failures
are handled.)
+ Nil Empty list viewed as an item
Object Uninitialized (derivatives serve as protoobjects of classes)
Whatever Wildcard (like undef, but subject to do-what-I-mean via MMD)
Failure Failure (lazy exceptions, thrown if not handled properly)
@@ -875,6 +876,13 @@
type is also undefined, but excludes C<Junctions> so that autothreading
may be dispatched using normal multiple dispatch rules.)
+The C<Nil> type is officially undefined as an item but interpolates
+as a null list into list context, and an empty capture into slice
+context. A C<Nil> object may also carry failure information,
+but if so, the object behaves as a failure only in item context.
+Use C<Failure>/C<undef> when you want to return a hard failure that
+will not evaporate in list context.
+
=head2 Immutable types
Objects with these types behave like values, i.e. C<$x === $y> is true