[elephant-cvs] CVS elephant/src/elephant
ieslick
ieslick at common-lisp.net
Sat May 5 22:10:41 UTC 2007
Update of /project/elephant/cvsroot/elephant/src/elephant
In directory clnet:/tmp/cvs-serv25290/src/elephant
Modified Files:
classindex.lisp collections.lisp
Log Message:
Documentation edits; document collect and fix picture insertion
--- /project/elephant/cvsroot/elephant/src/elephant/classindex.lisp 2007/04/29 02:10:54 1.42
+++ /project/elephant/cvsroot/elephant/src/elephant/classindex.lisp 2007/05/05 22:10:40 1.43
@@ -390,7 +390,9 @@
(defun map-class (fn class &key collect)
"Perform a map operation over all instances of class. Takes a
- function of one argument, a class instance"
+ function of one argument, a class instance. Setting the collect
+ keyword to true will return a list of the values returned from
+ calls to fn on successive instances of the class."
(let* ((class (if (symbolp class)
(find-class class)
class))
@@ -407,20 +409,8 @@
defined by the index. Specify the class and index by quoted
name. The index may be a slot index or a derived index.
- To map only a subset of key-value pairs, specify the range
- using the :start and :end keywords; all elements greater than
- or equal to :start and less than or equal to :end will be
- traversed regardless of whether the start or end value is in
- the index.
-
- Use nil in the place of start or end to specify the first
- element or last element, respectively.
-
- To map a single value, iff it exists, use the :value keyword.
- This is the only way to travers all nil values.
-
- To map from :end to :start in descending order, set :from-end
- to true. If :value is used, :from-end is ignored"
+ Read the docstring for map-index for details on what the
+ various keywords do."
(declare (dynamic-extent args)
(ignorable args))
(let* ((index (if (symbolp index)
--- /project/elephant/cvsroot/elephant/src/elephant/collections.lisp 2007/04/29 02:10:54 1.30
+++ /project/elephant/cvsroot/elephant/src/elephant/collections.lisp 2007/05/05 22:10:40 1.31
@@ -408,7 +408,10 @@
If values are not provided, then it maps over all values. BTrees
do not have duplicates, but map-btree can also be used with indices
in the case where you don't want access to the primary key so we
- require a value argument as well for mapping duplicate value sets."))
+ require a value argument as well for mapping duplicate value sets.
+ The collect keyword will accumulate the results from
+ each call of fn in a fresh list and return that list in the
+ same order the calls were made (first to last)."))
;; NOTE: the use of nil for the last element in a btree only works because the C comparison
;; function orders by type tag and nil is the highest valued type tag so nils are the last
@@ -465,7 +468,9 @@
the last element in the index. If you want to traverse only a
set of identical key values, for example all nil values, then
use the value keyword which will override any values of start
- and end."))
+ and end. The collect keyword will accumulate the results from
+ each call of fn in a fresh list and return that list in the
+ same order the calls were made (first to last)"))"))
(defmethod map-index (fn (index btree-index) &rest args
&key start end (value nil value-set-p) from-end collect
More information about the Elephant-cvs
mailing list