diff Doc/lib/libstdtypes.tex @ 33899:eb979c3f14ba legacy-trunk

Mistakes in the "sequence types" page: * explanation for example with lists of lists made confusing use of the word "contains" to mean "is built out of". * wrong formula for slices with step. Is it ok to use LaTeX formulas (which become images in the html document)? This version needs one because it's based on a fraction. Just writing "\code{(j-i)/k}" here would be ambiguous because it looks like a rounding-down-to-the-previous-integer division, which is not what we need here. Of course we could write "\code{float(j-i)/k}" but it just looks confusing.
author Armin Rigo <arigo@tunes.org>
date Thu, 04 Nov 2004 11:29:09 +0000
parents af300403edb8
children 023801332395
line wrap: on
line diff
--- a/Doc/lib/libstdtypes.tex	Thu Nov 04 05:45:44 2004 +0000
+++ b/Doc/lib/libstdtypes.tex	Thu Nov 04 11:29:09 2004 +0000
@@ -501,10 +501,11 @@
 [[3], [3], [3]]
 \end{verbatim}
 
-  What has happened is that \code{lists} is a list containing three
-  copies of the list \code{[[]]} (a one-element list containing an
-  empty list), but the contained list is shared by each copy.  You can
-  create a list of different lists this way:
+  What has happened is that \code{[[]]} is a one-element list containing
+  an empty list, so all three elements of \code{[[]] * 3} are (pointers to)
+  this single empty list.  Modifying any of the elements of \code{lists}
+  modifies this single list.  You can create a list of different lists this
+  way:
 
 \begin{verbatim}
 >>> lists = [[] for i in range(3)]
@@ -529,8 +530,10 @@
 
 \item[(5)] The slice of \var{s} from \var{i} to \var{j} with step
   \var{k} is defined as the sequence of items with index 
-  \code{\var{x} = \var{i} + \var{n}*\var{k}} such that \code{0}
-  \code{<=} \var{n} \code{<} \code{abs(i-j)}.  If \var{i} or \var{j}
+  \code{\var{x} = \var{i} + \var{n}*\var{k}} such that
+  $0 \leq n < \frac{j-i}{k}$.  In other words, the indices
+  are \code{i}, \code{i+k}, \code{i+2*k}, \code{i+3*k} and so on, stopping when
+  \var{j} is reached (but never including \var{j}).  If \var{i} or \var{j}
   is greater than \code{len(\var{s})}, use \code{len(\var{s})}.  If
   \var{i} or \var{j} are omitted then they become ``end'' values
   (which end depends on the sign of \var{k}).  Note, \var{k} cannot