summaryrefslogtreecommitdiffstats
path: root/slib.info
diff options
context:
space:
mode:
authorThomas Bushnell, BSG <tb@debian.org>2007-12-28 16:25:32 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:39 -0800
commitd8ae23691ed6392b7f320f5fa7d4dd78ae52c10e (patch)
treeb20b8bc02e854c4c86d39ee22a0638a8b06e01af /slib.info
parentedd1ebef3ad774e7cbcc2f5918d555bfb0b44091 (diff)
parent64f037d91e0c9296dcaef9a0ff3eb33b19a2ed34 (diff)
downloadslib-d8ae23691ed6392b7f320f5fa7d4dd78ae52c10e.tar.gz
slib-d8ae23691ed6392b7f320f5fa7d4dd78ae52c10e.zip
Import Debian changes 3a5-1debian/3a5-1
slib (3a5-1) unstable; urgency=low * New upstream release. * slib.texi (Library Catalogs): Repeat change from 3a3-3. * Makefile: Repeat $(htmldir)slib_toc.html changes from 3a2-1. * guile.init: (library-vicinity): Repeat change from 3a4-2. * debian/rules (binary-indep): Don't hide .init files in a separate subdirectory, thus conforming better to the usual slib practice. Put a symlink in place to ease transitions. (Closes: #407370).
Diffstat (limited to 'slib.info')
-rw-r--r--slib.info3857
1 files changed, 2348 insertions, 1509 deletions
diff --git a/slib.info b/slib.info
index 13c8d59..6535625 100644
--- a/slib.info
+++ b/slib.info
@@ -1,23 +1,18 @@
This is slib.info, produced by makeinfo version 4.8 from slib.texi.
-This manual is for SLIB (version 3a4, October 2006), the portable |
-Scheme library. |
- |
-Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
- |
- Permission is granted to copy, distribute and/or modify this |
- document under the terms of the GNU Free Documentation License, |
- Version 1.2 or any later version published by the Free Software |
- Foundation; with no Invariant Sections, with the Front-Cover Texts |
- being "A GNU Manual," and with the Back-Cover Texts as in (a) |
- below. A copy of the license is included in the section entitled |
- "GNU Free Documentation License." |
- |
- (a) The FSF's Back-Cover Text is: "You have freedom to copy and |
- modify this GNU Manual, like GNU software. Copies published by |
- the Free Software Foundation raise funds for GNU development." |
- |
+This manual is for SLIB (version 3a5, November 2007), the portable |
+Scheme library.
+
+Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. |
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.2 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, no Front-Cover Texts, and |
+ no Back-Cover Texts. A copy of the license is included in the |
+ section entitled "GNU Free Documentation License." |
+
INFO-DIR-SECTION The Algorithmic Language Scheme
START-INFO-DIR-ENTRY
* SLIB: (slib). Scheme Library
@@ -25,27 +20,22 @@ END-INFO-DIR-ENTRY

File: slib.info, Node: Top, Next: The Library System, Prev: (dir), Up: (dir)
- |
-SLIB |
-**** |
-This manual is for SLIB (version 3a4, October 2006), the portable |
-Scheme library. |
+SLIB
+****
-Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
+This manual is for SLIB (version 3a5, November 2007), the portable |
+Scheme library.
- Permission is granted to copy, distribute and/or modify this |
- document under the terms of the GNU Free Documentation License, |
- Version 1.2 or any later version published by the Free Software |
- Foundation; with no Invariant Sections, with the Front-Cover Texts |
- being "A GNU Manual," and with the Back-Cover Texts as in (a) |
- below. A copy of the license is included in the section entitled |
- "GNU Free Documentation License." |
+Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. |
- (a) The FSF's Back-Cover Text is: "You have freedom to copy and |
- modify this GNU Manual, like GNU software. Copies published by |
- the Free Software Foundation raise funds for GNU development." |
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.2 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, no Front-Cover Texts, and |
+ no Back-Cover Texts. A copy of the license is included in the |
+ section entitled "GNU Free Documentation License." |
* Menu:
@@ -65,13 +55,13 @@ File: slib.info, Node: The Library System, Next: Universal SLIB Procedures, P
1 The Library System
********************
-"SLIB" is a portable library for the programming language "Scheme". It |
-provides a platform independent framework for using "packages" of |
-Scheme procedures and syntax. As distributed, SLIB contains useful |
-packages for all Scheme implementations. Its catalog can be |
-transparently extended to accomodate packages specific to a site, |
-implementation, user, or directory. |
- |
+"SLIB" is a portable library for the programming language "Scheme". It
+provides a platform independent framework for using "packages" of
+Scheme procedures and syntax. As distributed, SLIB contains useful
+packages for all Scheme implementations. Its catalog can be
+transparently extended to accomodate packages specific to a site,
+implementation, user, or directory.
+
* Menu:
* Feature:: SLIB names.
@@ -149,8 +139,8 @@ The generalization of `provided?' for arbitrary features and catalog is
(1) scheme-implementation-type is the name symbol of the running
Scheme implementation (RScheme, |STk|, Bigloo, chez, Elk, gambit,
-guile, JScheme, MacScheme, MITScheme, Pocket-Scheme, Scheme48,
-Scheme->C, Scheme48, Scsh, T, umb-scheme, or Vscm). Dependence on
+guile, JScheme, kawa, MacScheme, MITScheme, Pocket-Scheme, Scheme48, |
+Scheme->C, Scheme48, Scsh, SISC, T, umb-scheme, or Vscm). Dependence on |
scheme-implementation-type is almost always the wrong way to do things.

@@ -872,7 +862,7 @@ implementations.
implementation and the name of the operating system. An
unspecified value is returned.
- (slib:report-version) => slib "3a4" on scm "5b1" on unix |
+ (slib:report-version) => slib "3a5" on scm "5b1" on unix |
-- Function: slib:report
Displays the information of `(slib:report-version)' followed by
@@ -887,15 +877,15 @@ implementations.
(slib:report)
=>
- slib "3a4" on scm "5b1" on unix |
+ slib "3a5" on scm "5b1" on unix |
(implementation-vicinity) is "/usr/local/lib/scm/"
(library-vicinity) is "/usr/local/lib/slib/"
(scheme-file-suffix) is ".scm"
- loaded slib:features : |
+ loaded slib:features :
trace alist qp sort
common-list-functions macro values getopt
compiled
- implementation slib:features : |
+ implementation slib:features :
bignum complex real rational
inexact vicinity ed getenv
tmpnam abort transcript with-file
@@ -990,6 +980,19 @@ These procedures are provided by all implementations.
omitted, in which case it defaults to the value returned by
`(current-output-port)'.
+ -- Function: file-position port |
+ -- Function: file-position port #f |
+ PORT must be open to a file. `file-position' returns the current |
+ position of the character in PORT which will next be read or |
+ written. If the implementation does not support file-position, |
+ then `#f' is returned. |
+ |
+ -- Function: file-position port k |
+ PORT must be open to a file. `file-position' sets the current |
+ position in PORT which will next be read or written. If |
+ successful, `#f' is returned; otherwise `file-position' returns |
+ `#f'. |
+ |
-- Function: output-port-width
-- Function: output-port-width port
Returns the width of PORT, which defaults to
@@ -1058,21 +1061,21 @@ These procedures are provided by all implementations.
If N is omitted or `#t', a success status is returned to the
system (if possible). If N is `#f' a failure is returned to the
system (if possible). If N is an integer, then N is returned to
- the system (if possible). If the Scheme session cannot exit an
- unspecified value is returned from `slib:exit'.
+ the system (if possible). If the Scheme session cannot exit, then |
+ an unspecified value is returned from `slib:exit'. |
-- Function: browse-url url
Web browsers have become so ubiquitous that programming languagues
should support a uniform interface to them.
- If a `netscape' browser is running, `browse-url' causes the
- browser to display the page specified by string URL and returns #t.
+ If a browser is running, `browse-url' causes the browser to |
+ display the page specified by string URL and returns `#t'. |
If the browser is not running, `browse-url' starts a browser
displaying the argument URL. If the browser starts as a
- background job, `browse-url' returns #t immediately; if the
- browser starts as a foreground job, then `browse-url' returns #t
- when the browser exits; otherwise it returns #f.
+ background job, `browse-url' returns `#t' immediately; if the |
+ browser starts as a foreground job, then `browse-url' returns `#t' |
+ when the browser exits; otherwise (if no browser) it returns `#f'. |

File: slib.info, Node: Miscellany, Prev: System, Up: Universal SLIB Procedures
@@ -1092,16 +1095,7 @@ These procedures are provided by all implementations.
=> (foo bar)
(map identity LST)
== (copy-list LST)
-
- -- Function: expt n k
- Returns N raised to the non-negative integer exponent K.
-
- Example:
- (expt 2 5)
- => 32
- (expt -3 3)
- => -27
-
+ |
2.5.1 Mutual Exclusion
----------------------
@@ -1141,7 +1135,7 @@ Language changes: (r4rs)Notes.). They are provided by all SLIB
implementations.
-- Constant: t
- Defined as `#t'. |
+ Defined as `#t'.
-- Constant: nil
Defined as `#f'.
@@ -2141,6 +2135,12 @@ File: slib.info, Node: Binding to multiple values, Next: Guarded LET* special
-- Special Form: receive formals expression body ...
`http://srfi.schemers.org/srfi-8/srfi-8.html'
+ `(require 'let-values)' or `(require 'srfi-11)' |
+ |
+ -- Special Form: let-values ((formals expression) ...) body ... |
+ -- Special Form: let-values* ((formals expression) ...) body ... |
+ `http://srfi.schemers.org/srfi-11/srfi-11.html' |
+ |

File: slib.info, Node: Guarded LET* special form, Next: Guarded COND Clause, Prev: Binding to multiple values, Up: Scheme Syntax Extension Packages
@@ -2479,6 +2479,7 @@ File: slib.info, Node: Textual Conversion Packages, Next: Mathematical Package
* HTTP and CGI:: Serve WWW sites
* Parsing HTML:: 'html-for-each
* URI:: Uniform Resource Identifier
+* Parsing XML:: 'parse-xml or 'ssax
* Printing Scheme:: Nicely
* Time and Date::
* NCBI-DNA:: DNA and protein sequences
@@ -2548,9 +2549,9 @@ A syntax tree is not built unless the rules explicitly do so. The call
graph of grammar rules effectively instantiate the sytnax tree.
The JACAL symbolic math system
-(`http://swiss.csail.mit.edu/~jaffer/JACAL') uses precedence-parse. |
-Its grammar definitions in the file `jacal/English.scm' can serve as |
-examples of use. |
+(`http://swiss.csail.mit.edu/~jaffer/JACAL') uses precedence-parse.
+Its grammar definitions in the file `jacal/English.scm' can serve as
+examples of use.
---------- Footnotes ----------
@@ -2646,7 +2647,7 @@ variable (for use when calling `prec:parse').
The token DELIM may be a character, symbol, or string. A
character DELIM argument will match only a character token; i.e. a
- character for which no token-group is assigned. A symbol or |
+ character for which no token-group is assigned. A symbol or
string will match only a token string; i.e. a token resulting from
a token group.
@@ -2965,7 +2966,7 @@ File: slib.info, Node: Format, Next: Standard Formatted I/O, Prev: Precedence
4.2 Format (version 3.1)
========================
-`(require 'format)'
+`(require 'format)' or `(require 'srfi-28)' |
* Menu:
@@ -4384,9 +4385,9 @@ currently uses 2 of these:
* *unknown*
-`batch.scm' uses 2 enhanced relational tables (*note Using Databases::)
-to store information linking the names of `operating-system's to
-`batch-dialect'es.
+The `batch' module uses 2 enhanced relational tables (*note Using |
+Databases::) to store information linking the names of |
+`operating-system's to `batch-dialect'es. |
-- Function: batch:initialize! database
Defines `operating-system' and `batch-dialect' tables and adds the
@@ -5073,8 +5074,8 @@ File: slib.info, Node: Parsing HTML, Next: URI, Prev: HTTP and CGI, Up: Text
markup.

-File: slib.info, Node: URI, Next: Printing Scheme, Prev: Parsing HTML, Up: Textual Conversion Packages
-
+File: slib.info, Node: URI, Next: Parsing XML, Prev: Parsing HTML, Up: Textual Conversion Packages
+ |
4.10 URI
========
@@ -5203,9 +5204,820 @@ purpose.
3. remote-directory

-File: slib.info, Node: Printing Scheme, Next: Time and Date, Prev: URI, Up: Textual Conversion Packages
-
-4.11 Printing Scheme
+File: slib.info, Node: Parsing XML, Next: Printing Scheme, Prev: URI, Up: Textual Conversion Packages
+ |
+4.11 Parsing XML |
+================ |
+ |
+`(require 'xml-parse)' or `(require 'ssax)' |
+ |
+The XML standard document referred to in this module is |
+`http://www.w3.org/TR/1998/REC-xml-19980210.html'. |
+ |
+The present frameworks fully supports the XML Namespaces Recommendation |
+`http://www.w3.org/TR/REC-xml-names'. |
+ |
+4.11.1 String Glue |
+------------------ |
+ |
+ -- Function: ssax:reverse-collect-str list-of-frags |
+ Given the list of fragments (some of which are text strings), |
+ reverse the list and concatenate adjacent text strings. If |
+ LIST-OF-FRAGS has zero or one element, the result of the procedure |
+ is `equal?' to its argument. |
+ |
+ -- Function: ssax:reverse-collect-str-drop-ws list-of-frags |
+ Given the list of fragments (some of which are text strings), |
+ reverse the list and concatenate adjacent text strings while |
+ dropping "unsignificant" whitespace, that is, whitespace in front, |
+ behind and between elements. The whitespace that is included in |
+ character data is not affected. |
+ |
+ Use this procedure to "intelligently" drop "insignificant" |
+ whitespace in the parsed SXML. If the strict compliance with the |
+ XML Recommendation regarding the whitespace is desired, use the |
+ `ssax:reverse-collect-str' procedure instead. |
+ |
+4.11.2 Character and Token Functions |
+------------------------------------ |
+ |
+The following functions either skip, or build and return tokens, |
+according to inclusion or delimiting semantics. The list of characters |
+to expect, include, or to break at may vary from one invocation of a |
+function to another. This allows the functions to easily parse even |
+context-sensitive languages. |
+ |
+ Exceptions are mentioned specifically. The list of expected |
+characters (characters to skip until, or break-characters) may include |
+an EOF "character", which is coded as symbol *eof* |
+ |
+ The input stream to parse is specified as a PORT, which is the last |
+argument. |
+ |
+ -- Function: ssax:assert-current-char char-list string port |
+ Reads a character from the PORT and looks it up in the CHAR-LIST |
+ of expected characters. If the read character was found among |
+ expected, it is returned. Otherwise, the procedure writes a |
+ message using STRING as a comment and quits. |
+ |
+ -- Function: ssax:skip-while char-list port |
+ Reads characters from the PORT and disregards them, as long as they |
+ are mentioned in the CHAR-LIST. The first character (which may be |
+ EOF) peeked from the stream that is _not_ a member of the |
+ CHAR-LIST is returned. |
+ |
+ -- Function: ssax:init-buffer |
+ Returns an initial buffer for `ssax:next-token*' procedures. |
+ `ssax:init-buffer' may allocate a new buffer at each invocation. |
+ |
+ -- Function: ssax:next-token prefix-char-list break-char-list |
+ comment-string port |
+ Skips any number of the prefix characters (members of the |
+ PREFIX-CHAR-LIST), if any, and reads the sequence of characters up |
+ to (but not including) a break character, one of the |
+ BREAK-CHAR-LIST. |
+ |
+ The string of characters thus read is returned. The break |
+ character is left on the input stream. BREAK-CHAR-LIST may |
+ include the symbol `*eof*'; otherwise, EOF is fatal, generating an |
+ error message including a specified COMMENT-STRING. |
+ |
+`ssax:next-token-of' is similar to `ssax:next-token' except that it |
+implements an inclusion rather than delimiting semantics. |
+ |
+ -- Function: ssax:next-token-of inc-charset port |
+ Reads characters from the PORT that belong to the list of |
+ characters INC-CHARSET. The reading stops at the first character |
+ which is not a member of the set. This character is left on the |
+ stream. All the read characters are returned in a string. |
+ |
+ -- Function: ssax:next-token-of pred port |
+ Reads characters from the PORT for which PRED (a procedure of one |
+ argument) returns non-#f. The reading stops at the first |
+ character for which PRED returns #f. That character is left on |
+ the stream. All the results of evaluating of PRED up to #f are |
+ returned in a string. |
+ |
+ PRED is a procedure that takes one argument (a character or the |
+ EOF object) and returns a character or #f. The returned character |
+ does not have to be the same as the input argument to the PRED. |
+ For example, |
+ |
+ (ssax:next-token-of (lambda (c) |
+ (cond ((eof-object? c) #f) |
+ ((char-alphabetic? c) (char-downcase c))
+ (else #f))) |
+ (current-input-port)) |
+ |
+ will try to read an alphabetic token from the current input port, |
+ and return it in lower case. |
+ |
+ -- Function: ssax:read-string len port |
+ Reads LEN characters from the PORT, and returns them in a string. |
+ If EOF is encountered before LEN characters are read, a shorter |
+ string will be returned. |
+ |
+4.11.3 Data Types |
+----------------- |
+ |
+`TAG-KIND' |
+ A symbol `START', `END', `PI', `DECL', `COMMENT', `CDSECT', or |
+ `ENTITY-REF' that identifies a markup token |
+ |
+`UNRES-NAME' |
+ a name (called GI in the XML Recommendation) as given in an XML |
+ document for a markup token: start-tag, PI target, attribute name. |
+ If a GI is an NCName, UNRES-NAME is this NCName converted into a |
+ Scheme symbol. If a GI is a QName, `UNRES-NAME' is a pair of |
+ symbols: `(PREFIX . LOCALPART)'. |
+ |
+`RES-NAME' |
+ An expanded name, a resolved version of an `UNRES-NAME'. For an |
+ element or an attribute name with a non-empty namespace URI, |
+ `RES-NAME' is a pair of symbols, `(URI-SYMB . LOCALPART)'. |
+ Otherwise, it's a single symbol. |
+ |
+`ELEM-CONTENT-MODEL' |
+ A symbol: |
+ `ANY' |
+ anything goes, expect an END tag. |
+ |
+ `EMPTY-TAG' |
+ no content, and no END-tag is coming |
+ |
+ `EMPTY' |
+ no content, expect the END-tag as the next token |
+ |
+ `PCDATA' |
+ expect character data only, and no children elements |
+ |
+ `MIXED' |
+ |
+ `ELEM-CONTENT' |
+ |
+`URI-SYMB' |
+ A symbol representing a namespace URI - or other symbol chosen by |
+ the user to represent URI. In the former case, `URI-SYMB' is |
+ created by %-quoting of bad URI characters and converting the |
+ resulting string into a symbol. |
+ |
+`NAMESPACES' |
+ A list representing namespaces in effect. An element of the list |
+ has one of the following forms: |
+ |
+ `(PREFIX URI-SYMB . URI-SYMB) or' |
+ |
+ `(PREFIX USER-PREFIX . URI-SYMB)' |
+ USER-PREFIX is a symbol chosen by the user to represent the |
+ URI. |
+ |
+ `(#f USER-PREFIX . URI-SYMB)' |
+ Specification of the user-chosen prefix and a URI-SYMBOL. |
+ |
+ `(*DEFAULT* USER-PREFIX . URI-SYMB)' |
+ Declaration of the default namespace |
+ |
+ `(*DEFAULT* #f . #f)' |
+ Un-declaration of the default namespace. This notation |
+ represents overriding of the previous declaration |
+ |
+ |
+ A NAMESPACES list may contain several elements for the same PREFIX. |
+ The one closest to the beginning of the list takes effect. |
+ |
+`ATTLIST' |
+ An ordered collection of (NAME . VALUE) pairs, where NAME is a |
+ RES-NAME or an UNRES-NAME. The collection is an ADT. |
+ |
+`STR-HANDLER' |
+ A procedure of three arguments: STRING1 STRING2 SEED returning a |
+ new SEED. The procedure is supposed to handle a chunk of |
+ character data STRING1 followed by a chunk of character data |
+ STRING2. STRING2 is a short string, often `"\n"' and even `""'. |
+ |
+`ENTITIES' |
+ An assoc list of pairs: |
+ (NAMED-ENTITY-NAME . NAMED-ENTITY-BODY) |
+ |
+ where NAMED-ENTITY-NAME is a symbol under which the entity was |
+ declared, NAMED-ENTITY-BODY is either a string, or (for an |
+ external entity) a thunk that will return an input port (from which |
+ the entity can be read). NAMED-ENTITY-BODY may also be #f. This |
+ is an indication that a NAMED-ENTITY-NAME is currently being |
+ expanded. A reference to this NAMED-ENTITY-NAME will be an error: |
+ violation of the WFC nonrecursion. |
+ |
+`XML-TOKEN' |
+ This record represents a markup, which is, according to the XML |
+ Recommendation, "takes the form of start-tags, end-tags, |
+ empty-element tags, entity references, character references, |
+ comments, CDATA section delimiters, document type declarations, and |
+ processing instructions." |
+ |
+ kind |
+ a TAG-KIND |
+ |
+ head |
+ an UNRES-NAME. For XML-TOKENs of kinds 'COMMENT and 'CDSECT, |
+ the head is #f. |
+ |
+ For example, |
+ <P> => kind=START, head=P |
+ </P> => kind=END, head=P |
+ <BR/> => kind=EMPTY-EL, head=BR |
+ <!DOCTYPE OMF ...> => kind=DECL, head=DOCTYPE |
+ <?xml version="1.0"?> => kind=PI, head=xml |
+ &my-ent; => kind=ENTITY-REF, head=my-ent |
+ |
+ Character references are not represented by xml-tokens as these |
+ references are transparently resolved into the corresponding |
+ characters. |
+ |
+`XML-DECL' |
+ The record represents a datatype of an XML document: the list of |
+ declared elements and their attributes, declared notations, list of |
+ replacement strings or loading procedures for parsed general |
+ entities, etc. Normally an XML-DECL record is created from a DTD |
+ or an XML Schema, although it can be created and filled in in many |
+ other ways (e.g., loaded from a file). |
+ |
+ ELEMS |
+ an (assoc) list of decl-elem or #f. The latter instructs the |
+ parser to do no validation of elements and attributes. |
+ |
+ DECL-ELEM |
+ declaration of one element: |
+ |
+ `(ELEM-NAME ELEM-CONTENT DECL-ATTRS)' |
+ |
+ ELEM-NAME is an UNRES-NAME for the element. |
+ |
+ ELEM-CONTENT is an ELEM-CONTENT-MODEL. |
+ |
+ DECL-ATTRS is an `ATTLIST', of `(ATTR-NAME . VALUE)' |
+ associations. |
+ |
+ This element can declare a user procedure to handle parsing |
+ of an element (e.g., to do a custom validation, or to build a |
+ hash of IDs as they're encountered). |
+ |
+ DECL-ATTR |
+ an element of an `ATTLIST', declaration of one attribute: |
+ |
+ `(ATTR-NAME CONTENT-TYPE USE-TYPE DEFAULT-VALUE)' |
+ |
+ ATTR-NAME is an UNRES-NAME for the declared attribute. |
+ |
+ CONTENT-TYPE is a symbol: `CDATA', `NMTOKEN', `NMTOKENS', ... |
+ or a list of strings for the enumerated type. |
+ |
+ USE-TYPE is a symbol: `REQUIRED', `IMPLIED', or `FIXED'. |
+ |
+ DEFAULT-VALUE is a string for the default value, or #f if not |
+ given. |
+ |
+ |
+ |
+4.11.4 Low-Level Parsers and Scanners |
+------------------------------------- |
+ |
+These procedures deal with primitive lexical units (Names, whitespaces, |
+tags) and with pieces of more generic productions. Most of these |
+parsers must be called in appropriate context. For example, |
+`ssax:complete-start-tag' must be called only when the start-tag has |
+been detected and its GI has been read. |
+ |
+ -- Function: ssax:skip-s port |
+ Skip the S (whitespace) production as defined by |
+ [3] S ::= (#x20 | #x09 | #x0D | #x0A) |
+ |
+ `ssax:skip-s' returns the first not-whitespace character it |
+ encounters while scanning the PORT. This character is left on the |
+ input stream. |
+ |
+ -- Function: ssax:read-ncname port |
+ Read a NCName starting from the current position in the PORT and |
+ return it as a symbol. |
+ |
+ [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
+ | CombiningChar | Extender |
+ [5] Name ::= (Letter | '_' | ':') (NameChar)* |
+ |
+ This code supports the XML Namespace Recommendation REC-xml-names, |
+ which modifies the above productions as follows: |
+ |
+ [4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' |
+ | CombiningChar | Extender |
+ [5] NCName ::= (Letter | '_') (NCNameChar)* |
+ |
+ As the Rec-xml-names says, |
+ |
+ "An XML document conforms to this specification if all other |
+ tokens [other than element types and attribute names] in the |
+ document which are required, for XML conformance, to match |
+ the XML production for Name, match this specification's |
+ production for NCName." |
+ |
+ Element types and attribute names must match the production QName, |
+ defined below. |
+ |
+ -- Function: ssax:read-qname port |
+ Read a (namespace-) Qualified Name, QName, from the current |
+ position in PORT; and return an UNRES-NAME. |
+ |
+ From REC-xml-names: |
+ [6] QName ::= (Prefix ':')? LocalPart |
+ [7] Prefix ::= NCName |
+ [8] LocalPart ::= NCName |
+ |
+ -- Function: ssax:read-markup-token port |
+ This procedure starts parsing of a markup token. The current |
+ position in the stream must be `<'. This procedure scans enough |
+ of the input stream to figure out what kind of a markup token it |
+ is seeing. The procedure returns an XML-TOKEN structure |
+ describing the token. Note, generally reading of the current |
+ markup is not finished! In particular, no attributes of the |
+ start-tag token are scanned. |
+ |
+ Here's a detailed break out of the return values and the position |
+ in the PORT when that particular value is returned: |
+ |
+ PI-token |
+ only PI-target is read. To finish the Processing-Instruction |
+ and disregard it, call `ssax:skip-pi'. `ssax:read-attributes' |
+ may be useful as well (for PIs whose content is |
+ attribute-value pairs). |
+ |
+ END-token |
+ The end tag is read completely; the current position is right |
+ after the terminating `>' character. |
+ |
+ COMMENT |
+ is read and skipped completely. The current position is |
+ right after `-->' that terminates the comment. |
+ |
+ CDSECT |
+ The current position is right after `<!CDATA['. Use |
+ `ssax:read-cdata-body' to read the rest. |
+ |
+ DECL |
+ We have read the keyword (the one that follows `<!') |
+ identifying this declaration markup. The current position is |
+ after the keyword (usually a whitespace character) |
+ |
+ START-token |
+ We have read the keyword (GI) of this start tag. No |
+ attributes are scanned yet. We don't know if this tag has an |
+ empty content either. Use `ssax:complete-start-tag' to |
+ finish parsing of the token. |
+ |
+ |
+ -- Function: ssax:skip-pi port |
+ The current position is inside a PI. Skip till the rest of the PI |
+ |
+ -- Function: ssax:read-pi-body-as-string port |
+ The current position is right after reading the PITarget. We read |
+ the body of PI and return is as a string. The port will point to |
+ the character right after `?>' combination that terminates PI. |
+ |
+ [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>' |
+ |
+ -- Function: ssax:skip-internal-dtd port |
+ The current pos in the port is inside an internal DTD subset (e.g., |
+ after reading `#\[' that begins an internal DTD subset) Skip until |
+ the `]>' combination that terminates this DTD. |
+ |
+ -- Function: ssax:read-cdata-body port str-handler seed |
+ This procedure must be called after we have read a string |
+ `<![CDATA[' that begins a CDATA section. The current position |
+ must be the first position of the CDATA body. This function reads |
+ _lines_ of the CDATA body and passes them to a STR-HANDLER, a |
+ character data consumer. |
+ |
+ STR-HANDLER is a procedure taking arguments: STRING1, STRING2, and |
+ SEED. The first STRING1 argument to STR-HANDLER never contains a |
+ newline; the second STRING2 argument often will. On the first |
+ invocation of STR-HANDLER, SEED is the one passed to |
+ `ssax:read-cdata-body' as the third argument. The result of this |
+ first invocation will be passed as the SEED argument to the second |
+ invocation of the line consumer, and so on. The result of the |
+ last invocation of the STR-HANDLER is returned by the |
+ `ssax:read-cdata-body'. Note a similarity to the fundamental |
+ "fold" iterator. |
+ |
+ Within a CDATA section all characters are taken at their face |
+ value, with three exceptions: |
+ * CR, LF, and CRLF are treated as line delimiters, and passed |
+ as a single `#\newline' to STR-HANDLER |
+ |
+ * `]]>' combination is the end of the CDATA section. `&gt;' is |
+ treated as an embedded `>' character. |
+ |
+ * `&lt;' and `&amp;' are not specially recognized (and are not |
+ expanded)! |
+ |
+ |
+ -- Function: ssax:read-char-ref port |
+ [66] CharRef ::= '&#' [0-9]+ ';' |
+ | '&#x' [0-9a-fA-F]+ ';' |
+ |
+ This procedure must be called after we we have read `&#' that |
+ introduces a char reference. The procedure reads this reference |
+ and returns the corresponding char. The current position in PORT |
+ will be after the `;' that terminates the char reference. |
+ |
+ Faults detected: |
+ WFC: XML-Spec.html#wf-Legalchar |
+ |
+ According to Section `4.1 Character and Entity References' of the |
+ XML Recommendation: |
+ |
+ "[Definition: A character reference refers to a specific |
+ character in the ISO/IEC 10646 character set, for example one |
+ not directly accessible from available input devices.]" |
+ |
+ |
+ -- Function: ssax:handle-parsed-entity port name entities |
+ content-handler str-handler seed |
+ Expands and handles a parsed-entity reference. |
+ |
+ NAME is a symbol, the name of the parsed entity to expand. |
+ CONTENT-HANDLER is a procedure of arguments PORT, ENTITIES, and |
+ SEED that returns a seed. STR-HANDLER is called if the entity in |
+ question is a pre-declared entity. |
+ |
+ `ssax:handle-parsed-entity' returns the result returned by |
+ CONTENT-HANDLER or STR-HANDLER. |
+ |
+ Faults detected: |
+ WFC: XML-Spec.html#wf-entdeclared |
+ WFC: XML-Spec.html#norecursion |
+ |
+ -- Function: attlist-add attlist name-value |
+ Add a NAME-VALUE pair to the existing ATTLIST, preserving its |
+ sorted ascending order; and return the new list. Return #f if a |
+ pair with the same name already exists in ATTLIST |
+ |
+ -- Function: attlist-remove-top attlist |
+ Given an non-null ATTLIST, return a pair of values: the top and |
+ the rest. |
+ |
+ -- Function: ssax:read-attributes port entities |
+ This procedure reads and parses a production "Attribute". |
+ |
+ [41] Attribute ::= Name Eq AttValue |
+ [10] AttValue ::= '"' ([^<&"] | Reference)* '"' |
+ | "'" ([^<&'] | Reference)* "'" |
+ [25] Eq ::= S? '=' S? |
+ |
+ The procedure returns an ATTLIST, of Name (as UNRES-NAME), Value |
+ (as string) pairs. The current character on the PORT is a |
+ non-whitespace character that is not an NCName-starting character. |
+ |
+ Note the following rules to keep in mind when reading an |
+ "AttValue": |
+ |
+ Before the value of an attribute is passed to the application |
+ or checked for validity, the XML processor must normalize it |
+ as follows: |
+ |
+ * A character reference is processed by appending the |
+ referenced character to the attribute value. |
+ |
+ * An entity reference is processed by recursively |
+ processing the replacement text of the entity. The |
+ named entities `amp', `lt', `gt', `quot', and `apos' are |
+ pre-declared. |
+ |
+ * A whitespace character (#x20, #x0D, #x0A, #x09) is |
+ processed by appending #x20 to the normalized value, |
+ except that only a single #x20 is appended for a |
+ "#x0D#x0A" sequence that is part of an external parsed |
+ entity or the literal entity value of an internal parsed |
+ entity. |
+ |
+ * Other characters are processed by appending them to the |
+ normalized value. |
+ |
+ |
+ |
+ Faults detected: |
+ WFC: XML-Spec.html#CleanAttrVals |
+ WFC: XML-Spec.html#uniqattspec |
+ |
+ -- Function: ssax:resolve-name port unres-name namespaces |
+ apply-default-ns? |
+ Convert an UNRES-NAME to a RES-NAME, given the appropriate |
+ NAMESPACES declarations. The last parameter, APPLY-DEFAULT-NS?, |
+ determines if the default namespace applies (for instance, it does |
+ not for attribute names). |
+ |
+ Per REC-xml-names/#nsc-NSDeclared, the "xml" prefix is considered |
+ pre-declared and bound to the namespace name |
+ "http://www.w3.org/XML/1998/namespace". |
+ |
+ `ssax:resolve-name' tests for the namespace constraints: |
+ `http://www.w3.org/TR/REC-xml-names/#nsc-NSDeclared' |
+ |
+ -- Function: ssax:complete-start-tag tag port elems entities namespaces |
+ Complete parsing of a start-tag markup. `ssax:complete-start-tag' |
+ must be called after the start tag token has been read. TAG is an |
+ UNRES-NAME. ELEMS is an instance of the ELEMS slot of XML-DECL; |
+ it can be #f to tell the function to do _no_ validation of |
+ elements and their attributes. |
+ |
+ `ssax:complete-start-tag' returns several values: |
+ * ELEM-GI: a RES-NAME. |
+ |
+ * ATTRIBUTES: element's attributes, an ATTLIST of (RES-NAME . |
+ STRING) pairs. The list does NOT include xmlns attributes. |
+ |
+ * NAMESPACES: the input list of namespaces amended with |
+ namespace (re-)declarations contained within the start-tag |
+ under parsing |
+ |
+ * ELEM-CONTENT-MODEL |
+ |
+ On exit, the current position in PORT will be the first character |
+ after `>' that terminates the start-tag markup. |
+ |
+ Faults detected: |
+ VC: XML-Spec.html#enum |
+ VC: XML-Spec.html#RequiredAttr |
+ VC: XML-Spec.html#FixedAttr |
+ VC: XML-Spec.html#ValueType |
+ WFC: XML-Spec.html#uniqattspec (after namespaces prefixes are |
+ resolved) |
+ VC: XML-Spec.html#elementvalid |
+ WFC: REC-xml-names/#dt-NSName |
+ |
+ _Note_: although XML Recommendation does not explicitly say it, |
+ xmlns and xmlns: attributes don't have to be declared (although |
+ they can be declared, to specify their default value). |
+ |
+ -- Function: ssax:read-external-id port |
+ Parses an ExternalID production: |
+ |
+ [75] ExternalID ::= 'SYSTEM' S SystemLiteral |
+ | 'PUBLIC' S PubidLiteral S SystemLiteral |
+ [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'") |
+ [12] PubidLiteral ::= '"' PubidChar* '"' |
+ | "'" (PubidChar - "'")* "'" |
+ [13] PubidChar ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] |
+ | [-'()+,./:=?;!*#@$_%] |
+ |
+ Call `ssax:read-external-id' when an ExternalID is expected; that |
+ is, the current character must be either #\S or #\P that starts |
+ correspondingly a SYSTEM or PUBLIC token. `ssax:read-external-id' |
+ returns the SYSTEMLITERAL as a string. A PUBIDLITERAL is |
+ disregarded if present. |
+ |
+4.11.5 Mid-Level Parsers and Scanners |
+------------------------------------- |
+ |
+These procedures parse productions corresponding to the whole |
+(document) entity or its higher-level pieces (prolog, root element, |
+etc). |
+ |
+ -- Function: ssax:scan-misc port |
+ Scan the Misc production in the context: |
+ |
+ [1] document ::= prolog element Misc* |
+ [22] prolog ::= XMLDecl? Misc* (doctypedec l Misc*)? |
+ [27] Misc ::= Comment | PI | S |
+ |
+ Call `ssax:scan-misc' in the prolog or epilog contexts. In these |
+ contexts, whitespaces are completely ignored. The return value |
+ from `ssax:scan-misc' is either a PI-token, a DECL-token, a START |
+ token, or *EOF*. Comments are ignored and not reported. |
+ |
+ -- Function: ssax:read-char-data port expect-eof? str-handler iseed |
+ Read the character content of an XML document or an XML element. |
+ |
+ [43] content ::= |
+ (element | CharData | Reference | CDSect | PI | Comment)* |
+ |
+ To be more precise, `ssax:read-char-data' reads CharData, expands |
+ CDSect and character entities, and skips comments. |
+ `ssax:read-char-data' stops at a named reference, EOF, at the |
+ beginning of a PI, or a start/end tag. |
+ |
+ EXPECT-EOF? is a boolean indicating if EOF is normal; i.e., the |
+ character data may be terminated by the EOF. EOF is normal while |
+ processing a parsed entity. |
+ |
+ ISEED is an argument passed to the first invocation of STR-HANDLER. |
+ |
+ `ssax:read-char-data' returns two results: SEED and TOKEN. The |
+ SEED is the result of the last invocation of STR-HANDLER, or the |
+ original ISEED if STR-HANDLER was never called. |
+ |
+ TOKEN can be either an eof-object (this can happen only if |
+ EXPECT-EOF? was #t), or: |
+ * an xml-token describing a START tag or an END-tag; For a |
+ start token, the caller has to finish reading it. |
+ |
+ * an xml-token describing the beginning of a PI. It's up to an |
+ application to read or skip through the rest of this PI; |
+ |
+ * an xml-token describing a named entity reference. |
+ |
+ |
+ CDATA sections and character references are expanded inline and |
+ never returned. Comments are silently disregarded. |
+ |
+ As the XML Recommendation requires, all whitespace in character |
+ data must be preserved. However, a CR character (#x0D) must be |
+ disregarded if it appears before a LF character (#x0A), or replaced |
+ by a #x0A character otherwise. See Secs. 2.10 and 2.11 of the XML |
+ Recommendation. See also the canonical XML Recommendation. |
+ |
+ -- Function: ssax:assert-token token kind gi error-cont |
+ Make sure that TOKEN is of anticipated KIND and has anticipated |
+ GI. Note that the GI argument may actually be a pair of two |
+ symbols, Namespace-URI or the prefix, and of the localname. If |
+ the assertion fails, ERROR-CONT is evaluated by passing it three |
+ arguments: TOKEN KIND GI. The result of ERROR-CONT is returned. |
+ |
+4.11.6 High-level Parsers |
+------------------------- |
+ |
+These procedures are to instantiate a SSAX parser. A user can |
+instantiate the parser to do the full validation, or no validation, or |
+any particular validation. The user specifies which PI he wants to be |
+notified about. The user tells what to do with the parsed character |
+and element data. The latter handlers determine if the parsing follows |
+a SAX or a DOM model. |
+ |
+ -- Function: ssax:make-pi-parser my-pi-handlers |
+ Create a parser to parse and process one Processing Element (PI). |
+ |
+ MY-PI-HANDLERS is an association list of pairs `(PI-TAG . |
+ PI-HANDLER)' where PI-TAG is an NCName symbol, the PI target; and |
+ PI-HANDLER is a procedure taking arguments PORT, PI-TAG, and SEED. |
+ |
+ PI-HANDLER should read the rest of the PI up to and including the |
+ combination `?>' that terminates the PI. The handler should |
+ return a new seed. One of the PI-TAGs may be the symbol |
+ `*DEFAULT*'. The corresponding handler will handle PIs that no |
+ other handler will. If the *DEFAULT* PI-TAG is not specified, |
+ `ssax:make-pi-parser' will assume the default handler that skips |
+ the body of the PI. |
+ |
+ `ssax:make-pi-parser' returns a procedure of arguments PORT, |
+ PI-TAG, and SEED; that will parse the current PI according to |
+ MY-PI-HANDLERS. |
+ |
+ -- Function: ssax:make-elem-parser my-new-level-seed my-finish-element |
+ my-char-data-handler my-pi-handlers |
+ Create a parser to parse and process one element, including its |
+ character content or children elements. The parser is typically |
+ applied to the root element of a document. |
+ |
+ MY-NEW-LEVEL-SEED |
+ is a procedure taking arguments: |
+ |
+ ELEM-GI ATTRIBUTES NAMESPACES EXPECTED-CONTENT SEED |
+ |
+ where ELEM-GI is a RES-NAME of the element about to be |
+ processed. |
+ |
+ MY-NEW-LEVEL-SEED is to generate the seed to be passed to |
+ handlers that process the content of the element. |
+ |
+ MY-FINISH-ELEMENT |
+ is a procedure taking arguments: |
+ |
+ ELEM-GI ATTRIBUTES NAMESPACES PARENT-SEED SEED |
+ |
+ MY-FINISH-ELEMENT is called when parsing of ELEM-GI is |
+ finished. The SEED is the result from the last content |
+ parser (or from MY-NEW-LEVEL-SEED if the element has the |
+ empty content). PARENT-SEED is the same seed as was passed |
+ to MY-NEW-LEVEL-SEED. MY-FINISH-ELEMENT is to generate a |
+ seed that will be the result of the element parser. |
+ |
+ MY-CHAR-DATA-HANDLER |
+ is a STR-HANDLER as described in Data Types above. |
+ |
+ MY-PI-HANDLERS |
+ is as described for `ssax:make-pi-handler' above. |
+ |
+ |
+ The generated parser is a procedure taking arguments: |
+ |
+ START-TAG-HEAD PORT ELEMS ENTITIES NAMESPACES PRESERVE-WS? SEED |
+ |
+ The procedure must be called after the start tag token has been |
+ read. START-TAG-HEAD is an UNRES-NAME from the start-element tag. |
+ ELEMS is an instance of ELEMS slot of XML-DECL. |
+ |
+ Faults detected: |
+ VC: XML-Spec.html#elementvalid |
+ WFC: XML-Spec.html#GIMatch |
+ |
+ -- Function: ssax:make-parser user-handler-tag user-handler ... |
+ Create an XML parser, an instance of the XML parsing framework. |
+ This will be a SAX, a DOM, or a specialized parser depending on the |
+ supplied user-handlers. |
+ |
+ `ssax:make-parser' takes an even number of arguments; |
+ USER-HANDLER-TAG is a symbol that identifies a procedure (or |
+ association list for `PROCESSING-INSTRUCTIONS') (USER-HANDLER) |
+ that follows the tag. Given below are tags and signatures of the |
+ corresponding procedures. Not all tags have to be specified. If |
+ some are omitted, reasonable defaults will apply. |
+ |
+ `DOCTYPE' |
+ handler-procedure: PORT DOCNAME SYSTEMID INTERNAL-SUBSET? SEED |
+ |
+ If INTERNAL-SUBSET? is #t, the current position in the port is |
+ right after we have read `[' that begins the internal DTD |
+ subset. We must finish reading of this subset before we |
+ return (or must call `skip-internal-dtd' if we aren't |
+ interested in reading it). PORT at exit must be at the first |
+ symbol after the whole DOCTYPE declaration. |
+ |
+ The handler-procedure must generate four values: |
+ |
+ ELEMS ENTITIES NAMESPACES SEED |
+ |
+ ELEMS is as defined for the ELEMS slot of XML-DECL. It may be |
+ #f to switch off validation. NAMESPACES will typically |
+ contain USER-PREFIXes for selected URI-SYMBs. The default |
+ handler-procedure skips the internal subset, if any, and |
+ returns `(values #f '() '() seed)'. |
+ |
+ `UNDECL-ROOT' |
+ procedure: ELEM-GI SEED |
+ |
+ where ELEM-GI is an UNRES-NAME of the root element. This |
+ procedure is called when an XML document under parsing |
+ contains _no_ DOCTYPE declaration. |
+ |
+ The handler-procedure, as a DOCTYPE handler procedure above, |
+ must generate four values: |
+ |
+ ELEMS ENTITIES NAMESPACES SEED |
+ |
+ The default handler-procedure returns (values #f '() '() seed) |
+ |
+ `DECL-ROOT' |
+ procedure: ELEM-GI SEED |
+ |
+ where ELEM-GI is an UNRES-NAME of the root element. This |
+ procedure is called when an XML document under parsing does |
+ contains the DOCTYPE declaration. The handler-procedure must |
+ generate a new SEED (and verify that the name of the root |
+ element matches the doctype, if the handler so wishes). The |
+ default handler-procedure is the identity function. |
+ |
+ `NEW-LEVEL-SEED' |
+ procedure: see ssax:make-elem-parser, my-new-level-seed |
+ |
+ `FINISH-ELEMENT' |
+ procedure: see ssax:make-elem-parser, my-finish-element |
+ |
+ `CHAR-DATA-HANDLER' |
+ procedure: see ssax:make-elem-parser, my-char-data-handler |
+ |
+ `PROCESSING-INSTRUCTIONS' |
+ association list as is passed to `ssax:make-pi-parser'. The |
+ default value is '() |
+ |
+ |
+ The generated parser is a procedure of arguments PORT and SEED. |
+ |
+ This procedure parses the document prolog and then exits to an |
+ element parser (created by `ssax:make-elem-parser') to handle the |
+ rest. |
+ |
+ [1] document ::= prolog element Misc* |
+ [22] prolog ::= XMLDecl? Misc* (doctypedec | Misc*)? |
+ [27] Misc ::= Comment | PI | S |
+ [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? |
+ ('[' (markupdecl | PEReference | S)* ']' S?)? '>' |
+ [29] markupdecl ::= elementdecl | AttlistDecl |
+ | EntityDecl |
+ | NotationDecl | PI |
+ | Comment |
+ |
+4.11.7 Parsing XML to SXML |
+-------------------------- |
+ |
+ -- Function: ssax:xml->sxml port namespace-prefix-assig |
+ This is an instance of the SSAX parser that returns an SXML |
+ representation of the XML document to be read from PORT. |
+ NAMESPACE-PREFIX-ASSIG is a list of `(USER-PREFIX . URI-STRING)' |
+ that assigns USER-PREFIXes to certain namespaces identified by |
+ particular URI-STRINGs. It may be an empty list. |
+ `ssax:xml->sxml' returns an SXML tree. The port points out to the |
+ first character after the root element. |
+ |
+
+File: slib.info, Node: Printing Scheme, Next: Time and Date, Prev: Parsing XML, Up: Textual Conversion Packages
+ |
+4.12 Printing Scheme |
====================
* Menu:
@@ -5217,7 +6029,7 @@ File: slib.info, Node: Printing Scheme, Next: Time and Date, Prev: URI, Up:

File: slib.info, Node: Generic-Write, Next: Object-To-String, Prev: Printing Scheme, Up: Printing Scheme
-4.11.1 Generic-Write
+4.12.1 Generic-Write |
--------------------
`(require 'generic-write)'
@@ -5260,7 +6072,7 @@ printing, output to a string and truncated output.

File: slib.info, Node: Object-To-String, Next: Pretty-Print, Prev: Generic-Write, Up: Printing Scheme
-4.11.2 Object-To-String
+4.12.2 Object-To-String |
-----------------------
`(require 'object->string)'
@@ -5275,7 +6087,7 @@ File: slib.info, Node: Object-To-String, Next: Pretty-Print, Prev: Generic-Wr

File: slib.info, Node: Pretty-Print, Prev: Object-To-String, Up: Printing Scheme
-4.11.3 Pretty-Print
+4.12.3 Pretty-Print |
-------------------
`(require 'pretty-print)'
@@ -5366,7 +6178,7 @@ thus can reduce loading time. The following will write into

File: slib.info, Node: Time and Date, Next: NCBI-DNA, Prev: Printing Scheme, Up: Textual Conversion Packages
-4.12 Time and Date
+4.13 Time and Date |
==================
* Menu:
@@ -5399,7 +6211,7 @@ Scheme datatypes.

File: slib.info, Node: Time Zone, Next: Posix Time, Prev: Time and Date, Up: Time and Date
-4.12.1 Time Zone
+4.13.1 Time Zone |
----------------
(require 'time-zone)
@@ -5526,7 +6338,7 @@ compatability. Because of shared state they are not thread-safe.

File: slib.info, Node: Posix Time, Next: Common-Lisp Time, Prev: Time Zone, Up: Time and Date
-4.12.2 Posix Time
+4.13.2 Posix Time |
-----------------
(require 'posix-time)
@@ -5598,7 +6410,7 @@ File: slib.info, Node: Posix Time, Next: Common-Lisp Time, Prev: Time Zone,

File: slib.info, Node: Common-Lisp Time, Next: Time Infrastructure, Prev: Posix Time, Up: Time and Date
-4.12.3 Common-Lisp Time
+4.13.3 Common-Lisp Time |
-----------------------
-- Function: get-decoded-time
@@ -5648,7 +6460,7 @@ File: slib.info, Node: Common-Lisp Time, Next: Time Infrastructure, Prev: Pos

File: slib.info, Node: Time Infrastructure, Prev: Common-Lisp Time, Up: Time and Date
-4.12.4 Time Infrastructure
+4.13.4 Time Infrastructure |
--------------------------
`(require 'time-core)'
@@ -5664,9 +6476,11 @@ File: slib.info, Node: Time Infrastructure, Prev: Common-Lisp Time, Up: Time

File: slib.info, Node: NCBI-DNA, Next: Schmooz, Prev: Time and Date, Up: Textual Conversion Packages
-4.13 NCBI-DNA
+4.14 NCBI-DNA |
=============
+`(require 'ncbi-dma)' |
+ |
-- Function: ncbi:read-dna-sequence port
Reads the NCBI-format DNA sequence following the word `ORIGIN'
from PORT.
@@ -5705,7 +6519,7 @@ sequence with the `BASE COUNT' line preceding the sequence from NCBI.

File: slib.info, Node: Schmooz, Prev: NCBI-DNA, Up: Textual Conversion Packages
-4.14 Schmooz
+4.15 Schmooz |
============
"Schmooz" is a simple, lightweight markup language for interspersing
@@ -5811,11 +6625,11 @@ File: slib.info, Node: Mathematical Packages, Next: Database Packages, Prev:
* Bit-Twiddling:: 'logical
* Modular Arithmetic:: 'modular
-* Irrational Integer Functions:: |
-* Irrational Real Functions:: |
+* Irrational Integer Functions::
+* Irrational Real Functions::
* Prime Numbers:: 'factor
* Random Numbers:: 'random
-* Discrete Fourier Transform:: 'dft |
+* Discrete Fourier Transform:: 'dft
* Cyclic Checksum:: 'crc
* Graphing::
* Solid Modeling:: VRML97
@@ -5832,7 +6646,7 @@ File: slib.info, Node: Bit-Twiddling, Next: Modular Arithmetic, Prev: Mathema
5.1 Bit-Twiddling
=================
-`(require 'logical)' or `(require 'srfi-60)' |
+`(require 'logical)' or `(require 'srfi-60)'
The bit-twiddling functions are made available through the use of the
`logical' package. `logical' is loaded by inserting `(require
@@ -5898,8 +6712,7 @@ representation.
5.1.2 Integer Properties
------------------------
- -- Function: logcount n
- -- Function: bit-count n
+ -- Function: logcount n |
Returns the number of bits in integer N. If integer is positive,
the 1-bits in its binary representation are counted. If negative,
the 0-bits in its two's-complement binary representation are
@@ -5913,6 +6726,17 @@ representation.
(logcount -2)
=> 1
+On `discuss@r6rs.org' Ben Harris credits Simon Tatham with the idea to |
+have `bitwise-bit-count' return a negative count for negative inputs. |
+Alan Bawden came up with the succinct invariant. |
+ |
+ -- Function: bitwise-bit-count n |
+ If N is non-negative, this procedure returns the number of 1 bits |
+ in the two's-complement representation of N. Otherwise it returns |
+ the result of the following computation: |
+ |
+ (bitwise-not (bitwise-bit-count (bitwise-not N))) |
+ |
-- Function: integer-length n
Returns the number of bits neccessary to represent N.
@@ -6059,44 +6883,44 @@ representation.

File: slib.info, Node: Modular Arithmetic, Next: Irrational Integer Functions, Prev: Bit-Twiddling, Up: Mathematical Packages
- |
+
5.2 Modular Arithmetic
======================
`(require 'modular)'
- |
+
-- Function: extended-euclid n1 n2
Returns a list of 3 integers `(d x y)' such that d = gcd(N1, N2) =
N1 * x + N2 * y.
- -- Function: symmetric:modulus m |
- For odd positive integer M, returns an object suitable for passing |
- as the first argument to `modular:' procedures, directing them to |
- return a symmetric modular number, ie. an N such that |
- (<= (quotient M -2) N (quotient M 2) |
+ -- Function: symmetric:modulus m
+ For odd positive integer M, returns an object suitable for passing
+ as the first argument to `modular:' procedures, directing them to
+ return a symmetric modular number, ie. an N such that
+ (<= (quotient M -2) N (quotient M 2)
- -- Function: modular:characteristic modulus |
+ -- Function: modular:characteristic modulus
Returns the non-negative integer characteristic of the ring formed
when MODULUS is used with `modular:' procedures.
-- Function: modular:normalize modulus n
- Returns the integer `(modulo N (modular:characteristic MODULUS))' |
- in the representation specified by MODULUS. |
+ Returns the integer `(modulo N (modular:characteristic MODULUS))'
+ in the representation specified by MODULUS.
The rest of these functions assume normalized arguments; That is, the
arguments are constrained by the following table:
For all of these functions, if the first argument (MODULUS) is:
`positive?'
- Integers mod MODULUS. The result is between 0 and MODULUS. |
+ Integers mod MODULUS. The result is between 0 and MODULUS.
`zero?'
The arguments are treated as integers. An integer is returned.
-Otherwise, if MODULUS is a value returned by `(symmetric:modulus |
-RADIX)', then the arguments and result are treated as members of the |
-integers modulo RADIX, but with "symmetric" representation; i.e. |
- (<= (quotient RADIX 2) N (quotient (- -1 RADIX) 2) |
+Otherwise, if MODULUS is a value returned by `(symmetric:modulus
+RADIX)', then the arguments and result are treated as members of the
+integers modulo RADIX, but with "symmetric" representation; i.e.
+ (<= (quotient RADIX 2) N (quotient (- -1 RADIX) 2)
If all the arguments are fixnums the computation will use only fixnums.
@@ -6128,150 +6952,150 @@ If all the arguments are fixnums the computation will use only fixnums.

File: slib.info, Node: Irrational Integer Functions, Next: Irrational Real Functions, Prev: Modular Arithmetic, Up: Mathematical Packages
- |
-5.3 Irrational Integer Functions |
-================================ |
- |
-`(require 'math-integer)' |
- |
- -- Function: integer-expt n1 n2 |
- Returns N1 raised to the power N2 if that result is an exact |
- integer; otherwise signals an error. |
- |
- `(integer-expt 0 N2)' |
- |
- returns 1 for N2 equal to 0; returns 0 for positive integer N2; |
- signals an error otherwise. |
- |
- -- Function: integer-log base k |
- Returns the largest exact integer whose power of BASE is less than |
- or equal to K. If BASE or K is not a positive exact integer, then |
- `integer-log' signals an error. |
- |
- -- Function: integer-sqrt k |
- For non-negative integer K returns the largest integer whose square |
- is less than or equal to K; otherwise signals an error. |
- |
- -- Variable: quotient |
- -- Variable: remainder |
- -- Variable: modulo |
- are redefined so that they accept only exact-integer arguments. |
- |
+
+5.3 Irrational Integer Functions
+================================
+
+`(require 'math-integer)'
+
+ -- Function: integer-expt n1 n2
+ Returns N1 raised to the power N2 if that result is an exact
+ integer; otherwise signals an error.
+
+ `(integer-expt 0 N2)'
+
+ returns 1 for N2 equal to 0; returns 0 for positive integer N2;
+ signals an error otherwise.
+
+ -- Function: integer-log base k
+ Returns the largest exact integer whose power of BASE is less than
+ or equal to K. If BASE or K is not a positive exact integer, then
+ `integer-log' signals an error.
+
+ -- Function: integer-sqrt k
+ For non-negative integer K returns the largest integer whose square
+ is less than or equal to K; otherwise signals an error.
+
+ -- Variable: quotient
+ -- Variable: remainder
+ -- Variable: modulo
+ are redefined so that they accept only exact-integer arguments.
+

File: slib.info, Node: Irrational Real Functions, Next: Prime Numbers, Prev: Irrational Integer Functions, Up: Mathematical Packages
- |
-5.4 Irrational Real Functions |
-============================= |
- |
-`(require 'math-real)' |
- |
- Although this package defines real and complex functions, it is safe |
-to load into an integer-only implementation; those functions will be |
-defined to #f. |
- |
- -- Function: real-exp X |
- -- Function: real-ln X |
- -- Function: real-log Y X |
- -- Function: real-sin X |
- -- Function: real-cos X |
- -- Function: real-tan X |
- -- Function: real-asin X |
- -- Function: real-acos X |
- -- Function: real-atan X |
- -- Function: atan Y X |
- These procedures are part of every implementation that supports |
- general real numbers; they compute the usual transcendental |
- functions. `real-ln' computes the natural logarithm of X; |
- `real-log' computes the logarithm of X base Y, which is `(/ |
- (real-ln x) (real-ln y))'. If arguments X and Y are not both |
- real; or if the correct result would not be real, then these |
- procedures signal an error. |
- |
- |
- -- Function: real-sqrt X |
- For non-negative real X the result will be its positive square |
- root; otherwise an error will be signaled. |
- |
- |
- -- Function: real-expt x1 x2 |
- Returns X1 raised to the power X2 if that result is a real number; |
- otherwise signals an error. |
- |
- `(real-expt 0.0 X2)' |
- |
- * returns 1.0 for X2 equal to 0.0; |
- |
- * returns 0.0 for positive real X2; |
- |
- * signals an error otherwise. |
- |
- |
- -- Function: quo x1 x2 |
- -- Function: rem x1 x2 |
- -- Function: mod x1 x2 |
- X2 should be non-zero. |
- |
- (quo X1 X2) ==> N_Q |
- (rem X1 X2) ==> X_R |
- (mod X1 X2) ==> X_M |
- |
- where N_Q is X1/X2 rounded towards zero, 0 < |X_R| < |X2|, 0 < |
- |X_M| < |X2|, X_R and X_M differ from X1 by a multiple of X2, X_R |
- has the same sign as X1, and X_M has the same sign as X2. |
- |
- From this we can conclude that for X2 not equal to 0, |
- |
- (= X1 (+ (* X2 (quo X1 X2)) |
- (rem X1 X2))) |
- ==> #t |
- |
- provided all numbers involved in that computation are exact. |
- |
- (quo 2/3 1/5) ==> 3 |
- (mod 2/3 1/5) ==> 1/15 |
- |
- (quo .666 1/5) ==> 3.0 |
- (mod .666 1/5) ==> 65.99999999999995e-3 |
- |
- -- Function: ln Z |
- These procedures are part of every implementation that supports |
- general real numbers. `Ln' computes the natural logarithm of Z |
- |
- In general, the mathematical function ln is multiply defined. The |
- value of ln Z is defined to be the one whose imaginary part lies |
- in the range from -pi (exclusive) to pi (inclusive). |
- |
- |
- -- Function: abs x |
- For real argument X, `Abs' returns the absolute value of X' |
- otherwise it signals an error. |
- |
- (abs -7) ==> 7 |
- |
- |
- -- Function: make-rectangular x1 x2 |
- -- Function: make-polar x3 x4 |
- These procedures are part of every implementation that supports |
- general complex numbers. Suppose X1, X2, X3, and X4 are real |
- numbers and Z is a complex number such that |
- |
- Z = X1 + X2i = X3 . e^i X4 |
- |
- Then |
- |
- (make-rectangular X1 X2) ==> Z |
- (make-polar X3 X4) ==> Z |
- |
- where -pi < x_angle <= pi with x_angle = X4 + 2pi n for some |
- integer n. |
- |
- If an argument is not real, then these procedures signal an error. |
- |
- |
+
+5.4 Irrational Real Functions
+=============================
+
+`(require 'math-real)'
+
+ Although this package defines real and complex functions, it is safe
+to load into an integer-only implementation; those functions will be
+defined to #f.
+
+ -- Function: real-exp X
+ -- Function: real-ln X
+ -- Function: real-log Y X
+ -- Function: real-sin X
+ -- Function: real-cos X
+ -- Function: real-tan X
+ -- Function: real-asin X
+ -- Function: real-acos X
+ -- Function: real-atan X
+ -- Function: atan Y X
+ These procedures are part of every implementation that supports
+ general real numbers; they compute the usual transcendental
+ functions. `real-ln' computes the natural logarithm of X;
+ `real-log' computes the logarithm of X base Y, which is `(/
+ (real-ln x) (real-ln y))'. If arguments X and Y are not both
+ real; or if the correct result would not be real, then these
+ procedures signal an error.
+
+
+ -- Function: real-sqrt X
+ For non-negative real X the result will be its positive square
+ root; otherwise an error will be signaled.
+
+
+ -- Function: real-expt x1 x2
+ Returns X1 raised to the power X2 if that result is a real number;
+ otherwise signals an error.
+
+ `(real-expt 0.0 X2)'
+
+ * returns 1.0 for X2 equal to 0.0;
+
+ * returns 0.0 for positive real X2;
+
+ * signals an error otherwise.
+
+
+ -- Function: quo x1 x2
+ -- Function: rem x1 x2
+ -- Function: mod x1 x2
+ X2 should be non-zero.
+
+ (quo X1 X2) ==> N_Q
+ (rem X1 X2) ==> X_R
+ (mod X1 X2) ==> X_M
+
+ where N_Q is X1/X2 rounded towards zero, 0 < |X_R| < |X2|, 0 <
+ |X_M| < |X2|, X_R and X_M differ from X1 by a multiple of X2, X_R
+ has the same sign as X1, and X_M has the same sign as X2.
+
+ From this we can conclude that for X2 not equal to 0,
+
+ (= X1 (+ (* X2 (quo X1 X2))
+ (rem X1 X2)))
+ ==> #t
+
+ provided all numbers involved in that computation are exact.
+
+ (quo 2/3 1/5) ==> 3
+ (mod 2/3 1/5) ==> 1/15
+
+ (quo .666 1/5) ==> 3.0
+ (mod .666 1/5) ==> 65.99999999999995e-3
+
+ -- Function: ln Z
+ These procedures are part of every implementation that supports
+ general real numbers. `Ln' computes the natural logarithm of Z
+
+ In general, the mathematical function ln is multiply defined. The
+ value of ln Z is defined to be the one whose imaginary part lies
+ in the range from -pi (exclusive) to pi (inclusive).
+
+
+ -- Function: abs x
+ For real argument X, `Abs' returns the absolute value of X'
+ otherwise it signals an error.
+
+ (abs -7) ==> 7
+
+
+ -- Function: make-rectangular x1 x2
+ -- Function: make-polar x3 x4
+ These procedures are part of every implementation that supports
+ general complex numbers. Suppose X1, X2, X3, and X4 are real
+ numbers and Z is a complex number such that
+
+ Z = X1 + X2i = X3 . e^i X4
+
+ Then
+
+ (make-rectangular X1 X2) ==> Z
+ (make-polar X3 X4) ==> Z
+
+ where -pi < x_angle <= pi with x_angle = X4 + 2pi n for some
+ integer n.
+
+ If an argument is not real, then these procedures signal an error.
+
+

File: slib.info, Node: Prime Numbers, Next: Random Numbers, Prev: Irrational Real Functions, Up: Mathematical Packages
- |
-5.5 Prime Numbers |
+
+5.5 Prime Numbers
=================
`(require 'factor)'
@@ -6315,8 +7139,8 @@ the Solovay-Strassen primality test. See

File: slib.info, Node: Random Numbers, Next: Discrete Fourier Transform, Prev: Prime Numbers, Up: Mathematical Packages
- |
-5.6 Random Numbers |
+
+5.6 Random Numbers
==================
A pseudo-random number generator is only as good as the tests it passes.
@@ -6338,7 +7162,7 @@ from sequential bytes, tests fail. With the seed

File: slib.info, Node: Exact Random Numbers, Next: Inexact Random Numbers, Prev: Random Numbers, Up: Random Numbers
-5.6.1 Exact Random Numbers |
+5.6.1 Exact Random Numbers
--------------------------
`(require 'random)'
@@ -6390,7 +7214,7 @@ File: slib.info, Node: Exact Random Numbers, Next: Inexact Random Numbers, Pr

File: slib.info, Node: Inexact Random Numbers, Prev: Exact Random Numbers, Up: Random Numbers
-5.6.2 Inexact Random Numbers |
+5.6.2 Inexact Random Numbers
----------------------------
`(require 'random-inexact)'
@@ -6435,57 +7259,57 @@ File: slib.info, Node: Inexact Random Numbers, Prev: Exact Random Numbers, Up

File: slib.info, Node: Discrete Fourier Transform, Next: Cyclic Checksum, Prev: Random Numbers, Up: Mathematical Packages
- |
-5.7 Discrete Fourier Transform |
-============================== |
-`(require 'dft)' or `(require 'Fourier-transform)' |
+5.7 Discrete Fourier Transform
+==============================
- `fft' and `fft-1' compute the Fast-Fourier-Transforms (O(n*log(n))) |
-of arrays whose dimensions are all powers of 2. |
- |
- `sft' and `sft-1' compute the Discrete-Fourier-Transforms for all |
-combinations of dimensions (O(n^2)). |
- |
- -- Function: sft array prot |
- -- Function: sft array |
- ARRAY is an array of positive rank. `sft' returns an array of |
- type PROT (defaulting to ARRAY) of complex numbers comprising the |
- "Discrete Fourier Transform" of ARRAY. |
- |
- -- Function: sft-1 array prot |
- -- Function: sft-1 array |
- ARRAY is an array of positive rank. `sft-1' returns an array of |
- type PROT (defaulting to ARRAY) of complex numbers comprising the |
- inverse Discrete Fourier Transform of ARRAY. |
- |
- -- Function: fft array prot |
+`(require 'dft)' or `(require 'Fourier-transform)'
+
+ `fft' and `fft-1' compute the Fast-Fourier-Transforms (O(n*log(n)))
+of arrays whose dimensions are all powers of 2.
+
+ `sft' and `sft-1' compute the Discrete-Fourier-Transforms for all
+combinations of dimensions (O(n^2)).
+
+ -- Function: sft array prot
+ -- Function: sft array
+ ARRAY is an array of positive rank. `sft' returns an array of
+ type PROT (defaulting to ARRAY) of complex numbers comprising the
+ "Discrete Fourier Transform" of ARRAY.
+
+ -- Function: sft-1 array prot
+ -- Function: sft-1 array
+ ARRAY is an array of positive rank. `sft-1' returns an array of
+ type PROT (defaulting to ARRAY) of complex numbers comprising the
+ inverse Discrete Fourier Transform of ARRAY.
+
+ -- Function: fft array prot
-- Function: fft array
- ARRAY is an array of positive rank whose dimensions are all powers |
- of 2. `fft' returns an array of type PROT (defaulting to ARRAY) |
- of complex numbers comprising the Discrete Fourier Transform of |
+ ARRAY is an array of positive rank whose dimensions are all powers
+ of 2. `fft' returns an array of type PROT (defaulting to ARRAY)
+ of complex numbers comprising the Discrete Fourier Transform of
ARRAY.
- -- Function: fft-1 array prot |
+ -- Function: fft-1 array prot
-- Function: fft-1 array
- ARRAY is an array of positive rank whose dimensions are all powers |
- of 2. `fft-1' returns an array of type PROT (defaulting to ARRAY) |
- of complex numbers comprising the inverse Discrete Fourier |
- Transform of ARRAY. |
- |
- `dft' and `dft-1' compute the discrete Fourier transforms using the |
-best method for decimating each dimension. |
- |
- -- Function: dft array prot |
- -- Function: dft array |
- `dft' returns an array of type PROT (defaulting to ARRAY) of |
- complex numbers comprising the Discrete Fourier Transform of ARRAY. |
- |
- -- Function: dft-1 array prot |
- -- Function: dft-1 array |
- `dft-1' returns an array of type PROT (defaulting to ARRAY) of |
- complex numbers comprising the inverse Discrete Fourier Transform |
- of ARRAY. |
+ ARRAY is an array of positive rank whose dimensions are all powers
+ of 2. `fft-1' returns an array of type PROT (defaulting to ARRAY)
+ of complex numbers comprising the inverse Discrete Fourier
+ Transform of ARRAY.
+
+ `dft' and `dft-1' compute the discrete Fourier transforms using the
+best method for decimating each dimension.
+
+ -- Function: dft array prot
+ -- Function: dft array
+ `dft' returns an array of type PROT (defaulting to ARRAY) of
+ complex numbers comprising the Discrete Fourier Transform of ARRAY.
+
+ -- Function: dft-1 array prot
+ -- Function: dft-1 array
+ `dft-1' returns an array of type PROT (defaulting to ARRAY) of
+ complex numbers comprising the inverse Discrete Fourier Transform
+ of ARRAY.
`(fft-1 (fft ARRAY))' will return an array of values close to ARRAY.
@@ -6501,8 +7325,8 @@ best method for decimating each dimension. |

File: slib.info, Node: Cyclic Checksum, Next: Graphing, Prev: Discrete Fourier Transform, Up: Mathematical Packages
- |
-5.8 Cyclic Checksum |
+
+5.8 Cyclic Checksum
===================
`(require 'crc)' Cyclic Redundancy Checks using Galois field GF(2)
@@ -6690,7 +7514,7 @@ checksum of the bytes in STR, can be defined as follows:

File: slib.info, Node: Graphing, Next: Solid Modeling, Prev: Cyclic Checksum, Up: Mathematical Packages
-5.9 Graphing |
+5.9 Graphing
============
* Menu:
@@ -6701,7 +7525,7 @@ File: slib.info, Node: Graphing, Next: Solid Modeling, Prev: Cyclic Checksum,

File: slib.info, Node: Character Plotting, Next: PostScript Graphing, Prev: Graphing, Up: Graphing
-5.9.1 Character Plotting |
+5.9.1 Character Plotting
------------------------
`(require 'charplot)'
@@ -6814,7 +7638,7 @@ File: slib.info, Node: Character Plotting, Next: PostScript Graphing, Prev: G

File: slib.info, Node: PostScript Graphing, Prev: Character Plotting, Up: Graphing
-5.9.2 PostScript Graphing |
+5.9.2 PostScript Graphing
-------------------------
`(require 'eps-graph)'
@@ -6865,7 +7689,7 @@ first ELT argument to the last.

File: slib.info, Node: Column Ranges, Next: Drawing the Graph, Prev: PostScript Graphing, Up: PostScript Graphing
-5.9.2.1 Column Ranges |
+5.9.2.1 Column Ranges
.....................
A "range" is a list of two numbers, the minimum and the maximum. Ranges
@@ -6906,7 +7730,7 @@ can be given explicity or computed in PostScript by `column-range'.

File: slib.info, Node: Drawing the Graph, Next: Graphics Context, Prev: Column Ranges, Up: PostScript Graphing
-5.9.2.2 Drawing the Graph |
+5.9.2.2 Drawing the Graph
.........................
-- Function: plot-column array x-column y-column proc3s
@@ -6964,7 +7788,7 @@ The glyphs and drawing styles available are:

File: slib.info, Node: Graphics Context, Next: Rectangles, Prev: Drawing the Graph, Up: PostScript Graphing
-5.9.2.3 Graphics Context |
+5.9.2.3 Graphics Context
........................
-- Function: in-graphic-context arg ...
@@ -7017,7 +7841,7 @@ The effects of `clip-to-rect' are also part of the graphic context.

File: slib.info, Node: Rectangles, Next: Legending, Prev: Graphics Context, Up: PostScript Graphing
-5.9.2.4 Rectangles |
+5.9.2.4 Rectangles
..................
A "rectangle" is a list of 4 numbers; the first two elements are the x
@@ -7057,7 +7881,7 @@ elements are the width and height of the rectangle.

File: slib.info, Node: Legending, Next: Legacy Plotting, Prev: Rectangles, Up: PostScript Graphing
-5.9.2.5 Legending |
+5.9.2.5 Legending
.................
-- Function: title-top title subtitle
@@ -7093,13 +7917,13 @@ File: slib.info, Node: Legending, Next: Legacy Plotting, Prev: Rectangles, U
ticks are -TICK-WIDTH long on the left side of X-COORD; and TEXT
and numeric legends are on the right.
- -- Function: rule-horizontal y-coord text tick-height |
- Draws a horizontal ruler with Y coordinate Y-COORD and labeled with |
+ -- Function: rule-horizontal y-coord text tick-height
+ Draws a horizontal ruler with Y coordinate Y-COORD and labeled with
string TEXT. If TICK-HEIGHT is positive, then the ticks are
- TICK-HEIGHT long on the top side of Y-COORD; and TEXT and numeric |
- legends are on the bottom. If TICK-HEIGHT is negative, then the |
- ticks are -TICK-HEIGHT long on the bottom side of Y-COORD; and |
- TEXT and numeric legends are on the top. |
+ TICK-HEIGHT long on the top side of Y-COORD; and TEXT and numeric
+ legends are on the bottom. If TICK-HEIGHT is negative, then the
+ ticks are -TICK-HEIGHT long on the bottom side of Y-COORD; and
+ TEXT and numeric legends are on the top.
-- Function: y-axis
Draws the y-axis.
@@ -7118,7 +7942,7 @@ File: slib.info, Node: Legending, Next: Legacy Plotting, Prev: Rectangles, U

File: slib.info, Node: Legacy Plotting, Next: Example Graph, Prev: Legending, Up: PostScript Graphing
-5.9.2.6 Legacy Plotting |
+5.9.2.6 Legacy Plotting
.......................
-- Variable: graph:dimensions
@@ -7145,7 +7969,7 @@ File: slib.info, Node: Legacy Plotting, Next: Example Graph, Prev: Legending,

File: slib.info, Node: Example Graph, Prev: Legacy Plotting, Up: PostScript Graphing
-5.9.2.7 Example Graph |
+5.9.2.7 Example Graph
.....................
The file `am1.5.html', a table of solar irradiance, is fetched with
@@ -7247,8 +8071,8 @@ scales.

File: slib.info, Node: Solid Modeling, Next: Color, Prev: Graphing, Up: Mathematical Packages
-5.10 Solid Modeling |
-=================== |
+5.10 Solid Modeling
+===================
`(require 'solid)'
@@ -7458,11 +8282,11 @@ Object Primitives
origin. APPEARANCE determines the surface properties of the
returned object.
- -- Function: solid:lumber geometry appearance |
- Returns a box of the specified GEOMETRY, but with the y-axis of a |
- texture specified in APPEARANCE being applied along the longest |
- dimension in GEOMETRY. |
- |
+ -- Function: solid:lumber geometry appearance
+ Returns a box of the specified GEOMETRY, but with the y-axis of a
+ texture specified in APPEARANCE being applied along the longest
+ dimension in GEOMETRY.
+
-- Function: solid:cylinder radius height appearance
-- Function: solid:cylinder radius height
Returns a right cylinder with dimensions `(abs RADIUS)' and `(abs
@@ -7519,15 +8343,15 @@ Object Primitives
3)' and `(4 5 6)':
(solid:polyline '((1 2 3) (4 5 6)) (solid:color #f 0 #f 0 '(1 0 0)))
- -- Function: solid:prism xz-array y appearance |
- -- Function: solid:prism xz-array y |
- XZ-ARRAY must be an N-by-2 array holding a sequence of coordinates |
- tracing a non-intersecting clockwise loop in the x-z plane. |
- `solid:prism' will close the sequence if the first and last |
- coordinates are not the same. |
- |
- `solid:prism' returns a capped prism Y long. |
- |
+ -- Function: solid:prism xz-array y appearance
+ -- Function: solid:prism xz-array y
+ XZ-ARRAY must be an N-by-2 array holding a sequence of coordinates
+ tracing a non-intersecting clockwise loop in the x-z plane.
+ `solid:prism' will close the sequence if the first and last
+ coordinates are not the same.
+
+ `solid:prism' returns a capped prism Y long.
+
-- Function: solid:basrelief width height depth colorray appearance
-- Function: solid:basrelief width height depth appearance
-- Function: solid:basrelief width height depth
@@ -7683,8 +8507,8 @@ Spatial Transformations

File: slib.info, Node: Color, Next: Root Finding, Prev: Solid Modeling, Up: Mathematical Packages
-5.11 Color |
-========== |
+5.11 Color
+==========
`http://swiss.csail.mit.edu/~jaffer/Color'
@@ -7706,8 +8530,8 @@ encountered in practice and the literature.

File: slib.info, Node: Color Data-Type, Next: Color Spaces, Prev: Color, Up: Color
-5.11.1 Color Data-Type |
----------------------- |
+5.11.1 Color Data-Type
+----------------------
`(require 'color)'
@@ -7761,8 +8585,8 @@ File: slib.info, Node: Color Data-Type, Next: Color Spaces, Prev: Color, Up:
-- Function: convert-color color e-sRGB precision
Converts COLOR into SPACE at optional WHITE-POINT.
-5.11.1.1 External Representation |
-................................ |
+5.11.1.1 External Representation
+................................
Each color encoding has an external, case-insensitive representation.
To ensure portability, the white-point for all color strings is D65.
@@ -7805,8 +8629,8 @@ sRGB #x<RRGGBB>
syntactically valid notation for a color, then `string->color'
returns #f.
-5.11.1.2 White |
-.............. |
+5.11.1.2 White
+..............
We experience color relative to the illumination around us. CIEXYZ
coordinates, although subject to uniform scaling, are objective. Thus
@@ -7840,8 +8664,8 @@ device-dependent RGBi and RGB spaces of Xlib.

File: slib.info, Node: Color Spaces, Next: Spectra, Prev: Color Data-Type, Up: Color
-5.11.2 Color Spaces |
-------------------- |
+5.11.2 Color Spaces
+-------------------
Measurement-based Color Spaces
..............................
@@ -8107,8 +8931,8 @@ ICC.1:1998-09:

File: slib.info, Node: Spectra, Next: Color Difference Metrics, Prev: Color Spaces, Up: Color
-5.11.3 Spectra |
--------------- |
+5.11.3 Spectra
+--------------
The following functions compute colors from spectra, scale color
luminance, and extract chromaticity. XYZ is used in the names of
@@ -8321,8 +9145,8 @@ chromaticities with sums greater than one are scaled to sum to one.

File: slib.info, Node: Color Difference Metrics, Next: Color Conversions, Prev: Spectra, Up: Color
-5.11.4 Color Difference Metrics |
-------------------------------- |
+5.11.4 Color Difference Metrics
+-------------------------------
`(require 'color-space)'
@@ -8392,8 +9216,8 @@ to use a single value pass/fail tolerance for all shades.

File: slib.info, Node: Color Conversions, Next: Color Names, Prev: Color Difference Metrics, Up: Color
-5.11.5 Color Conversions |
------------------------- |
+5.11.5 Color Conversions
+------------------------
This package contains the low-level color conversion and color metric
routines operating on lists of 3 numbers. There is no type or range
@@ -8463,8 +9287,8 @@ Do not convert e-sRGB precision through `e-sRGB->sRGB' then

File: slib.info, Node: Color Names, Next: Daylight, Prev: Color Conversions, Up: Color
-5.11.6 Color Names |
------------------- |
+5.11.6 Color Names
+------------------
`(require 'color-names)'
@@ -8629,8 +9453,8 @@ program, then you must include its license with your program:

File: slib.info, Node: Daylight, Prev: Color Names, Up: Color
-5.11.7 Daylight |
---------------- |
+5.11.7 Daylight
+---------------
`(require 'daylight)'
@@ -8727,15 +9551,11 @@ turbidity values less than 1.3.

File: slib.info, Node: Root Finding, Next: Minimizing, Prev: Color, Up: Mathematical Packages
-5.12 Root Finding |
+5.12 Root Finding
=================
`(require 'root)'
-
- -- Function: integer-sqrt y
- Given a non-negative integer Y, returns the largest integer whose
- square is less than or equal to Y.
-
+ |
-- Function: newton:find-integer-root f df/dx x0
Given integer valued procedure F, its derivative (with respect to
its argument) DF/DX, and initial integer value X0 for which
@@ -8822,7 +9642,7 @@ Polynomials', IEEE Transactions on Circuits and Systems, Vol. 36, No.

File: slib.info, Node: Minimizing, Next: The Limit, Prev: Root Finding, Up: Mathematical Packages
-5.13 Minimizing |
+5.13 Minimizing
===============
`(require 'minimize)'
@@ -8869,7 +9689,7 @@ and Software' Prentice-Hall, 1989, ISBN 0-13-627258-4

File: slib.info, Node: The Limit, Next: Commutative Rings, Prev: Minimizing, Up: Mathematical Packages
-5.14 The Limit |
+5.14 The Limit
==============
-- library procedure: limit proc x1 x2 k
@@ -8969,7 +9789,7 @@ File: slib.info, Node: The Limit, Next: Commutative Rings, Prev: Minimizing,

File: slib.info, Node: Commutative Rings, Next: Matrix Algebra, Prev: The Limit, Up: Mathematical Packages
-5.15 Commutative Rings |
+5.15 Commutative Rings
======================
Scheme provides a consistent and capable set of numeric functions.
@@ -9035,7 +9855,7 @@ expressions are handled similarly.
`remainder', `lcm', and `gcd'; but these work only for the more
restrictive Euclidean (Unique Factorization) Domain.
-5.16 Rules and Rulesets |
+5.16 Rules and Rulesets
=======================
The "commutative-ring" package allows control of ring properties
@@ -9109,7 +9929,7 @@ involving different non-numeric elements.
(lambda (exp1 exp2)
(apply + (map (lambda (trm) (* trm exp2)) (cdr exp1))))))
-5.17 How to Create a Commutative Ring |
+5.17 How to Create a Commutative Ring
=====================================
The first step in creating your commutative ring is to write procedures
@@ -9248,7 +10068,7 @@ objects.

File: slib.info, Node: Matrix Algebra, Prev: Commutative Rings, Up: Mathematical Packages
-5.18 Matrix Algebra |
+5.18 Matrix Algebra
===================
`(require 'determinant)'
@@ -9274,9 +10094,21 @@ linear-algebra texts, this package uses 0-based coordinates.
Returns a copy of MATRIX flipped over the diagonal containing the
1,1 element.
+ -- Function: matrix:sum m1 m2 |
+ Returns the element-wise sum of matricies M1 and M2. |
+ |
+ -- Function: matrix:difference m1 m2 |
+ Returns the element-wise difference of matricies M1 and M2. |
+ |
-- Function: matrix:product m1 m2
Returns the product of matrices M1 and M2.
+ -- Function: matrix:product m1 z |
+ Returns matrix M1 times scalar Z. |
+ |
+ -- Function: matrix:product z m1 |
+ Returns matrix M1 times scalar Z. |
+ |
-- Function: matrix:inverse matrix
MATRIX must be a square matrix. If MATRIX is singlar, then
`matrix:inverse' returns #f; otherwise `matrix:inverse' returns the
@@ -9555,7 +10387,7 @@ missing.
(every
(lambda (c)
(memv c '(#\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9
- #\+ #\( #\space #\) #\-))) |
+ #\+ #\( #\space #\) #\-)))
(string->list d))))
string))
@@ -11606,95 +12438,95 @@ uniform-array type is supported by the implementation, then it is
returned; defaulting to the next larger precision type; resorting
finally to vector.
- -- Function: a:floc128b z
- -- Function: a:floc128b
+ -- Function: A:floC128b z |
+ -- Function: A:floC128b |
Returns an inexact 128.bit flonum complex uniform-array prototype.
- -- Function: a:floc64b z
- -- Function: a:floc64b
+ -- Function: A:floC64b z |
+ -- Function: A:floC64b |
Returns an inexact 64.bit flonum complex uniform-array prototype.
- -- Function: a:floc32b z
- -- Function: a:floc32b
+ -- Function: A:floC32b z |
+ -- Function: A:floC32b |
Returns an inexact 32.bit flonum complex uniform-array prototype.
- -- Function: a:floc16b z
- -- Function: a:floc16b
+ -- Function: A:floC16b z |
+ -- Function: A:floC16b |
Returns an inexact 16.bit flonum complex uniform-array prototype.
- -- Function: a:flor128b z
- -- Function: a:flor128b
+ -- Function: A:floR128b x |
+ -- Function: A:floR128b |
Returns an inexact 128.bit flonum real uniform-array prototype.
- -- Function: a:flor64b z
- -- Function: a:flor64b
+ -- Function: A:floR64b x |
+ -- Function: A:floR64b |
Returns an inexact 64.bit flonum real uniform-array prototype.
- -- Function: a:flor32b z
- -- Function: a:flor32b
+ -- Function: A:floR32b x |
+ -- Function: A:floR32b |
Returns an inexact 32.bit flonum real uniform-array prototype.
- -- Function: a:flor16b z
- -- Function: a:flor16b
+ -- Function: A:floR16b x |
+ -- Function: A:floR16b |
Returns an inexact 16.bit flonum real uniform-array prototype.
- -- Function: a:flor128b z
- -- Function: a:flor128b
+ -- Function: A:floR128d q |
+ -- Function: A:floR128d |
Returns an exact 128.bit decimal flonum rational uniform-array
prototype.
- -- Function: a:flor64b z
- -- Function: a:flor64b
+ -- Function: A:floR64d q |
+ -- Function: A:floR64d |
Returns an exact 64.bit decimal flonum rational uniform-array
prototype.
- -- Function: a:flor32b z
- -- Function: a:flor32b
+ -- Function: A:floR32d q |
+ -- Function: A:floR32d |
Returns an exact 32.bit decimal flonum rational uniform-array
prototype.
- -- Function: a:fixz64b n
- -- Function: a:fixz64b
+ -- Function: A:fixZ64b n |
+ -- Function: A:fixZ64b |
Returns an exact binary fixnum uniform-array prototype with at
least 64 bits of precision.
- -- Function: a:fixz32b n
- -- Function: a:fixz32b
+ -- Function: A:fixZ32b n |
+ -- Function: A:fixZ32b |
Returns an exact binary fixnum uniform-array prototype with at
least 32 bits of precision.
- -- Function: a:fixz16b n
- -- Function: a:fixz16b
+ -- Function: A:fixZ16b n |
+ -- Function: A:fixZ16b |
Returns an exact binary fixnum uniform-array prototype with at
least 16 bits of precision.
- -- Function: a:fixz8b n
- -- Function: a:fixz8b
+ -- Function: A:fixZ8b n |
+ -- Function: A:fixZ8b |
Returns an exact binary fixnum uniform-array prototype with at
least 8 bits of precision.
- -- Function: a:fixn64b k
- -- Function: a:fixn64b
+ -- Function: A:fixN64b k |
+ -- Function: A:fixN64b |
Returns an exact non-negative binary fixnum uniform-array
prototype with at least 64 bits of precision.
- -- Function: a:fixn32b k
- -- Function: a:fixn32b
+ -- Function: A:fixN32b k |
+ -- Function: A:fixN32b |
Returns an exact non-negative binary fixnum uniform-array
prototype with at least 32 bits of precision.
- -- Function: a:fixn16b k
- -- Function: a:fixn16b
+ -- Function: A:fixN16b k |
+ -- Function: A:fixN16b |
Returns an exact non-negative binary fixnum uniform-array
prototype with at least 16 bits of precision.
- -- Function: a:fixn8b k
- -- Function: a:fixn8b
+ -- Function: A:fixN8b k |
+ -- Function: A:fixN8b |
Returns an exact non-negative binary fixnum uniform-array
prototype with at least 8 bits of precision.
- -- Function: a:bool bool
- -- Function: a:bool
+ -- Function: A:bool bool |
+ -- Function: A:bool |
Returns a boolean uniform-array prototype.

@@ -11736,13 +12568,13 @@ File: slib.info, Node: Subarrays, Next: Array Mapping, Prev: Arrays, Up: Dat
#2A((a b) (d e))
> (subarray ra #f '(1 2))
#2A((b c) (e f))
- > (subarray ra #f '(2 1)) |
- #2A((c b) (f e)) |
+ > (subarray ra #f '(2 1))
+ #2A((c b) (f e))
- Arrays can be reflected (reversed) using `subarray': |
- |
- > (subarray '#1A(a b c d e) '(4 0)) |
- #1A(e d c b a) |
+ Arrays can be reflected (reversed) using `subarray':
+
+ > (subarray '#1A(a b c d e) '(4 0))
+ #1A(e d c b a)
-- Function: array-trim array trim ...
Returns a subarray sharing contents with ARRAY except for slices
@@ -11796,6 +12628,16 @@ File: slib.info, Node: Array Mapping, Next: Array Interpolation, Prev: Subarr
a list of indexes for which ARRAY is defined, (equal? LI (apply
array-ref (array-indexes ARRAY) LI)).
+ -- Function: array-index-for-each array proc |
+ applies PROC to the indices of each element of ARRAY in turn. The |
+ value returned and the order of application are unspecified. |
+ |
+ One can implement ARRAY-INDEX-MAP! as |
+ (define (array-index-map! ra fun) |
+ (array-index-for-each |
+ ra |
+ (lambda is (apply array-set! ra (apply fun is) is)))) |
+ |
-- Procedure: array-index-map! array proc
applies PROC to the indices of each element of ARRAY in turn,
storing the result in the corresponding element. The value
@@ -11954,16 +12796,16 @@ concerned.
-- Function: bytes-copy bytes
Returns a newly allocated copy of the given BYTES.
- -- Function: subbytes bytes start end |
- BYTES must be a bytes, and START and END must be exact integers |
- satisfying |
- |
- 0 <= START <= END <= (bytes-length BYTES). |
- |
- `subbytes' returns a newly allocated bytes formed from the bytes of |
- BYTES beginning with index START (inclusive) and ending with index |
- END (exclusive). |
- |
+ -- Function: subbytes bytes start end
+ BYTES must be a bytes, and START and END must be exact integers
+ satisfying
+
+ 0 <= START <= END <= (bytes-length BYTES).
+
+ `subbytes' returns a newly allocated bytes formed from the bytes of
+ BYTES beginning with index START (inclusive) and ending with index
+ END (exclusive).
+
-- Procedure: bytes-reverse! bytes
Reverses the order of byte-array BYTES.
@@ -12022,24 +12864,24 @@ Byte/Number Conversions:: are always big-endian.
PORT may be omitted, in which case it defaults to the value
returned by `current-output-port'.
-`subbytes-read!' and `subbytes-write' provide lower-level procedures |
+`subbytes-read!' and `subbytes-write' provide lower-level procedures
for reading and writing blocks of bytes. The relative size of START
and END determines the order of writing.
- -- Procedure: subbytes-read! string start end port |
- -- Procedure: subbytes-read! string start end |
+ -- Procedure: subbytes-read! string start end port
+ -- Procedure: subbytes-read! string start end
Fills STRING with up to `(abs (- START END))' bytes read from
PORT. The first byte read is stored at index STRING.
- `subbytes-read!' returns the number of bytes read. |
+ `subbytes-read!' returns the number of bytes read.
PORT may be omitted, in which case it defaults to the value
returned by `current-input-port'.
- -- Function: subbytes-write string start end port |
- -- Function: subbytes-write string start end |
- `subbytes-write' writes `(abs (- START END))' bytes to output-port |
- PORT. The first byte written is index START of STRING. |
- `subbytes-write' returns the number of bytes written. |
+ -- Function: subbytes-write string start end port
+ -- Function: subbytes-write string start end
+ `subbytes-write' writes `(abs (- START END))' bytes to output-port
+ PORT. The first byte written is index START of STRING.
+ `subbytes-write' returns the number of bytes written.
PORT may be omitted, in which case it defaults to the value
returned by `current-output-port'.
@@ -12102,6 +12944,7 @@ determines the signedness of the number.
(bytes->ieee-float (bytes #xff #x80 0 0)) => -inf.0
(bytes->ieee-float (bytes #x7f #x80 0 0)) => +inf.0
(bytes->ieee-float (bytes #x7f #x80 0 1)) => 0/0
+ (bytes->ieee-float (bytes #x7f #xc0 0 0)) => 0/0 |
-- Function: bytes->ieee-double bytes
BYTES must be a 8-element byte-array. `bytes->ieee-double'
@@ -12138,7 +12981,7 @@ determines the signedness of the number.
(bytes->list (ieee-float->bytes -inf.0)) => (255 128 0 0)
(bytes->list (ieee-float->bytes +inf.0)) => (127 128 0 0)
- (bytes->list (ieee-float->bytes 0/0)) => (127 128 0 1)
+ (bytes->list (ieee-float->bytes 0/0)) => (127 192 0 0)
-- Function: ieee-double->bytes x
Returns a 8-element byte-array encoding the IEEE double-precision
@@ -12191,7 +13034,7 @@ enables the full range of numbers as keys in
`ieee-byte-collate!' returns BYTE-VECTOR.
-- Procedure: ieee-byte-decollate! byte-vector
- Given BYTE-VECTOR modified by `IEEE-byte-collate!', reverses the
+ Given BYTE-VECTOR modified by `ieee-byte-collate!', reverses the |
BYTE-VECTOR modifications.
-- Function: ieee-byte-collate byte-vector
@@ -12199,7 +13042,7 @@ enables the full range of numbers as keys in
IEEE floating-point byte-vectors matches numerical order.
-- Function: ieee-byte-decollate byte-vector
- Given BYTE-VECTOR returned by `IEEE-byte-collate', reverses the
+ Given BYTE-VECTOR returned by `ieee-byte-collate', reverses the |
BYTE-VECTOR modifications.

@@ -12354,9 +13197,7 @@ operations.
-- Function: reduce proc seed collection1 ...
A generalization of the list-based `reduce-init' (*note Lists as
- sequences::) to collections which will shadow the list-based
- version if `(require 'collect)' follows `(require
- 'common-list-functions)' (*note Common List Functions::).
+ sequences::) to collections. |
Examples:
(reduce + 0 (vector 1 2 3))
@@ -12364,6 +13205,9 @@ operations.
(reduce union '() '((a b c) (b c d) (d a)))
=> (c b d a).
+ `Reduce' called with two arguments will work as does the procedure |
+ of the same name from *Note Common List Functions::). |
+ |
-- Function: any? pred collection1 ...
A generalization of the list-based `some' (*note Lists as
sequences::) to collections.
@@ -13595,154 +14439,88 @@ File: slib.info, Node: Sorting, Next: Topological Sort, Prev: Chapter Orderin
7.2.4 Sorting
-------------
-`(require 'sort)'
+`(require 'sort)' or `(require 'srfi-95)' |
- [by Richard A. O'Keefe, 1991] |
+ [by Richard A. O'Keefe, 1991]
|
- Many Scheme systems provide some kind of sorting functions. They do
-not, however, always provide the _same_ sorting functions, and those
-that I have had the opportunity to test provided inefficient ones (a
-common blunder is to use quicksort which does not perform well).
-
- Because `sort' and `sort!' are not in the standard, there is very
-little agreement about what these functions look like. For example,
-Dybvig says that Chez Scheme provides
- (merge predicate list1 list2)
- (merge! predicate list1 list2)
- (sort predicate list)
- (sort! predicate list)
- while MIT Scheme 7.1, following Common LISP, offers unstable
- (sort list predicate)
- TI PC Scheme offers
- (sort! list/vector predicate?)
- and Elk offers
- (sort list/vector predicate?)
- (sort! list/vector predicate?)
-
- Here is a comprehensive catalogue of the variations I have found.
-
- 1. Both `sort' and `sort!' may be provided.
-
- 2. `sort' may be provided without `sort!'.
-
- 3. `sort!' may be provided without `sort'.
-
- 4. Neither may be provided.
-
- 5. The sequence argument may be either a list or a vector.
-
- 6. The sequence argument may only be a list.
-
- 7. The sequence argument may only be a vector.
-
- 8. The comparison function may be expected to behave like `<'.
-
- 9. The comparison function may be expected to behave like `<='.
-
- 10. The interface may be `(sort predicate? sequence)'.
-
- 11. The interface may be `(sort sequence predicate?)'.
-
- 12. The interface may be `(sort sequence &optional (predicate? <))'.
-
- 13. The sort may be stable.
-
- 14. The sort may be unstable.
-
- All of this variation really does not help anybody. A nice simple
-merge sort is both stable and fast (quite a lot faster than _quick_
-sort).
-
I am providing this source code with no restrictions at all on its use
-(but please retain D.H.D.Warren's credit for the original idea). You
-may have to rename some of these functions in order to use them in a
-system which already provides incompatible or inferior sorts. For each
-of the functions, only the top-level define needs to be edited to do
-that.
-
- I could have given these functions names which would not clash with
-any Scheme that I know of, but I would like to encourage implementors to
-converge on a single interface, and this may serve as a hint. The
-argument order for all functions has been chosen to be as close to
-Common LISP as made sense, in order to avoid NIH-itis.
-
- The code of `merge' and `merge!' could have been quite a bit simpler, |
-but they have been coded to reduce the amount of work done per |
-iteration. (For example, we only have one `null?' test per iteration.) |
- |
- I gave serious consideration to producing Common-LISP-compatible |
-functions. However, Common LISP's `sort' is our `sort!' (well, in fact |
-Common LISP's `stable-sort' is our `sort!'; merge sort is _fast_ as |
-well as stable!) so adapting CL code to Scheme takes a bit of work |
-anyway. I did, however, appeal to CL to determine the _order_ of the |
-arguments. |
- |
- Each of the five functions has a required _last_ parameter which is a
-comparison function. A comparison function `f' is a function of 2
-arguments which acts like `<'. For example,
+(but please retain D.H.D.Warren's credit for the original idea). |
- (not (f x x))
- (and (f x y) (f y z)) == (f x z)
+ The code of `merge' and `merge!' could have been quite a bit simpler,
+but they have been coded to reduce the amount of work done per
+iteration. (For example, we only have one `null?' test per iteration.)
+ I gave serious consideration to producing Common-LISP-compatible
+functions. However, Common LISP's `sort' is our `sort!' (well, in fact
+Common LISP's `stable-sort' is our `sort!'; merge sort is _fast_ as
+well as stable!) so adapting CL code to Scheme takes a bit of work
+anyway. I did, however, appeal to CL to determine the _order_ of the
+arguments.
+ |
The standard functions `<', `>', `char<?', `char>?', `char-ci<?',
`char-ci>?', `string<?', `string>?', `string-ci<?', and `string-ci>?'
are suitable for use as comparison functions. Think of `(less? x y)'
as saying when `x' must _not_ precede `y'.
- [Addendum by Aubrey Jaffer, 2006] |
- |
- These procedures are stable when called with predicates which return |
-`#f' when applied to identical arguments. These procedures have |
-asymptotic time and space needs no larger than O(N*log(N)), where N is |
-the sum of the lengths of the sequence arguments. |
- |
- All five functions take an optional KEY argument corresponding to a |
-CL-style `&key' argument. A LESS? predicate with a KEY argument |
-behaves like: |
- |
- (lambda (x y) (LESS? (KEY x) (KEY y))) |
+ [Addendum by Aubrey Jaffer, 2006]
+
+ These procedures are stable when called with predicates which return
+`#f' when applied to identical arguments. |
|
- The `!' variants sort in place; `sort!' returns its SEQUENCE argument. |
+ The `sorted?', `merge', and `merge!' procedures consume asymptotic |
+time and space no larger than O(N), where N is the sum of the lengths |
+of the sequence arguments. The `sort' and `sort!' procedures consume |
+asymptotic time and space no larger than O(N*log(N)), where N is the |
+length of the sequence argument. |
+
+ All five functions take an optional KEY argument corresponding to a
+CL-style `&key' argument. A LESS? predicate with a KEY argument
+behaves like:
+
+ (lambda (x y) (LESS? (KEY x) (KEY y)))
+
+ All five functions will call the KEY argument at most once per |
+element. |
|
+ The `!' variants sort in place; `sort!' returns its SEQUENCE argument.
+
-- Function: sorted? sequence less?
- -- Function: sorted? sequence less? key |
+ -- Function: sorted? sequence less? key
Returns `#t' when the sequence argument is in non-decreasing order
according to LESS? (that is, there is no adjacent pair `... x y
...' for which `(less? y x)').
Returns `#f' when the sequence contains at least one out-of-order
- pair. It is an error if the sequence is not a list or array |
- (including vectors and strings). |
+ pair. It is an error if the sequence is not a list or array
+ (including vectors and strings).
-- Function: merge list1 list2 less?
- -- Function: merge list1 list2 less? key |
- Merges two sorted lists, returning a freshly allocated list as its |
- result. |
+ -- Function: merge list1 list2 less? key
+ Merges two sorted lists, returning a freshly allocated list as its
+ result.
- -- Function: merge! list1 list2 less? |
- -- Function: merge! list1 list2 less? key |
- Merges two sorted lists, re-using the pairs of LIST1 and LIST2 to |
- build the result. If `merge!' is compiled, then no new pairs will |
- be allocated. The first pair of the result will be either the |
- first pair of LIST1 or the first pair of LIST2. |
+ -- Function: merge! list1 list2 less?
+ -- Function: merge! list1 list2 less? key
+ Merges two sorted lists, re-using the pairs of LIST1 and LIST2 to
+ build the result. The result will be either LIST1 or LIST2. |
-- Function: sort sequence less?
- -- Function: sort sequence less? key |
- Accepts a list or array (including vectors and strings) for |
- SEQUENCE; and returns a completely new sequence which is sorted |
- according to LESS?. The returned sequence is the same type as the |
- argument SEQUENCE. Given valid arguments, it is always the case |
- that: |
-
- (sorted? (sort SEQUENCE LESS?) LESS?) => #t |
-
- -- Function: sort! sequence less? |
- -- Function: sort! sequence less? key |
- Returns SEQUENCE which has been mutated to order its elements |
- according to LESS?. If the argument SEQUENCE is a list and |
- `sort!' is compiled, then no new pairs will be allocated. If the |
- argument SEQUENCE is an array (including vectors and strings), |
- then the sorted elements are returned in the array SEQUENCE. |
+ -- Function: sort sequence less? key
+ Accepts a list or array (including vectors and strings) for
+ SEQUENCE; and returns a completely new sequence which is sorted
+ according to LESS?. The returned sequence is the same type as the
+ argument SEQUENCE. Given valid arguments, it is always the case
+ that:
+
+ (sorted? (sort SEQUENCE LESS?) LESS?) => #t
+
+ -- Function: sort! sequence less?
+ -- Function: sort! sequence less? key
+ Returns list, array, vector, or string SEQUENCE which has been |
+ mutated to order its elements according to LESS?. Given valid |
+ arguments, it is always the case that: |
+ |
+ (sorted? (sort! SEQUENCE LESS?) LESS?) => #t |

File: slib.info, Node: Topological Sort, Next: Hashing, Prev: Sorting, Up: Sorting and Searching
@@ -14990,18 +15768,27 @@ Implements "Scheme Request For Implementation" (SRFI) as described at
* SRFI-9 *Note Define-Record-Type::
- * SRFI-23 `(define error slib:error)' |
+ * SRFI-11 *Note Binding to multiple values:: |
+ |
+ * SRFI-23 `(define error slib:error)'
+
+ * SRFI-28 *Note Format:: |
* SRFI-47 *Note Arrays:: |
- * SRFI-63 *Note Arrays::
+ * SRFI-59 *Note Vicinity::
- * SRFI-59 *Note Vicinity:: |
- |
* SRFI-60 *Note Bit-Twiddling::
- * SRFI-61 *Note Guarded COND Clause::
+ * SRFI-61 *Note Guarded COND Clause::
+ * SRFI-63 *Note Arrays:: |
+ |
+ * SRFI-94 *Note Irrational Integer Functions:: and *Note Irrational
+ Real Functions:: |
+ |
+ * SRFI-95 *Note Sorting:: |
+ |

File: slib.info, Node: SRFI-1, Prev: SRFI, Up: SRFI
@@ -15120,8 +15907,7 @@ Fold and Unfold
-- Function: pair-fold-right kons knil clist1 clist2 ...
- -- Function: reduce f ridentity list
- -- Function: reduce-right f ridentity list
+ -- Function: reduce arg ... |
-- Procedure: map! f clist1 clist2 ...
@@ -15814,12 +16600,12 @@ File: slib.info, Node: About SLIB, Next: Index, Prev: Other Packages, Up: To
More people than I can name have contributed to SLIB. Thanks to all of
you!
- SLIB 3a4, released October 2006. |
+ SLIB 3a5, released November 2007. |
Aubrey Jaffer <agj @ alum.mit.edu>
- |
- Current information about SLIB can be found on SLIB's "WWW" home page: |
- |
- `http://swiss.csail.mit.edu/~jaffer/SLIB' |
+
+ Current information about SLIB can be found on SLIB's "WWW" home page:
+
+ `http://swiss.csail.mit.edu/~jaffer/SLIB'
* Menu:
@@ -15853,7 +16639,7 @@ There are five parts to installation:
8.1.1 Unpacking the SLIB Distribution
-------------------------------------
-If the SLIB distribution is a Linux RPM, it will create the SLIB
+If the SLIB distribution is a GNU/Linux RPM, it will create the SLIB |
directory `/usr/share/slib'.
If the SLIB distribution is a ZIP file, unzip the distribution to
@@ -16009,8 +16795,8 @@ File: slib.info, Node: The SLIB script, Next: Porting, Prev: Installation, U
SLIB comes with shell script for Unix platforms.
- slib [ scm | gsi | mzscheme | guile | slib48 | scheme48 | scmlit ]
-
+ slib [ scheme | scm | gsi | mzscheme | guile |
+ | scheme48 | scmlit | elk | sisc | kawa ] |
Starts an interactive Scheme-with-SLIB session.
@@ -16199,11 +16985,11 @@ File: slib.info, Node: About this manual, Prev: Copyrights, Up: About SLIB
8.6 About this manual
=====================
-* Menu: |
- |
-* Copying This Manual:: |
-* How to use this License for your documents:: |
- |
+* Menu:
+
+* Copying This Manual::
+* How to use this License for your documents::
+
* Entries that are labeled as Functions are called for their return
values. Entries that are labeled as Procedures are called
primarily for their side effects.
@@ -16217,448 +17003,448 @@ File: slib.info, Node: About this manual, Prev: Copyrights, Up: About SLIB

File: slib.info, Node: Copying This Manual, Next: How to use this License for your documents, Prev: About this manual, Up: About this manual
- |
-8.6.1 Copying This Manual |
-------------------------- |
- |
- Version 1.2, November 2002 |
- |
- Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. |
- 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA |
- |
- Everyone is permitted to copy and distribute verbatim copies |
- of this license document, but changing it is not allowed. |
- |
- 0. PREAMBLE |
- |
- The purpose of this License is to make a manual, textbook, or other |
- functional and useful document "free" in the sense of freedom: to |
- assure everyone the effective freedom to copy and redistribute it, |
- with or without modifying it, either commercially or |
- noncommercially. Secondarily, this License preserves for the |
- author and publisher a way to get credit for their work, while not |
- being considered responsible for modifications made by others. |
- |
- This License is a kind of "copyleft", which means that derivative |
- works of the document must themselves be free in the same sense. |
- It complements the GNU General Public License, which is a copyleft |
- license designed for free software. |
- |
- We have designed this License in order to use it for manuals for |
- free software, because free software needs free documentation: a |
- free program should come with manuals providing the same freedoms |
- that the software does. But this License is not limited to |
- software manuals; it can be used for any textual work, regardless |
- of subject matter or whether it is published as a printed book. |
- We recommend this License principally for works whose purpose is |
- instruction or reference. |
- |
- 1. APPLICABILITY AND DEFINITIONS |
- |
- This License applies to any manual or other work, in any medium, |
- that contains a notice placed by the copyright holder saying it |
- can be distributed under the terms of this License. Such a notice |
- grants a world-wide, royalty-free license, unlimited in duration, |
- to use that work under the conditions stated herein. The |
- "Document", below, refers to any such manual or work. Any member |
- of the public is a licensee, and is addressed as "you". You |
- accept the license if you copy, modify or distribute the work in a |
- way requiring permission under copyright law. |
- |
- A "Modified Version" of the Document means any work containing the |
- Document or a portion of it, either copied verbatim, or with |
- modifications and/or translated into another language. |
- |
- A "Secondary Section" is a named appendix or a front-matter section |
- of the Document that deals exclusively with the relationship of the |
- publishers or authors of the Document to the Document's overall |
- subject (or to related matters) and contains nothing that could |
- fall directly within that overall subject. (Thus, if the Document |
- is in part a textbook of mathematics, a Secondary Section may not |
- explain any mathematics.) The relationship could be a matter of |
- historical connection with the subject or with related matters, or |
- of legal, commercial, philosophical, ethical or political position |
- regarding them. |
- |
- The "Invariant Sections" are certain Secondary Sections whose |
- titles are designated, as being those of Invariant Sections, in |
- the notice that says that the Document is released under this |
- License. If a section does not fit the above definition of |
- Secondary then it is not allowed to be designated as Invariant. |
- The Document may contain zero Invariant Sections. If the Document |
- does not identify any Invariant Sections then there are none. |
- |
- The "Cover Texts" are certain short passages of text that are |
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice |
- that says that the Document is released under this License. A |
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may |
- be at most 25 words. |
- |
- A "Transparent" copy of the Document means a machine-readable copy, |
- represented in a format whose specification is available to the |
- general public, that is suitable for revising the document |
- straightforwardly with generic text editors or (for images |
- composed of pixels) generic paint programs or (for drawings) some |
- widely available drawing editor, and that is suitable for input to |
- text formatters or for automatic translation to a variety of |
- formats suitable for input to text formatters. A copy made in an |
- otherwise Transparent file format whose markup, or absence of |
- markup, has been arranged to thwart or discourage subsequent |
- modification by readers is not Transparent. An image format is |
- not Transparent if used for any substantial amount of text. A |
- copy that is not "Transparent" is called "Opaque". |
- |
- Examples of suitable formats for Transparent copies include plain |
- ASCII without markup, Texinfo input format, LaTeX input format, |
- SGML or XML using a publicly available DTD, and |
- standard-conforming simple HTML, PostScript or PDF designed for |
- human modification. Examples of transparent image formats include |
- PNG, XCF and JPG. Opaque formats include proprietary formats that |
- can be read and edited only by proprietary word processors, SGML or |
- XML for which the DTD and/or processing tools are not generally |
- available, and the machine-generated HTML, PostScript or PDF |
- produced by some word processors for output purposes only. |
- |
- The "Title Page" means, for a printed book, the title page itself, |
- plus such following pages as are needed to hold, legibly, the |
- material this License requires to appear in the title page. For |
- works in formats which do not have any title page as such, "Title |
- Page" means the text near the most prominent appearance of the |
- work's title, preceding the beginning of the body of the text. |
- |
- A section "Entitled XYZ" means a named subunit of the Document |
- whose title either is precisely XYZ or contains XYZ in parentheses |
- following text that translates XYZ in another language. (Here XYZ |
- stands for a specific section name mentioned below, such as |
- "Acknowledgements", "Dedications", "Endorsements", or "History".) |
- To "Preserve the Title" of such a section when you modify the |
- Document means that it remains a section "Entitled XYZ" according |
- to this definition. |
- |
- The Document may include Warranty Disclaimers next to the notice |
- which states that this License applies to the Document. These |
- Warranty Disclaimers are considered to be included by reference in |
- this License, but only as regards disclaiming warranties: any other |
- implication that these Warranty Disclaimers may have is void and |
- has no effect on the meaning of this License. |
- |
- 2. VERBATIM COPYING |
- |
- You may copy and distribute the Document in any medium, either |
- commercially or noncommercially, provided that this License, the |
- copyright notices, and the license notice saying this License |
- applies to the Document are reproduced in all copies, and that you |
- add no other conditions whatsoever to those of this License. You |
- may not use technical measures to obstruct or control the reading |
- or further copying of the copies you make or distribute. However, |
- you may accept compensation in exchange for copies. If you |
- distribute a large enough number of copies you must also follow |
- the conditions in section 3. |
- |
- You may also lend copies, under the same conditions stated above, |
- and you may publicly display copies. |
- |
- 3. COPYING IN QUANTITY |
- |
- If you publish printed copies (or copies in media that commonly |
- have printed covers) of the Document, numbering more than 100, and |
- the Document's license notice requires Cover Texts, you must |
- enclose the copies in covers that carry, clearly and legibly, all |
- these Cover Texts: Front-Cover Texts on the front cover, and |
- Back-Cover Texts on the back cover. Both covers must also clearly |
- and legibly identify you as the publisher of these copies. The |
- front cover must present the full title with all words of the |
- title equally prominent and visible. You may add other material |
- on the covers in addition. Copying with changes limited to the |
- covers, as long as they preserve the title of the Document and |
- satisfy these conditions, can be treated as verbatim copying in |
- other respects. |
- |
- If the required texts for either cover are too voluminous to fit |
- legibly, you should put the first ones listed (as many as fit |
- reasonably) on the actual cover, and continue the rest onto |
- adjacent pages. |
- |
- If you publish or distribute Opaque copies of the Document |
- numbering more than 100, you must either include a |
- machine-readable Transparent copy along with each Opaque copy, or |
- state in or with each Opaque copy a computer-network location from |
- which the general network-using public has access to download |
- using public-standard network protocols a complete Transparent |
- copy of the Document, free of added material. If you use the |
- latter option, you must take reasonably prudent steps, when you |
- begin distribution of Opaque copies in quantity, to ensure that |
- this Transparent copy will remain thus accessible at the stated |
- location until at least one year after the last time you |
- distribute an Opaque copy (directly or through your agents or |
- retailers) of that edition to the public. |
- |
- It is requested, but not required, that you contact the authors of |
- the Document well before redistributing any large number of |
- copies, to give them a chance to provide you with an updated |
- version of the Document. |
- |
- 4. MODIFICATIONS |
- |
- You may copy and distribute a Modified Version of the Document |
- under the conditions of sections 2 and 3 above, provided that you |
- release the Modified Version under precisely this License, with |
- the Modified Version filling the role of the Document, thus |
- licensing distribution and modification of the Modified Version to |
- whoever possesses a copy of it. In addition, you must do these |
- things in the Modified Version: |
- |
- A. Use in the Title Page (and on the covers, if any) a title |
- distinct from that of the Document, and from those of |
- previous versions (which should, if there were any, be listed |
- in the History section of the Document). You may use the |
- same title as a previous version if the original publisher of |
- that version gives permission. |
- |
- B. List on the Title Page, as authors, one or more persons or |
- entities responsible for authorship of the modifications in |
- the Modified Version, together with at least five of the |
- principal authors of the Document (all of its principal |
- authors, if it has fewer than five), unless they release you |
- from this requirement. |
- |
- C. State on the Title page the name of the publisher of the |
- Modified Version, as the publisher. |
- |
- D. Preserve all the copyright notices of the Document. |
- |
- E. Add an appropriate copyright notice for your modifications |
- adjacent to the other copyright notices. |
- |
- F. Include, immediately after the copyright notices, a license |
- notice giving the public permission to use the Modified |
- Version under the terms of this License, in the form shown in |
- the Addendum below. |
- |
- G. Preserve in that license notice the full lists of Invariant |
- Sections and required Cover Texts given in the Document's |
- license notice. |
- |
- H. Include an unaltered copy of this License. |
- |
- I. Preserve the section Entitled "History", Preserve its Title, |
- and add to it an item stating at least the title, year, new |
- authors, and publisher of the Modified Version as given on |
- the Title Page. If there is no section Entitled "History" in |
- the Document, create one stating the title, year, authors, |
- and publisher of the Document as given on its Title Page, |
- then add an item describing the Modified Version as stated in |
- the previous sentence. |
- |
- J. Preserve the network location, if any, given in the Document |
- for public access to a Transparent copy of the Document, and |
- likewise the network locations given in the Document for |
- previous versions it was based on. These may be placed in |
- the "History" section. You may omit a network location for a |
- work that was published at least four years before the |
- Document itself, or if the original publisher of the version |
- it refers to gives permission. |
- |
- K. For any section Entitled "Acknowledgements" or "Dedications", |
- Preserve the Title of the section, and preserve in the |
- section all the substance and tone of each of the contributor |
- acknowledgements and/or dedications given therein. |
- |
- L. Preserve all the Invariant Sections of the Document, |
- unaltered in their text and in their titles. Section numbers |
- or the equivalent are not considered part of the section |
- titles. |
- |
- M. Delete any section Entitled "Endorsements". Such a section |
- may not be included in the Modified Version. |
- |
- N. Do not retitle any existing section to be Entitled |
- "Endorsements" or to conflict in title with any Invariant |
- Section. |
- |
- O. Preserve any Warranty Disclaimers. |
- |
- If the Modified Version includes new front-matter sections or |
- appendices that qualify as Secondary Sections and contain no |
- material copied from the Document, you may at your option |
- designate some or all of these sections as invariant. To do this, |
- add their titles to the list of Invariant Sections in the Modified |
- Version's license notice. These titles must be distinct from any |
- other section titles. |
- |
- You may add a section Entitled "Endorsements", provided it contains |
- nothing but endorsements of your Modified Version by various |
- parties--for example, statements of peer review or that the text |
- has been approved by an organization as the authoritative |
- definition of a standard. |
- |
- You may add a passage of up to five words as a Front-Cover Text, |
- and a passage of up to 25 words as a Back-Cover Text, to the end |
- of the list of Cover Texts in the Modified Version. Only one |
- passage of Front-Cover Text and one of Back-Cover Text may be |
- added by (or through arrangements made by) any one entity. If the |
- Document already includes a cover text for the same cover, |
- previously added by you or by arrangement made by the same entity |
- you are acting on behalf of, you may not add another; but you may |
- replace the old one, on explicit permission from the previous |
- publisher that added the old one. |
- |
- The author(s) and publisher(s) of the Document do not by this |
- License give permission to use their names for publicity for or to |
- assert or imply endorsement of any Modified Version. |
- |
- 5. COMBINING DOCUMENTS |
- |
- You may combine the Document with other documents released under |
- this License, under the terms defined in section 4 above for |
- modified versions, provided that you include in the combination |
- all of the Invariant Sections of all of the original documents, |
- unmodified, and list them all as Invariant Sections of your |
- combined work in its license notice, and that you preserve all |
- their Warranty Disclaimers. |
- |
- The combined work need only contain one copy of this License, and |
- multiple identical Invariant Sections may be replaced with a single |
- copy. If there are multiple Invariant Sections with the same name |
- but different contents, make the title of each such section unique |
- by adding at the end of it, in parentheses, the name of the |
- original author or publisher of that section if known, or else a |
- unique number. Make the same adjustment to the section titles in |
- the list of Invariant Sections in the license notice of the |
- combined work. |
- |
- In the combination, you must combine any sections Entitled |
- "History" in the various original documents, forming one section |
- Entitled "History"; likewise combine any sections Entitled |
- "Acknowledgements", and any sections Entitled "Dedications". You |
- must delete all sections Entitled "Endorsements." |
- |
- 6. COLLECTIONS OF DOCUMENTS |
- |
- You may make a collection consisting of the Document and other |
- documents released under this License, and replace the individual |
- copies of this License in the various documents with a single copy |
- that is included in the collection, provided that you follow the |
- rules of this License for verbatim copying of each of the |
- documents in all other respects. |
- |
- You may extract a single document from such a collection, and |
- distribute it individually under this License, provided you insert |
- a copy of this License into the extracted document, and follow |
- this License in all other respects regarding verbatim copying of |
- that document. |
- |
- 7. AGGREGATION WITH INDEPENDENT WORKS |
- |
- A compilation of the Document or its derivatives with other |
- separate and independent documents or works, in or on a volume of |
- a storage or distribution medium, is called an "aggregate" if the |
- copyright resulting from the compilation is not used to limit the |
- legal rights of the compilation's users beyond what the individual |
- works permit. When the Document is included in an aggregate, this |
- License does not apply to the other works in the aggregate which |
- are not themselves derivative works of the Document. |
- |
- If the Cover Text requirement of section 3 is applicable to these |
- copies of the Document, then if the Document is less than one half |
- of the entire aggregate, the Document's Cover Texts may be placed |
- on covers that bracket the Document within the aggregate, or the |
- electronic equivalent of covers if the Document is in electronic |
- form. Otherwise they must appear on printed covers that bracket |
- the whole aggregate. |
- |
- 8. TRANSLATION |
- |
- Translation is considered a kind of modification, so you may |
- distribute translations of the Document under the terms of section |
- 4. Replacing Invariant Sections with translations requires special |
- permission from their copyright holders, but you may include |
- translations of some or all Invariant Sections in addition to the |
- original versions of these Invariant Sections. You may include a |
- translation of this License, and all the license notices in the |
- Document, and any Warranty Disclaimers, provided that you also |
- include the original English version of this License and the |
- original versions of those notices and disclaimers. In case of a |
- disagreement between the translation and the original version of |
- this License or a notice or disclaimer, the original version will |
- prevail. |
- |
- If a section in the Document is Entitled "Acknowledgements", |
- "Dedications", or "History", the requirement (section 4) to |
- Preserve its Title (section 1) will typically require changing the |
- actual title. |
- |
- 9. TERMINATION |
- |
- You may not copy, modify, sublicense, or distribute the Document |
- except as expressly provided for under this License. Any other |
- attempt to copy, modify, sublicense or distribute the Document is |
- void, and will automatically terminate your rights under this |
- License. However, parties who have received copies, or rights, |
- from you under this License will not have their licenses |
- terminated so long as such parties remain in full compliance. |
- |
- 10. FUTURE REVISIONS OF THIS LICENSE |
- |
- The Free Software Foundation may publish new, revised versions of |
- the GNU Free Documentation License from time to time. Such new |
- versions will be similar in spirit to the present version, but may |
- differ in detail to address new problems or concerns. See |
- `http://www.gnu.org/copyleft/'. |
- |
- Each version of the License is given a distinguishing version |
- number. If the Document specifies that a particular numbered |
- version of this License "or any later version" applies to it, you |
- have the option of following the terms and conditions either of |
- that specified version or of any later version that has been |
- published (not as a draft) by the Free Software Foundation. If |
- the Document does not specify a version number of this License, |
- you may choose any version ever published (not as a draft) by the |
- Free Software Foundation. |
- |
+
+8.6.1 Copying This Manual
+-------------------------
+
+ Version 1.2, November 2002
+
+ Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document "free" in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or
+ noncommercially. Secondarily, this License preserves for the
+ author and publisher a way to get credit for their work, while not
+ being considered responsible for modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book.
+ We recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could
+ fall directly within that overall subject. (Thus, if the Document
+ is in part a textbook of mathematics, a Secondary Section may not
+ explain any mathematics.) The relationship could be a matter of
+ historical connection with the subject or with related matters, or
+ of legal, commercial, philosophical, ethical or political position
+ regarding them.
+
+ The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in
+ the notice that says that the Document is released under this
+ License. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License. A
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ straightforwardly with generic text editors or (for images
+ composed of pixels) generic paint programs or (for drawings) some
+ widely available drawing editor, and that is suitable for input to
+ text formatters or for automatic translation to a variety of
+ formats suitable for input to text formatters. A copy made in an
+ otherwise Transparent file format whose markup, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. A
+ copy that is not "Transparent" is called "Opaque".
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include proprietary formats that
+ can be read and edited only by proprietary word processors, SGML or
+ XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML, PostScript or PDF
+ produced by some word processors for output purposes only.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow
+ the conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies (or copies in media that commonly
+ have printed covers) of the Document, numbering more than 100, and
+ the Document's license notice requires Cover Texts, you must
+ enclose the copies in covers that carry, clearly and legibly, all
+ these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the
+ title equally prominent and visible. You may add other material
+ on the covers in addition. Copying with changes limited to the
+ covers, as long as they preserve the title of the Document and
+ satisfy these conditions, can be treated as verbatim copying in
+ other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of
+ copies, to give them a chance to provide you with an updated
+ version of the Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with
+ the Modified Version filling the role of the Document, thus
+ licensing distribution and modification of the Modified Version to
+ whoever possesses a copy of it. In addition, you must do these
+ things in the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of
+ previous versions (which should, if there were any, be listed
+ in the History section of the Document). You may use the
+ same title as a previous version if the original publisher of
+ that version gives permission.
+
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in
+ the Modified Version, together with at least five of the
+ principal authors of the Document (all of its principal
+ authors, if it has fewer than five), unless they release you
+ from this requirement.
+
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+
+ D. Preserve all the copyright notices of the Document.
+
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified
+ Version under the terms of this License, in the form shown in
+ the Addendum below.
+
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+
+ H. Include an unaltered copy of this License.
+
+ I. Preserve the section Entitled "History", Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on
+ the Title Page. If there is no section Entitled "History" in
+ the Document, create one stating the title, year, authors,
+ and publisher of the Document as given on its Title Page,
+ then add an item describing the Modified Version as stated in
+ the previous sentence.
+
+ J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in
+ the "History" section. You may omit a network location for a
+ work that was published at least four years before the
+ Document itself, or if the original publisher of the version
+ it refers to gives permission.
+
+ K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the
+ section all the substance and tone of each of the contributor
+ acknowledgements and/or dedications given therein.
+
+ L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section
+ titles.
+
+ M. Delete any section Entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+
+ N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.
+
+ You may add a section Entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties--for example, statements of peer review or that the text
+ has been approved by an organization as the authoritative
+ definition of a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end
+ of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice, and that you preserve all
+ their Warranty Disclaimers.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections Entitled
+ "History" in the various original documents, forming one section
+ Entitled "History"; likewise combine any sections Entitled
+ "Acknowledgements", and any sections Entitled "Dedications". You
+ must delete all sections Entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the
+ documents in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow
+ this License in all other respects regarding verbatim copying of
+ that document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ are not themselves derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ the whole aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other
+ attempt to copy, modify, sublicense or distribute the Document is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ `http://www.gnu.org/copyleft/'.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License "or any later version" applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If
+ the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation.
+

File: slib.info, Node: How to use this License for your documents, Prev: Copying This Manual, Up: About this manual
- |
-8.6.2 How to use this License for your documents |
------------------------------------------------- |
- |
-To use this License in a document you have written, include a copy of |
-the License in the document and put the following copyright and license |
-notices just after the title page: |
- |
- Copyright (C) YEAR YOUR NAME. |
- Permission is granted to copy, distribute and/or modify this document |
- under the terms of the GNU Free Documentation License, Version 1.2 |
- or any later version published by the Free Software Foundation; |
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover |
+
+8.6.2 How to use this License for your documents
+------------------------------------------------
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''. |
- |
- If you have Invariant Sections, Front-Cover Texts and Back-Cover |
-Texts, replace the "with...Texts." line with this: |
- |
- with the Invariant Sections being LIST THEIR TITLES, with |
- the Front-Cover Texts being LIST, and with the Back-Cover Texts |
- being LIST. |
- |
- If you have Invariant Sections without Cover Texts, or some other |
-combination of the three, merge those two alternatives to suit the |
-situation. |
- |
- If your document contains nontrivial examples of program code, we |
-recommend releasing these examples in parallel under your choice of |
-free software license, such as the GNU General Public License, to |
-permit their use in free software. |
- |
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+

File: slib.info, Node: Index, Prev: About SLIB, Up: Top
- |
+
Index
*****
Procedure and Macro Index
*************************
- |
+
* Menu:
@@ -16675,26 +17461,29 @@ Procedure and Macro Index
* =?: Rev2 Procedures. (line 47)
* >=?: Rev2 Procedures. (line 49)
* >?: Rev2 Procedures. (line 48)
-* a:bool: Arrays. (line 236)
-* a:fixn16b: Arrays. (line 226)
-* a:fixn32b: Arrays. (line 221)
-* a:fixn64b: Arrays. (line 216)
-* a:fixn8b: Arrays. (line 231)
-* a:fixz16b: Arrays. (line 206)
-* a:fixz32b: Arrays. (line 201)
-* a:fixz64b: Arrays. (line 196)
-* a:fixz8b: Arrays. (line 211)
-* a:floc128b: Arrays. (line 149)
-* a:floc16b: Arrays. (line 161)
-* a:floc32b: Arrays. (line 157)
-* a:floc64b: Arrays. (line 153)
-* a:flor128b: Arrays. (line 165)
-* a:flor16b: Arrays. (line 177)
-* a:flor32b: Arrays. (line 173)
-* a:flor64b: Arrays. (line 169)
+* A:bool: Arrays. (line 236)
+* A:fixN16b: Arrays. (line 226)
+* A:fixN32b: Arrays. (line 221)
+* A:fixN64b: Arrays. (line 216)
+* A:fixN8b: Arrays. (line 231)
+* A:fixZ16b: Arrays. (line 206)
+* A:fixZ32b: Arrays. (line 201)
+* A:fixZ64b: Arrays. (line 196)
+* A:fixZ8b: Arrays. (line 211)
+* A:floC128b: Arrays. (line 149)
+* A:floC16b: Arrays. (line 161)
+* A:floC32b: Arrays. (line 157)
+* A:floC64b: Arrays. (line 153)
+* A:floR128b: Arrays. (line 165)
+* A:floR128d: Arrays. (line 181)
+* A:floR16b: Arrays. (line 177)
+* A:floR32b: Arrays. (line 173)
+* A:floR32d: Arrays. (line 191)
+* A:floR64b: Arrays. (line 169)
+* A:floR64d: Arrays. (line 186)
* abort: Session Support. (line 9)
-* abs: Irrational Real Functions. |
- (line 86) |
+* abs: Irrational Real Functions.
+ (line 86)
* absolute-path?: URI. (line 102)
* absolute-uri?: URI. (line 98)
* add-command-tables: Database Extension. (line 11)
@@ -16708,10 +17497,10 @@ Procedure and Macro Index
* alist->wt-tree: Construction of Weight-Balanced Trees.
(line 65)
* alist-associator: Association Lists. (line 28)
-* alist-cons: SRFI-1. (line 178)
-* alist-copy: SRFI-1. (line 180)
-* alist-delete: SRFI-1. (line 182)
-* alist-delete!: SRFI-1. (line 185)
+* alist-cons: SRFI-1. (line 177)
+* alist-copy: SRFI-1. (line 179)
+* alist-delete: SRFI-1. (line 181)
+* alist-delete!: SRFI-1. (line 184)
* alist-for-each: Association Lists. (line 53)
* alist-inquirer: Association Lists. (line 23)
* alist-map: Association Lists. (line 48)
@@ -16720,36 +17509,39 @@ Procedure and Macro Index
* and-let*: Guarded LET* special form.
(line 9)
* and?: Non-List functions. (line 7)
-* any: SRFI-1. (line 156)
+* any: SRFI-1. (line 155)
* any-bits-set?: Bit-Twiddling. (line 64)
-* any?: Collections. (line 83)
+* any?: Collections. (line 84)
* append!: Rev2 Procedures. (line 36)
* append-reverse: SRFI-1. (line 95)
* append-reverse!: SRFI-1. (line 96)
* apply: Multi-argument Apply.
(line 12)
-* arithmetic-shift: Bit-Twiddling. (line 182)
+* arithmetic-shift: Bit-Twiddling. (line 192)
* array->list: Arrays. (line 101)
* array->vector: Arrays. (line 124)
* array-dimensions: Arrays. (line 48)
* array-for-each: Array Mapping. (line 25)
* array-in-bounds?: Arrays. (line 133)
-* array-index-map!: Array Mapping. (line 34)
+* array-index-for-each: Array Mapping. (line 34)
+* array-index-map!: Array Mapping. (line 44)
* array-indexes: Array Mapping. (line 29)
* array-map: Array Mapping. (line 17)
* array-map!: Array Mapping. (line 9)
* array-rank: Arrays. (line 44)
* array-ref: Arrays. (line 136)
* array-set!: Arrays. (line 139)
-* array-trim: Subarrays. (line 48) |
-* array:copy!: Array Mapping. (line 50)
+* array-trim: Subarrays. (line 48)
+* array:copy!: Array Mapping. (line 60)
* array?: Arrays. (line 9)
* asctime: Posix Time. (line 62)
-* ash: Bit-Twiddling. (line 181)
-* assoc: SRFI-1. (line 175)
-* atan: Irrational Real Functions. |
- (line 22) |
+* ash: Bit-Twiddling. (line 191)
+* assoc: SRFI-1. (line 174)
+* atan: Irrational Real Functions.
+ (line 22)
* atom?: Non-List functions. (line 30)
+* attlist-add: Parsing XML. (line 451)
+* attlist-remove-top: Parsing XML. (line 456)
* batch:call-with-output-script: Batch. (line 47)
* batch:command: Batch. (line 64)
* batch:comment: Batch. (line 95)
@@ -16760,20 +17552,20 @@ Procedure and Macro Index
* batch:run-script: Batch. (line 88)
* batch:try-chopped-command: Batch. (line 76)
* batch:try-command: Batch. (line 72)
-* bit-count: Bit-Twiddling. (line 74)
-* bit-field: Bit-Twiddling. (line 156)
-* bit-set?: Bit-Twiddling. (line 135)
+* bit-field: Bit-Twiddling. (line 166)
+* bit-set?: Bit-Twiddling. (line 145)
* bitwise-and: Bit-Twiddling. (line 19)
+* bitwise-bit-count: Bit-Twiddling. (line 91)
* bitwise-if: Bit-Twiddling. (line 56)
* bitwise-ior: Bit-Twiddling. (line 28)
* bitwise-merge: Bit-Twiddling. (line 57)
* bitwise-not: Bit-Twiddling. (line 46)
* bitwise-xor: Bit-Twiddling. (line 37)
* blackbody-spectrum: Spectra. (line 125)
-* booleans->integer: Bit-Twiddling. (line 229)
+* booleans->integer: Bit-Twiddling. (line 239)
* break <1>: Breakpoints. (line 28)
-* break: SRFI-1. (line 152)
-* break!: SRFI-1. (line 154)
+* break: SRFI-1. (line 151)
+* break!: SRFI-1. (line 153)
* break-all: Debug. (line 31)
* breakf: Breakpoints. (line 47)
* breakpoint: Breakpoints. (line 16)
@@ -16785,7 +17577,7 @@ Procedure and Macro Index
* byte-set!: Byte. (line 18)
* bytes: Byte. (line 32)
* bytes->ieee-double: Byte/Number Conversions.
- (line 60)
+ (line 61) |
* bytes->ieee-float: Byte/Number Conversions.
(line 41)
* bytes->integer: Byte/Number Conversions.
@@ -16793,8 +17585,8 @@ Procedure and Macro Index
* bytes->list: Byte. (line 36)
* bytes-copy: Byte. (line 47)
* bytes-length: Byte. (line 29)
-* bytes-reverse: Byte. (line 63) |
-* bytes-reverse!: Byte. (line 60) |
+* bytes-reverse: Byte. (line 63)
+* bytes-reverse!: Byte. (line 60)
* call-with-dynamic-binding: Dynamic Data Type. (line 25)
* call-with-input-string: String Ports. (line 15)
* call-with-open-ports: Input/Output. (line 54)
@@ -16808,8 +17600,8 @@ Procedure and Macro Index
* catalog->html: HTML Tables. (line 49)
* catalog-id on base-table: Base Tables. (line 30)
* catalog:read: Catalog Vicinities. (line 57)
-* cdna:base-count: NCBI-DNA. (line 35)
-* cdna:report-base-count: NCBI-DNA. (line 39)
+* cdna:base-count: NCBI-DNA. (line 37)
+* cdna:report-base-count: NCBI-DNA. (line 41)
* cgi:serve-query: HTTP and CGI. (line 69)
* chap:next-string: Chapter Ordering. (line 29)
* chap:string<=?: Chapter Ordering. (line 25)
@@ -16845,7 +17637,7 @@ Procedure and Macro Index
(line 61)
* CMC:DE*: Color Difference Metrics.
(line 65)
-* codons<-cdna: NCBI-DNA. (line 18)
+* codons<-cdna: NCBI-DNA. (line 20)
* coerce: Type Coercion. (line 12)
* collection?: Collections. (line 36)
* color->ciexyz: Color Spaces. (line 34)
@@ -16894,8 +17686,8 @@ Procedure and Macro Index
* cons*: SRFI-1. (line 22)
* continue: Breakpoints. (line 20)
* convert-color: Color Data-Type. (line 54)
-* copy-bit: Bit-Twiddling. (line 144)
-* copy-bit-field: Bit-Twiddling. (line 167)
+* copy-bit: Bit-Twiddling. (line 154)
+* copy-bit-field: Bit-Twiddling. (line 177)
* copy-list: List construction. (line 32)
* copy-random-state: Exact Random Numbers.
(line 29)
@@ -16916,10 +17708,10 @@ Procedure and Macro Index
* ctime: Posix Time. (line 68)
* current-directory: Directories. (line 9)
* current-error-port: Input/Output. (line 70)
-* current-input-port <1>: Byte. (line 84) |
+* current-input-port <1>: Byte. (line 84)
* current-input-port: Ruleset Definition and Use.
(line 57)
-* current-output-port: Byte. (line 76) |
+* current-output-port: Byte. (line 76)
* current-time: Time and Date. (line 20)
* cvs-directories: CVS. (line 14)
* cvs-files: CVS. (line 9)
@@ -16959,8 +17751,8 @@ Procedure and Macro Index
* delete* on base-table: Aggregate Base Operations.
(line 11)
* delete-domain on relational-database: Command Intrinsics. (line 39)
-* delete-duplicates: SRFI-1. (line 166)
-* delete-duplicates!: SRFI-1. (line 169)
+* delete-duplicates: SRFI-1. (line 165)
+* delete-duplicates!: SRFI-1. (line 168)
* delete-file: Input/Output. (line 14)
* delete-if: Destructive list operations.
(line 59)
@@ -16970,10 +17762,10 @@ Procedure and Macro Index
* dequeue!: Queues. (line 28)
* dequeue-all!: Queues. (line 36)
* determinant: Matrix Algebra. (line 18)
-* dft: Discrete Fourier Transform. |
- (line 44) |
-* dft-1: Discrete Fourier Transform. |
- (line 49) |
+* dft: Discrete Fourier Transform.
+ (line 44)
+* dft-1: Discrete Fourier Transform.
+ (line 49)
* diff:edit-length: Sequence Comparison. (line 64)
* diff:edits: Sequence Comparison. (line 45)
* diff:longest-common-subsequence: Sequence Comparison. (line 32)
@@ -16996,28 +17788,27 @@ Procedure and Macro Index
* e-sRGB->sRGB: Color Conversions. (line 60)
* eighth: SRFI-1. (line 64)
* emacs:backup-name: Transactions. (line 73)
-* empty?: Collections. (line 99)
+* empty?: Collections. (line 100)
* encode-universal-time: Common-Lisp Time. (line 40)
* enqueue!: Queues. (line 25)
* equal? <1>: Byte. (line 44)
* equal?: Arrays. (line 19)
* eval: Eval. (line 9)
* every: Lists as sets. (line 91)
-* every?: Collections. (line 91)
+* every?: Collections. (line 92)
* exports<-info-index: Top-level Variable References.
- (line 35)
-* expt: Miscellany. (line 20)
-* extended-euclid: Modular Arithmetic. (line 9) |
+ (line 35) |
+* extended-euclid: Modular Arithmetic. (line 9)
* factor: Prime Numbers. (line 41)
* feature->export-alist: Module Manifests. (line 100)
* feature->exports: Module Manifests. (line 105)
* feature->requires: Module Manifests. (line 29)
* feature->requires*: Module Manifests. (line 45)
* feature-eval: Feature. (line 52)
-* fft: Discrete Fourier Transform. |
- (line 27) |
-* fft-1: Discrete Fourier Transform. |
- (line 34) |
+* fft: Discrete Fourier Transform.
+ (line 27)
+* fft-1: Discrete Fourier Transform.
+ (line 34)
* fifth: SRFI-1. (line 61)
* file->color-dictionary: Color Names. (line 68)
* file->definitions: Module Manifests. (line 72)
@@ -17028,6 +17819,7 @@ Procedure and Macro Index
* file-exists?: Input/Output. (line 9)
* file-lock!: Transactions. (line 52)
* file-lock-owner: Transactions. (line 48)
+* file-position: Input/Output. (line 81)
* file-unlock!: Transactions. (line 62)
* filename:match-ci??: Filenames. (line 10)
* filename:match??: Filenames. (line 9)
@@ -17035,16 +17827,16 @@ Procedure and Macro Index
* filename:substitute??: Filenames. (line 34)
* fill-empty-parameters: Parameter lists. (line 51)
* fill-rect: Rectangles. (line 30)
-* filter: SRFI-1. (line 129)
-* filter!: SRFI-1. (line 131)
-* find: SRFI-1. (line 144)
+* filter: SRFI-1. (line 128)
+* filter!: SRFI-1. (line 130)
+* find: SRFI-1. (line 143)
* find-if: Lists as sets. (line 138)
* find-ratio: Rationalize. (line 20)
* find-ratio-between: Rationalize. (line 27)
* find-string-from-port?: String Search. (line 30)
-* find-tail: SRFI-1. (line 146)
+* find-tail: SRFI-1. (line 145)
* first: SRFI-1. (line 53)
-* first-set-bit: Bit-Twiddling. (line 100)
+* first-set-bit: Bit-Twiddling. (line 110)
* fluid-let: Fluid-Let. (line 9)
* fold: SRFI-1. (line 111)
* fold-right: SRFI-1. (line 113)
@@ -17160,17 +17952,17 @@ Procedure and Macro Index
* identifier?: Syntactic Closures. (line 334)
* identity: Miscellany. (line 9)
* ieee-byte-collate: Byte/Number Conversions.
- (line 151)
+ (line 152) |
* ieee-byte-collate!: Byte/Number Conversions.
- (line 142)
+ (line 143) |
* ieee-byte-decollate: Byte/Number Conversions.
- (line 155)
+ (line 156) |
* ieee-byte-decollate!: Byte/Number Conversions.
- (line 147)
+ (line 148) |
* ieee-double->bytes: Byte/Number Conversions.
- (line 97)
+ (line 98) |
* ieee-float->bytes: Byte/Number Conversions.
- (line 79)
+ (line 80) |
* illuminant-map: Spectra. (line 77)
* illuminant-map->XYZ: Spectra. (line 82)
* implementation-vicinity: Vicinity. (line 42)
@@ -17183,21 +17975,20 @@ Procedure and Macro Index
(line 62)
* integer->hilbert-coordinates: Hilbert Space-Filling Curve.
(line 30)
-* integer->list: Bit-Twiddling. (line 215)
+* integer->list: Bit-Twiddling. (line 225)
* integer->peano-coordinates: Peano Space-Filling Curve.
(line 19)
* integer-byte-collate: Byte/Number Conversions.
- (line 136)
+ (line 137) |
* integer-byte-collate!: Byte/Number Conversions.
- (line 130)
-* integer-expt: Irrational Integer Functions. |
- (line 9) |
-* integer-length: Bit-Twiddling. (line 88)
-* integer-log: Irrational Integer Functions. |
+ (line 131) |
+* integer-expt: Irrational Integer Functions.
+ (line 9)
+* integer-length: Bit-Twiddling. (line 98)
+* integer-log: Irrational Integer Functions.
(line 18) |
-* integer-sqrt <1>: Root Finding. (line 9) |
-* integer-sqrt: Irrational Integer Functions. |
- (line 23) |
+* integer-sqrt: Irrational Integer Functions.
+ (line 23)
* interaction-environment: Eval. (line 51)
* interpolate-array-ref: Array Interpolation. (line 9)
* interpolate-from-table: Database Interpolation.
@@ -17222,12 +18013,16 @@ Procedure and Macro Index
(line 25)
* L*u*v*->CIEXYZ: Color Conversions. (line 34)
* l*u*v*->color: Color Spaces. (line 102)
-* laguerre:find-polynomial-root: Root Finding. (line 58)
-* laguerre:find-root: Root Finding. (line 47)
+* laguerre:find-polynomial-root: Root Finding. (line 54)
+* laguerre:find-root: Root Finding. (line 43)
* last <1>: SRFI-1. (line 83)
* last: Lists as sequences. (line 111)
-* last-pair: Miscellany. (line 73)
+* last-pair: Miscellany. (line 64)
* length+: SRFI-1. (line 88)
+* let-values: Binding to multiple values.
+ (line 14) |
+* let-values*: Binding to multiple values.
+ (line 15) |
* library-vicinity: Vicinity. (line 39)
* light:ambient: Solid Modeling. (line 110)
* light:beam: Solid Modeling. (line 144)
@@ -17238,42 +18033,42 @@ Procedure and Macro Index
* list*: List construction. (line 18)
* list->array: Arrays. (line 88)
* list->bytes: Byte. (line 40)
-* list->integer: Bit-Twiddling. (line 221)
+* list->integer: Bit-Twiddling. (line 231)
* list-copy: SRFI-1. (line 24)
-* list-index: SRFI-1. (line 158)
+* list-index: SRFI-1. (line 157)
* list-of??: Lists as sets. (line 120)
* list-table-definition: Using Databases. (line 167)
* list-tabulate: SRFI-1. (line 18)
* list-tail: Rev4 Optional Procedures.
(line 12)
* list=: SRFI-1. (line 48)
-* ln: Irrational Real Functions. |
- (line 77) |
+* ln: Irrational Real Functions.
+ (line 77)
* load->path: Module Manifests. (line 63)
* load-ciexyz: Spectra. (line 37)
* load-color-dictionary: Color Names. (line 52)
* localtime: Posix Time. (line 39)
-* log2-binary-factors: Bit-Twiddling. (line 99)
+* log2-binary-factors: Bit-Twiddling. (line 109)
* logand: Bit-Twiddling. (line 18)
-* logbit?: Bit-Twiddling. (line 134)
+* logbit?: Bit-Twiddling. (line 144)
* logcount: Bit-Twiddling. (line 73)
* logior: Bit-Twiddling. (line 27)
* lognot: Bit-Twiddling. (line 45)
* logtest: Bit-Twiddling. (line 63)
* logxor: Bit-Twiddling. (line 36)
-* lset-adjoin: SRFI-1. (line 197)
-* lset-diff+intersection: SRFI-1. (line 207)
-* lset-diff+intersection!: SRFI-1. (line 222)
-* lset-difference: SRFI-1. (line 203)
-* lset-difference!: SRFI-1. (line 216)
-* lset-intersection: SRFI-1. (line 201)
-* lset-intersection!: SRFI-1. (line 214)
-* lset-union: SRFI-1. (line 199)
-* lset-union!: SRFI-1. (line 218)
-* lset-xor: SRFI-1. (line 205)
-* lset-xor!: SRFI-1. (line 220)
-* lset<=: SRFI-1. (line 191)
-* lset=: SRFI-1. (line 195)
+* lset-adjoin: SRFI-1. (line 196)
+* lset-diff+intersection: SRFI-1. (line 206)
+* lset-diff+intersection!: SRFI-1. (line 221)
+* lset-difference: SRFI-1. (line 202)
+* lset-difference!: SRFI-1. (line 215)
+* lset-intersection: SRFI-1. (line 200)
+* lset-intersection!: SRFI-1. (line 213)
+* lset-union: SRFI-1. (line 198)
+* lset-union!: SRFI-1. (line 217)
+* lset-xor: SRFI-1. (line 204)
+* lset-xor!: SRFI-1. (line 219)
+* lset<=: SRFI-1. (line 190)
+* lset=: SRFI-1. (line 194)
* macro:eval <1>: Syntax-Case Macros. (line 14)
* macro:eval <2>: Syntactic Closures. (line 14)
* macro:eval <3>: Macros That Work. (line 18)
@@ -17298,7 +18093,7 @@ Procedure and Macro Index
* make-command-server: Command Service. (line 7)
* make-directory: Directories. (line 17)
* make-dynamic: Dynamic Data Type. (line 9)
-* make-exchanger: Miscellany. (line 37)
+* make-exchanger: Miscellany. (line 28)
* make-generic-method: Object. (line 57)
* make-generic-predicate: Object. (line 62)
* make-getter on base-table: Base Record Operations.
@@ -17317,8 +18112,8 @@ Procedure and Macro Index
(line 17)
* make-object: Object. (line 46)
* make-parameter-list: Parameter lists. (line 23)
-* make-polar: Irrational Real Functions. |
- (line 94) |
+* make-polar: Irrational Real Functions.
+ (line 94)
* make-predicate!: Object. (line 72)
* make-prever on base-table: Base ISAM Operations.
(line 25)
@@ -17330,8 +18125,8 @@ Procedure and Macro Index
* make-random-state: Exact Random Numbers.
(line 44)
* make-record-type: Records. (line 12)
-* make-rectangular: Irrational Real Functions. |
- (line 93) |
+* make-rectangular: Irrational Real Functions.
+ (line 93)
* make-relational-system: Relational Database Objects.
(line 11)
* make-ruleset: Commutative Rings. (line 82)
@@ -17346,7 +18141,7 @@ Procedure and Macro Index
(line 51)
* make-wt-tree-type: Construction of Weight-Balanced Trees.
(line 19)
-* map!: SRFI-1. (line 122)
+* map!: SRFI-1. (line 121)
* map-elts: Collections. (line 40)
* map-key on base-table: Aggregate Base Operations.
(line 22)
@@ -17355,36 +18150,38 @@ Procedure and Macro Index
* matfile:read: MAT-File Format. (line 19)
* matrix->array: Matrix Algebra. (line 15)
* matrix->lists: Matrix Algebra. (line 12)
-* matrix:inverse: Matrix Algebra. (line 33)
-* matrix:product: Matrix Algebra. (line 30)
+* matrix:difference: Matrix Algebra. (line 33)
+* matrix:inverse: Matrix Algebra. (line 45)
+* matrix:product: Matrix Algebra. (line 36)
+* matrix:sum: Matrix Algebra. (line 30)
* mdbm:report: Using Databases. (line 94)
-* member: SRFI-1. (line 160)
+* member: SRFI-1. (line 159)
* member-if: Lists as sets. (line 62)
-* merge: Sorting. (line 126) |
-* merge!: Sorting. (line 131) |
+* merge: Sorting. (line 62)
+* merge!: Sorting. (line 67)
* mktime: Posix Time. (line 54)
-* mod: Irrational Real Functions. |
- (line 52) |
-* modular:*: Modular Arithmetic. (line 61) |
-* modular:+: Modular Arithmetic. (line 55) |
-* modular:-: Modular Arithmetic. (line 58) |
-* modular:characteristic: Modular Arithmetic. (line 19) |
-* modular:expt: Modular Arithmetic. (line 67) |
-* modular:invert: Modular Arithmetic. (line 48) |
-* modular:invertable?: Modular Arithmetic. (line 44) |
-* modular:negate: Modular Arithmetic. (line 52) |
-* modular:normalize: Modular Arithmetic. (line 23) |
-* mrna<-cdna: NCBI-DNA. (line 15)
+* mod: Irrational Real Functions.
+ (line 52)
+* modular:*: Modular Arithmetic. (line 61)
+* modular:+: Modular Arithmetic. (line 55)
+* modular:-: Modular Arithmetic. (line 58)
+* modular:characteristic: Modular Arithmetic. (line 19)
+* modular:expt: Modular Arithmetic. (line 67)
+* modular:invert: Modular Arithmetic. (line 48)
+* modular:invertable?: Modular Arithmetic. (line 44)
+* modular:negate: Modular Arithmetic. (line 52)
+* modular:normalize: Modular Arithmetic. (line 23)
+* mrna<-cdna: NCBI-DNA. (line 17)
* must-be-first: Batch. (line 128)
* must-be-last: Batch. (line 133)
* natural->peano-coordinates: Peano Space-Filling Curve.
(line 9)
-* ncbi:read-dna-sequence: NCBI-DNA. (line 7)
-* ncbi:read-file: NCBI-DNA. (line 11)
+* ncbi:read-dna-sequence: NCBI-DNA. (line 9)
+* ncbi:read-file: NCBI-DNA. (line 13)
* nconc: Destructive list operations.
(line 10)
-* newton:find-integer-root: Root Finding. (line 13)
-* newton:find-root: Root Finding. (line 30)
+* newton:find-integer-root: Root Finding. (line 9)
+* newton:find-root: Root Finding. (line 26)
* ninth: SRFI-1. (line 65)
* not-pair?: SRFI-1. (line 46)
* notany: Lists as sets. (line 105)
@@ -17408,7 +18205,7 @@ Procedure and Macro Index
* open-database on relational-system: Relational Database Objects.
(line 45)
* open-database!: Using Databases. (line 68)
-* open-file <1>: Byte. (line 67) |
+* open-file <1>: Byte. (line 67)
* open-file: Input/Output. (line 18)
* open-table: Using Databases. (line 107)
* open-table on base-table: Base Tables. (line 16)
@@ -17420,20 +18217,20 @@ Procedure and Macro Index
(line 10)
* os->batch-dialect: Batch. (line 138)
* outline-rect: Rectangles. (line 33)
-* output-port-height: Input/Output. (line 87)
-* output-port-width: Input/Output. (line 81)
+* output-port-height: Input/Output. (line 100)
+* output-port-width: Input/Output. (line 94)
* overcast-sky-color-xyy: Daylight. (line 74)
-* p<-cdna: NCBI-DNA. (line 27)
+* p<-cdna: NCBI-DNA. (line 29)
* pad-range: Column Ranges. (line 13)
* pair-fold: SRFI-1. (line 115)
* pair-fold-right: SRFI-1. (line 117)
-* pair-for-each: SRFI-1. (line 124)
+* pair-for-each: SRFI-1. (line 123)
* parameter-list->arglist: Parameter lists. (line 86)
* parameter-list-expand: Parameter lists. (line 41)
* parameter-list-ref: Parameter lists. (line 26)
* parse-ftp-address: URI. (line 117)
-* partition: SRFI-1. (line 133)
-* partition!: SRFI-1. (line 137)
+* partition: SRFI-1. (line 132)
+* partition!: SRFI-1. (line 136)
* partition-page: Rectangles. (line 16)
* path->uri: URI. (line 95)
* pathname->vicinity: Vicinity. (line 25)
@@ -17502,7 +18299,7 @@ Procedure and Macro Index
* program-vicinity: Vicinity. (line 30)
* project-table on relational-database: Database Operations. (line 76)
* proper-list?: SRFI-1. (line 38)
-* protein<-cdna: NCBI-DNA. (line 23)
+* protein<-cdna: NCBI-DNA. (line 25)
* provide: Feature. (line 58)
* provided?: Feature. (line 30)
* qp: Quick Print. (line 19)
@@ -17514,8 +18311,8 @@ Procedure and Macro Index
* queue-push!: Queues. (line 22)
* queue-rear: Queues. (line 42)
* queue?: Queues. (line 16)
-* quo: Irrational Real Functions. |
- (line 50) |
+* quo: Irrational Real Functions.
+ (line 50)
* random: Exact Random Numbers.
(line 9)
* random:exp: Inexact Random Numbers.
@@ -17531,36 +18328,36 @@ Procedure and Macro Index
* random:uniform: Inexact Random Numbers.
(line 9)
* rationalize: Rationalize. (line 9)
-* read-byte: Byte. (line 79) |
-* read-bytes: Byte. (line 97) |
+* read-byte: Byte. (line 79)
+* read-bytes: Byte. (line 97)
* read-cie-illuminant: Spectra. (line 43)
* read-command: Command Line. (line 9)
* read-line: Line I/O. (line 9)
* read-line!: Line I/O. (line 18)
* read-normalized-illuminant: Spectra. (line 54)
* read-options-file: Command Line. (line 65)
-* real-acos: Irrational Real Functions. |
- (line 20) |
-* real-asin: Irrational Real Functions. |
- (line 19) |
-* real-atan: Irrational Real Functions. |
- (line 21) |
-* real-cos: Irrational Real Functions. |
- (line 17) |
-* real-exp: Irrational Real Functions. |
- (line 13) |
-* real-expt: Irrational Real Functions. |
- (line 37) |
-* real-ln: Irrational Real Functions. |
- (line 14) |
-* real-log: Irrational Real Functions. |
- (line 15) |
-* real-sin: Irrational Real Functions. |
- (line 16) |
-* real-sqrt: Irrational Real Functions. |
- (line 32) |
-* real-tan: Irrational Real Functions. |
- (line 18) |
+* real-acos: Irrational Real Functions.
+ (line 20)
+* real-asin: Irrational Real Functions.
+ (line 19)
+* real-atan: Irrational Real Functions.
+ (line 21)
+* real-cos: Irrational Real Functions.
+ (line 17)
+* real-exp: Irrational Real Functions.
+ (line 13)
+* real-expt: Irrational Real Functions.
+ (line 37)
+* real-ln: Irrational Real Functions.
+ (line 14)
+* real-log: Irrational Real Functions.
+ (line 15)
+* real-sin: Irrational Real Functions.
+ (line 16)
+* real-sqrt: Irrational Real Functions.
+ (line 32)
+* real-tan: Irrational Real Functions.
+ (line 18)
* receive: Binding to multiple values.
(line 9)
* record-accessor: Records. (line 41)
@@ -17571,12 +18368,11 @@ Procedure and Macro Index
* reduce <2>: Lists as sequences. (line 19)
* reduce: Collections. (line 71)
* reduce-init: Lists as sequences. (line 61)
-* reduce-right: SRFI-1. (line 120)
-* rem: Irrational Real Functions. |
- (line 51) |
-* remove <1>: SRFI-1. (line 135)
+* rem: Irrational Real Functions.
+ (line 51)
+* remove <1>: SRFI-1. (line 134)
* remove: Lists as sets. (line 153)
-* remove!: SRFI-1. (line 139)
+* remove!: SRFI-1. (line 138)
* remove-duplicates: Lists as sets. (line 199)
* remove-if: Lists as sets. (line 166)
* remove-if-not: Lists as sets. (line 177)
@@ -17592,10 +18388,10 @@ Procedure and Macro Index
* resene: Color Names. (line 129)
* restrict-table on relational-database: Database Operations. (line 77)
* reverse!: SRFI-1. (line 93)
-* reverse-bit-field: Bit-Twiddling. (line 206)
+* reverse-bit-field: Bit-Twiddling. (line 216)
* RGB709->CIEXYZ: Color Conversions. (line 30)
* rgb709->color: Color Spaces. (line 46)
-* rotate-bit-field: Bit-Twiddling. (line 192)
+* rotate-bit-field: Bit-Twiddling. (line 202)
* row:delete on relational-table: Single Row Operations.
(line 50)
* row:delete* on relational-table: Multi-Row Operations.
@@ -17633,8 +18429,8 @@ Procedure and Macro Index
* scene:viewpoints: Solid Modeling. (line 88)
* scheme-report-environment: Eval. (line 28)
* schmooz: Schmooz. (line 16)
-* secant:find-bracketed-root: Root Finding. (line 71)
-* secant:find-root: Root Finding. (line 70)
+* secant:find-bracketed-root: Root Finding. (line 67)
+* secant:find-root: Root Finding. (line 66)
* second: SRFI-1. (line 55)
* seed->random-state: Exact Random Numbers.
(line 35)
@@ -17646,19 +18442,19 @@ Procedure and Macro Index
* set-linedash: Graphics Context. (line 39)
* set-linewidth: Graphics Context. (line 34)
* set-margin-templates: Legending. (line 27)
-* Setter: Collections. (line 107)
+* Setter: Collections. (line 108)
* setter: Setters. (line 22)
* setup-plot: Column Ranges. (line 22)
* seventh: SRFI-1. (line 63)
-* sft: Discrete Fourier Transform. |
- (line 15) |
-* sft-1: Discrete Fourier Transform. |
- (line 21) |
+* sft: Discrete Fourier Transform.
+ (line 15)
+* sft-1: Discrete Fourier Transform.
+ (line 21)
* si:conversion-factor: Metric Units. (line 160)
* singleton-wt-tree: Construction of Weight-Balanced Trees.
(line 58)
* sixth: SRFI-1. (line 62)
-* size <1>: Collections. (line 104)
+* size <1>: Collections. (line 105)
* size: Yasos interface. (line 41)
* sky-color-xyy: Daylight. (line 85)
* slib:error: System. (line 45)
@@ -17677,38 +18473,38 @@ Procedure and Macro Index
* solar-declination: Daylight. (line 21)
* solar-hour: Daylight. (line 14)
* solar-polar: Daylight. (line 23)
-* solid:arrow: Solid Modeling. (line 413) |
-* solid:basrelief: Solid Modeling. (line 285) |
+* solid:arrow: Solid Modeling. (line 413)
+* solid:basrelief: Solid Modeling. (line 285)
* solid:box: Solid Modeling. (line 206)
-* solid:center-array-of: Solid Modeling. (line 404) |
-* solid:center-pile-of: Solid Modeling. (line 409) |
-* solid:center-row-of: Solid Modeling. (line 400) |
-* solid:color: Solid Modeling. (line 327) |
-* solid:cone: Solid Modeling. (line 235) |
-* solid:cylinder: Solid Modeling. (line 220) |
-* solid:disk: Solid Modeling. (line 228) |
-* solid:ellipsoid: Solid Modeling. (line 253) |
-* solid:font: Solid Modeling. (line 365) |
-* solid:lumber: Solid Modeling. (line 215) |
-* solid:polyline: Solid Modeling. (line 262) |
-* solid:prism: Solid Modeling. (line 276) |
-* solid:pyramid: Solid Modeling. (line 241) |
-* solid:rotation: Solid Modeling. (line 432) |
-* solid:scale: Solid Modeling. (line 428) |
-* solid:sphere: Solid Modeling. (line 247) |
-* solid:text: Solid Modeling. (line 308) |
-* solid:texture: Solid Modeling. (line 344) |
-* solid:translation: Solid Modeling. (line 423) |
+* solid:center-array-of: Solid Modeling. (line 404)
+* solid:center-pile-of: Solid Modeling. (line 409)
+* solid:center-row-of: Solid Modeling. (line 400)
+* solid:color: Solid Modeling. (line 327)
+* solid:cone: Solid Modeling. (line 235)
+* solid:cylinder: Solid Modeling. (line 220)
+* solid:disk: Solid Modeling. (line 228)
+* solid:ellipsoid: Solid Modeling. (line 253)
+* solid:font: Solid Modeling. (line 365)
+* solid:lumber: Solid Modeling. (line 215)
+* solid:polyline: Solid Modeling. (line 262)
+* solid:prism: Solid Modeling. (line 276)
+* solid:pyramid: Solid Modeling. (line 241)
+* solid:rotation: Solid Modeling. (line 432)
+* solid:scale: Solid Modeling. (line 428)
+* solid:sphere: Solid Modeling. (line 247)
+* solid:text: Solid Modeling. (line 308)
+* solid:texture: Solid Modeling. (line 344)
+* solid:translation: Solid Modeling. (line 423)
* solidify-database: Using Databases. (line 86)
* solidify-database on relational-database: Database Operations.
(line 42)
* some: Lists as sets. (line 73)
-* sort: Sorting. (line 138) |
-* sort!: Sorting. (line 148) |
-* sorted?: Sorting. (line 116) |
+* sort: Sorting. (line 72)
+* sort!: Sorting. (line 82)
+* sorted?: Sorting. (line 52)
* soundex: Soundex. (line 9)
-* span: SRFI-1. (line 148)
-* span!: SRFI-1. (line 150)
+* span: SRFI-1. (line 147)
+* span!: SRFI-1. (line 149)
* spectrum->chromaticity: Spectra. (line 111)
* spectrum->XYZ: Spectra. (line 85)
* split-at: SRFI-1. (line 80)
@@ -17719,6 +18515,35 @@ Procedure and Macro Index
* srgb->color: Color Spaces. (line 195)
* sRGB->e-sRGB: Color Conversions. (line 59)
* sRGB->xRGB: Color Conversions. (line 53)
+* ssax:assert-current-char: Parsing XML. (line 52)
+* ssax:assert-token: Parsing XML. (line 630)
+* ssax:complete-start-tag: Parsing XML. (line 517)
+* ssax:handle-parsed-entity: Parsing XML. (line 436)
+* ssax:init-buffer: Parsing XML. (line 64)
+* ssax:make-elem-parser: Parsing XML. (line 667)
+* ssax:make-parser: Parsing XML. (line 714)
+* ssax:make-pi-parser: Parsing XML. (line 647)
+* ssax:next-token: Parsing XML. (line 69)
+* ssax:next-token-of: Parsing XML. (line 83)
+* ssax:read-attributes: Parsing XML. (line 460)
+* ssax:read-cdata-body: Parsing XML. (line 385)
+* ssax:read-char-data: Parsing XML. (line 589)
+* ssax:read-char-ref: Parsing XML. (line 415)
+* ssax:read-external-id: Parsing XML. (line 553)
+* ssax:read-markup-token: Parsing XML. (line 328)
+* ssax:read-ncname: Parsing XML. (line 293)
+* ssax:read-pi-body-as-string: Parsing XML. (line 373)
+* ssax:read-qname: Parsing XML. (line 319)
+* ssax:read-string: Parsing XML. (line 110)
+* ssax:resolve-name: Parsing XML. (line 504)
+* ssax:reverse-collect-str: Parsing XML. (line 18)
+* ssax:reverse-collect-str-drop-ws: Parsing XML. (line 24)
+* ssax:scan-misc: Parsing XML. (line 577)
+* ssax:skip-internal-dtd: Parsing XML. (line 380)
+* ssax:skip-pi: Parsing XML. (line 370)
+* ssax:skip-s: Parsing XML. (line 285)
+* ssax:skip-while: Parsing XML. (line 58)
+* ssax:xml->sxml: Parsing XML. (line 803)
* sscanf: Standard Formatted Input.
(line 15)
* stack: Trace. (line 49)
@@ -17746,16 +18571,16 @@ Procedure and Macro Index
* StudlyCapsExpand: String-Case. (line 29)
* sub-vicinity: Vicinity. (line 73)
* subarray: Subarrays. (line 9)
-* subbytes: Byte. (line 50) |
-* subbytes-read!: Byte. (line 122) |
-* subbytes-write: Byte. (line 131) |
+* subbytes: Byte. (line 50)
+* subbytes-read!: Byte. (line 122)
+* subbytes-write: Byte. (line 131)
* subset?: Lists as sets. (line 52)
* subst: Tree Operations. (line 11)
* substq: Tree Operations. (line 12)
* substring-ci?: String Search. (line 20)
* substring-fill!: Rev2 Procedures. (line 30)
* substring-move-left!: Rev2 Procedures. (line 13)
-* substring-move-right!: Rev2 Procedures. (line 14) |
+* substring-move-right!: Rev2 Procedures. (line 14)
* substring?: String Search. (line 19)
* substv: Tree Operations. (line 13)
* sunlight-chromaticity: Daylight. (line 65)
@@ -17763,7 +18588,7 @@ Procedure and Macro Index
* supported-key-type? on base-table: Base Field Types. (line 13)
* supported-type? on base-table: Base Field Types. (line 7)
* symbol-append: String-Case. (line 23)
-* symmetric:modulus: Modular Arithmetic. (line 13) |
+* symmetric:modulus: Modular Arithmetic. (line 13)
* sync-base on base-table: The Base. (line 53)
* sync-database: Using Databases. (line 82)
* sync-database on relational-database: Database Operations. (line 37)
@@ -17863,8 +18688,8 @@ Procedure and Macro Index
* world:info: Solid Modeling. (line 24)
* wrap-command-interface: Database Extension. (line 7)
* write-base on base-table: The Base. (line 43)
-* write-byte: Byte. (line 72) |
-* write-bytes: Byte. (line 108) |
+* write-byte: Byte. (line 72)
+* write-bytes: Byte. (line 108)
* write-database: Using Databases. (line 79)
* write-database on relational-database: Database Operations. (line 26)
* write-line: Line I/O. (line 29)
@@ -17936,7 +18761,7 @@ Procedure and Macro Index
Variable Index
**************
- |
+
* Menu:
@@ -17982,19 +18807,19 @@ Variable Index
* graph:dimensions: Legacy Plotting. (line 7)
* graphrect: Rectangles. (line 26)
* leftedge: Legending. (line 22)
-* modulo: Irrational Integer Functions. |
- (line 29) |
+* modulo: Irrational Integer Functions.
+ (line 29)
* most-positive-fixnum: Configuration. (line 15)
-* nil: Miscellany. (line 70)
+* nil: Miscellany. (line 61)
* number-wt-type: Construction of Weight-Balanced Trees.
(line 39)
* plotrect: Rectangles. (line 22)
* prime:prngs: Prime Numbers. (line 9)
* prime:trials: Prime Numbers. (line 24)
-* quotient: Irrational Integer Functions. |
- (line 27) |
-* remainder: Irrational Integer Functions. |
- (line 28) |
+* quotient: Irrational Integer Functions.
+ (line 27)
+* remainder: Irrational Integer Functions.
+ (line 28)
* rightedge: Legending. (line 23)
* slib:form-feed: Configuration. (line 29)
* slib:tab: Configuration. (line 26)
@@ -18005,8 +18830,8 @@ Variable Index
* stdout: Standard Formatted I/O.
(line 22)
* string-wt-type: Construction of Weight-Balanced Trees.
- (line 45) |
-* t: Miscellany. (line 67)
+ (line 45)
+* t: Miscellany. (line 58)
* tok:decimal-digits: Token definition. (line 41)
* tok:lower-case: Token definition. (line 48)
* tok:upper-case: Token definition. (line 44)
@@ -18034,19 +18859,21 @@ Concept and Feature Index
* and-let*: Guarded LET* special form.
(line 6)
* ange-ftp: URI. (line 118)
-* appearance: Solid Modeling. (line 334) |
+* appearance: Solid Modeling. (line 334)
* array: Arrays. (line 6)
* array-for-each: Array Mapping. (line 6)
* association function: Association Lists. (line 17)
+* Attribute: Parsing XML. (line 460)
* attribute-value: HTML. (line 10)
+* AttValue: Parsing XML. (line 472)
* Auto-sharing: Using Databases. (line 25)
* balanced binary trees: Weight-Balanced Trees.
(line 8)
* base: URI. (line 39)
* base-table: Base Table. (line 6)
* batch: Batch. (line 6)
-* bignum: Feature. (line 13) |
-* binary: Byte. (line 66) |
+* bignum: Feature. (line 13)
+* binary: Byte. (line 66)
* binary trees: Weight-Balanced Trees.
(line 8)
* binary trees, as discrete maps: Weight-Balanced Trees.
@@ -18085,11 +18912,11 @@ Concept and Feature Index
* commentfix: Rule Types. (line 35)
* common-list-functions <1>: Common List Functions.
(line 6)
-* common-list-functions: Collections. (line 74)
+* common-list-functions: Collections. (line 81)
* commutative-ring: Commutative Rings. (line 11)
* compiled: Library Catalogs. (line 21)
* compiling: Module Conventions. (line 11)
-* complex: Feature. (line 13) |
+* complex: Feature. (line 13)
* Coordinated Universal Time: Posix Time. (line 13)
* copyright: Copyrights. (line 6)
* crc: Cyclic Checksum. (line 6)
@@ -18111,12 +18938,12 @@ Concept and Feature Index
* delim: Rule Types. (line 47)
* dequeues: Queues. (line 10)
* determinant: Matrix Algebra. (line 6)
-* dft, Fourier-transform: Discrete Fourier Transform. |
- (line 6) |
+* dft, Fourier-transform: Discrete Fourier Transform.
+ (line 6)
* diff: Sequence Comparison. (line 6)
* directory: Directories. (line 6)
-* Discrete Fourier Transform: Discrete Fourier Transform. |
- (line 18) |
+* Discrete Fourier Transform: Discrete Fourier Transform.
+ (line 18)
* discrete maps, using binary trees: Weight-Balanced Trees.
(line 52)
* DrScheme: Installation. (line 103)
@@ -18129,16 +18956,17 @@ Concept and Feature Index
* EUC: Extra-SLIB Packages. (line 53)
* Euclidean Domain: Commutative Rings. (line 67)
* eval: Eval. (line 6)
-* exchanger: Miscellany. (line 31)
+* exchanger: Miscellany. (line 22)
* factor: Prime Numbers. (line 6)
-* FDL, GNU Free Documentation License: Copying This Manual. (line 6) |
-* feature <1>: About this manual. (line 18) |
+* FDL, GNU Free Documentation License: Copying This Manual. (line 6)
+* feature <1>: About this manual. (line 18)
* feature <2>: Require. (line 18)
-* feature: Feature. (line 6) |
+* feature: Feature. (line 6)
* File Transfer Protocol: URI. (line 113)
* file-lock: Transactions. (line 32)
* filename: Filenames. (line 6)
* fluid-let: Fluid-Let. (line 6)
+* fold: Parsing XML. (line 400)
* form: HTML. (line 63)
* format: Format. (line 6)
* Gambit-C: Installation. (line 116)
@@ -18174,8 +19002,8 @@ Concept and Feature Index
* ICC Profile: Color Spaces. (line 191)
* implcat: Catalog Vicinities. (line 23)
* indexed-sequential-access-method: Byte/Number Conversions.
- (line 127)
-* inexact: Feature. (line 13) |
+ (line 128) |
+* inexact: Feature. (line 13)
* infix: Rule Types. (line 19)
* Info: Top-level Variable References.
(line 32)
@@ -18195,6 +19023,8 @@ Concept and Feature Index
(line 88)
* Left Denotation, led: Nud and Led Definition.
(line 13)
+* let-values: Binding to multiple values.
+ (line 11) |
* Lightness: Color Spaces. (line 71)
* line-i: Line I/O. (line 6)
* list-processing library: SRFI-1. (line 8)
@@ -18214,10 +19044,10 @@ Concept and Feature Index
* match-keys: Match-Keys. (line 6)
* matchfix: Rule Types. (line 39)
* matfile: MAT-File Format. (line 6)
-* math-integer: Irrational Integer Functions. |
- (line 6) |
-* math-real: Irrational Real Functions. |
- (line 6) |
+* math-integer: Irrational Integer Functions.
+ (line 6)
+* math-real: Irrational Real Functions.
+ (line 6)
* matlab: MAT-File Format. (line 6)
* metric-units: Metric Units. (line 6)
* minimize: Minimizing. (line 6)
@@ -18233,6 +19063,7 @@ Concept and Feature Index
(line 6)
* MzScheme: Installation. (line 104)
* nary: Rule Types. (line 23)
+* ncbi-dma: NCBI-DNA. (line 6)
* new-catalog: Catalog Creation. (line 48)
* nofix: Rule Types. (line 11)
* null: HTML Tables. (line 92)
@@ -18301,10 +19132,10 @@ Concept and Feature Index
* random-inexact: Inexact Random Numbers.
(line 6)
* range: Column Ranges. (line 6)
-* rational: Feature. (line 13) |
+* rational: Feature. (line 13)
* rationalize: Rationalize. (line 6)
* read-command: Command Line. (line 6)
-* real: Feature. (line 13) |
+* real: Feature. (line 13)
* receive: Binding to multiple values.
(line 6)
* record: Records. (line 6)
@@ -18362,22 +19193,29 @@ Concept and Feature Index
* srfi: SRFI. (line 6)
* SRFI-1: SRFI-1. (line 8)
* srfi-1: SRFI-1. (line 6)
-* srfi-2 <1>: SRFI. (line 33) |
+* srfi-11 <1>: SRFI. (line 37)
+* srfi-11: Binding to multiple values.
+ (line 11) |
+* srfi-2 <1>: SRFI. (line 33)
* srfi-2: Guarded LET* special form.
(line 6)
-* srfi-23: SRFI. (line 37) |
-* srfi-47: SRFI. (line 39) |
-* srfi-59: SRFI. (line 43) |
-* srfi-60 <1>: SRFI. (line 45) |
-* srfi-60: Bit-Twiddling. (line 6) |
-* srfi-61 <1>: SRFI. (line 47) |
+* srfi-23: SRFI. (line 39)
+* srfi-28: SRFI. (line 41)
+* srfi-47: SRFI. (line 43)
+* srfi-59: SRFI. (line 45)
+* srfi-60 <1>: SRFI. (line 47)
+* srfi-60: Bit-Twiddling. (line 6)
+* srfi-61 <1>: SRFI. (line 49)
* srfi-61: Guarded COND Clause. (line 6)
-* srfi-63: SRFI. (line 41) |
-* srfi-8 <1>: SRFI. (line 33) |
+* srfi-63: SRFI. (line 51)
+* srfi-8 <1>: SRFI. (line 33)
* srfi-8: Binding to multiple values.
(line 6)
-* srfi-9 <1>: SRFI. (line 35) |
+* srfi-9 <1>: SRFI. (line 35)
* srfi-9: Define-Record-Type. (line 6)
+* srfi-94: SRFI. (line 53)
+* srfi-95 <1>: SRFI. (line 56)
+* srfi-95: Sorting. (line 6)
* sRGB: Color Spaces. (line 189)
* stdio: Standard Formatted I/O.
(line 14)
@@ -18387,7 +19225,7 @@ Concept and Feature Index
* subarray: Subarrays. (line 6)
* sun: Daylight. (line 6)
* sunlight: Daylight. (line 6)
-* symmetric: Modular Arithmetic. (line 38) |
+* symmetric: Modular Arithmetic. (line 38)
* syntactic-closures <1>: Syntactic Closures. (line 6)
* syntactic-closures: Library Catalogs. (line 46)
* syntax tree: Precedence Parsing Overview.
@@ -18443,242 +19281,243 @@ Concept and Feature Index

Tag Table:
-Node: Top1638
-Node: The Library System3412
-Node: Feature4269
-Ref: Feature-Footnote-15275
-Node: Require6848
-Node: Library Catalogs9261
-Node: Catalog Creation10692
-Node: Catalog Vicinities13067
-Node: Compiling Scheme15827
-Node: Module Conventions16477
-Ref: Module Conventions-Footnote-116707
-Node: Module Manifests18148
-Node: Module Semantics23620
-Node: Top-level Variable References25238
-Ref: Top-level Variable References-Footnote-126122
-Node: Module Analysis27638
-Node: Universal SLIB Procedures28743
-Node: Vicinity29358
-Node: Configuration33213
-Node: Input/Output36271
-Node: System39676
-Node: Miscellany42827
-Node: Scheme Syntax Extension Packages44971
-Node: Defmacro45909
-Node: R4RS Macros47885
-Node: Macro by Example49149
-Node: Macros That Work52047
-Node: Syntactic Closures58041
-Node: Syntax-Case Macros75569
-Node: Define-Structure79500
-Node: Define-Record-Type81476
-Node: Fluid-Let82109
-Node: Binding to multiple values83079
-Node: Guarded LET* special form83441
-Node: Guarded COND Clause83793
-Node: Yasos85578
-Node: Yasos terms86390
-Node: Yasos interface87428
-Node: Setters89524
-Node: Yasos examples92183
-Node: Textual Conversion Packages95141
-Node: Precedence Parsing95942
-Node: Precedence Parsing Overview96627
-Ref: Precedence Parsing Overview-Footnote-196693
-Node: Rule Types98343
-Node: Ruleset Definition and Use99798
-Node: Token definition102195
-Node: Nud and Led Definition104803
-Node: Grammar Rule Definition107264
-Node: Format114860
-Node: Format Interface115115
-Node: Format Specification116865
-Node: Standard Formatted I/O127810
-Node: Standard Formatted Output128398
-Node: Standard Formatted Input137856
-Node: Programs and Arguments144533
-Node: Getopt145041
-Node: Command Line151588
-Node: Parameter lists154786
-Node: Getopt Parameter lists158692
-Node: Filenames161933
-Node: Batch165843
-Node: HTML173667
-Node: HTML Tables180109
-Node: HTTP and CGI186641
-Node: Parsing HTML191190
-Node: URI193697
-Node: Printing Scheme198369
-Node: Generic-Write198688
-Node: Object-To-String200104
-Node: Pretty-Print200523
-Node: Time and Date203508
-Node: Time Zone204565
-Node: Posix Time209307
-Node: Common-Lisp Time211475
-Node: Time Infrastructure213101
-Node: NCBI-DNA213452
-Node: Schmooz214800
-Node: Mathematical Packages219036
-Node: Bit-Twiddling219931
-Node: Modular Arithmetic228060
-Node: Irrational Integer Functions230919
-Node: Irrational Real Functions233383
-Node: Prime Numbers242242
-Node: Random Numbers244087
-Node: Exact Random Numbers245069
-Node: Inexact Random Numbers247394
-Node: Discrete Fourier Transform249279
-Node: Cyclic Checksum253463
-Node: Graphing261232
-Node: Character Plotting261494
-Node: PostScript Graphing267061
-Node: Column Ranges268894
-Node: Drawing the Graph270431
-Node: Graphics Context271580
-Node: Rectangles273454
-Node: Legending274962
-Node: Legacy Plotting277350
-Node: Example Graph278418
-Node: Solid Modeling282843
-Node: Color303002
-Node: Color Data-Type303976
-Ref: Color Data-Type-Footnote-1295346
-Node: Color Spaces308705
-Ref: Color Spaces-Footnote-1305347
-Node: Spectra318744
-Node: Color Difference Metrics327639
-Node: Color Conversions330417
-Node: Color Names332671
-Node: Daylight339729
-Node: Root Finding344546
-Node: Minimizing348629
-Ref: Minimizing-Footnote-1336878
-Node: The Limit350735
-Node: Commutative Rings355670
-Node: Matrix Algebra367236
-Node: Database Packages368442
-Node: Relational Database368725
-Node: Using Databases369592
-Node: Table Operations376098
-Node: Single Row Operations377309
-Node: Match-Keys379570
-Node: Multi-Row Operations381649
-Node: Indexed Sequential Access Methods384040
-Node: Sequential Index Operations385048
-Node: Table Administration387404
-Node: Database Interpolation388271
-Node: Embedded Commands389373
-Node: Database Extension390947
-Node: Command Intrinsics393072
-Node: Define-tables Example394634
-Node: The *commands* Table396284
-Node: Command Service398562
-Node: Command Example400524
-Node: Database Macros405077
-Node: Within-database405962
-Node: Within-database Example408869
-Node: Database Browser410656
-Node: Relational Infrastructure411732
-Node: Base Table412036
-Node: The Base414544
-Node: Base Tables417662
-Node: Base Field Types419138
-Node: Composite Keys419921
-Node: Base Record Operations421975
-Node: Match Keys423703
-Node: Aggregate Base Operations424584
-Node: Base ISAM Operations425649
-Node: Catalog Representation426967
-Node: Relational Database Objects429636
-Node: Database Operations432280
-Node: Weight-Balanced Trees435989
-Node: Construction of Weight-Balanced Trees439875
-Node: Basic Operations on Weight-Balanced Trees443341
-Node: Advanced Operations on Weight-Balanced Trees446208
-Node: Indexing Operations on Weight-Balanced Trees452249
-Node: Other Packages456090
-Node: Data Structures456619
-Node: Arrays457460
-Node: Subarrays466147
-Node: Array Mapping468676
-Node: Array Interpolation471086
-Node: Association Lists472350
-Node: Byte474626
-Node: Byte/Number Conversions480872
-Node: MAT-File Format488342
-Node: Portable Image Files489621
-Node: Collections491251
-Node: Dynamic Data Type497383
-Node: Hash Tables498662
-Node: Object501250
-Node: Priority Queues509533
-Node: Queues510388
-Node: Records511633
-Node: Sorting and Searching515143
-Node: Common List Functions515836
-Node: List construction516293
-Node: Lists as sets518008
-Node: Lists as sequences524546
-Node: Destructive list operations529773
-Node: Non-List functions532451
-Node: Tree Operations533540
-Node: Chapter Ordering535233
-Node: Sorting536880
-Node: Topological Sort544651
-Node: Hashing546359
-Node: Space-Filling Curves547376
-Node: Hilbert Space-Filling Curve547680
-Node: Peano Space-Filling Curve551570
-Node: Sierpinski Curve552676
-Node: Soundex555140
-Node: String Search556738
-Node: Sequence Comparison559311
-Node: Procedures562441
-Node: Type Coercion562969
-Node: String-Case563401
-Node: String Ports565228
-Node: Line I/O566000
-Node: Multi-Processing568049
-Node: Metric Units569167
-Node: Standards Support577446
-Node: RnRS578242
-Node: With-File579465
-Node: Transcripts579741
-Node: Rev2 Procedures580075
-Node: Rev4 Optional Procedures581808
-Node: Multi-argument / and -582277
-Node: Multi-argument Apply582687
-Node: Rationalize583024
-Node: Promises584186
-Node: Dynamic-Wind584632
-Node: Eval585900
-Node: Values589245
-Node: SRFI590060
-Node: SRFI-1591550
-Node: Session Support596110
-Node: Repl596684
-Node: Quick Print597980
-Node: Debug599286
-Node: Breakpoints600193
-Node: Trace602235
-Node: System Interface605461
-Node: Directories606032
-Node: Transactions607525
-Node: CVS613036
-Node: Extra-SLIB Packages614203
-Node: About SLIB616512
-Node: Installation617485
-Node: The SLIB script623377
-Node: Porting623840
-Ref: Porting-Footnote-1608048
-Node: Coding Guidelines625404
-Node: Copyrights627818
-Node: About this manual631187
-Node: Copying This Manual632138
-Node: How to use this License for your documents664205
-Node: Index666885
+Node: Top889
+Node: The Library System2001
+Node: Feature2668
+Ref: Feature-Footnote-14767
+Node: Require5277
+Node: Library Catalogs7690
+Node: Catalog Creation9121
+Node: Catalog Vicinities11496
+Node: Compiling Scheme14256
+Node: Module Conventions14906
+Ref: Module Conventions-Footnote-116211
+Node: Module Manifests16577
+Node: Module Semantics22049
+Node: Top-level Variable References23667
+Ref: Top-level Variable References-Footnote-125626
+Node: Module Analysis26067
+Node: Universal SLIB Procedures27172
+Node: Vicinity27787
+Node: Configuration31642
+Node: Input/Output34614
+Node: System39059
+Node: Miscellany42321
+Node: Scheme Syntax Extension Packages44303
+Node: Defmacro45241
+Node: R4RS Macros47217
+Node: Macro by Example48481
+Node: Macros That Work51379
+Node: Syntactic Closures57373
+Node: Syntax-Case Macros74901
+Node: Define-Structure78832
+Node: Define-Record-Type80808
+Node: Fluid-Let81441
+Node: Binding to multiple values82411
+Node: Guarded LET* special form83253
+Node: Guarded COND Clause83605
+Node: Yasos85390
+Node: Yasos terms86202
+Node: Yasos interface87240
+Node: Setters89336
+Node: Yasos examples91995
+Node: Textual Conversion Packages94953
+Node: Precedence Parsing95806
+Node: Precedence Parsing Overview96491
+Ref: Precedence Parsing Overview-Footnote-196872
+Node: Rule Types98121
+Node: Ruleset Definition and Use99576
+Node: Token definition101959
+Node: Nud and Led Definition104567
+Node: Grammar Rule Definition107028
+Node: Format114624
+Node: Format Interface114938
+Node: Format Specification116688
+Node: Standard Formatted I/O127633
+Node: Standard Formatted Output128221
+Node: Standard Formatted Input137679
+Node: Programs and Arguments144356
+Node: Getopt144864
+Node: Command Line151411
+Node: Parameter lists154609
+Node: Getopt Parameter lists158515
+Node: Filenames161756
+Node: Batch165666
+Node: HTML173574
+Node: HTML Tables180016
+Node: HTTP and CGI186548
+Node: Parsing HTML191097
+Node: URI193604
+Node: Parsing XML198351
+Node: Printing Scheme263178
+Node: Generic-Write263643
+Node: Object-To-String265118
+Node: Pretty-Print265593
+Node: Time and Date268638
+Node: Time Zone269756
+Node: Posix Time274561
+Node: Common-Lisp Time276791
+Node: Time Infrastructure278473
+Node: NCBI-DNA278877
+Node: Schmooz280451
+Node: Mathematical Packages284754
+Node: Bit-Twiddling285509
+Node: Modular Arithmetic294513
+Node: Irrational Integer Functions296944
+Node: Irrational Real Functions297973
+Node: Prime Numbers301577
+Node: Random Numbers303281
+Node: Exact Random Numbers304123
+Node: Inexact Random Numbers306395
+Node: Discrete Fourier Transform308229
+Node: Cyclic Checksum310664
+Node: Graphing318294
+Node: Character Plotting318489
+Node: PostScript Graphing324001
+Node: Column Ranges325780
+Node: Drawing the Graph327259
+Node: Graphics Context328354
+Node: Rectangles330173
+Node: Legending331620
+Node: Legacy Plotting333849
+Node: Example Graph334861
+Node: Solid Modeling339228
+Node: Color358737
+Node: Color Data-Type359573
+Ref: Color Data-Type-Footnote-1328920
+Node: Color Spaces363964
+Ref: Color Spaces-Footnote-1338921
+Node: Spectra373883
+Node: Color Difference Metrics382648
+Node: Color Conversions385330
+Node: Color Names387474
+Node: Daylight394410
+Node: Root Finding399099
+Node: Minimizing403058
+Ref: Minimizing-Footnote-1370311
+Node: The Limit405100
+Node: Commutative Rings409970
+Node: Matrix Algebra421381
+Node: Database Packages423487
+Node: Relational Database423770
+Node: Using Databases424637
+Node: Table Operations431143
+Node: Single Row Operations432354
+Node: Match-Keys434601
+Node: Multi-Row Operations436680
+Node: Indexed Sequential Access Methods439071
+Node: Sequential Index Operations440079
+Node: Table Administration442435
+Node: Database Interpolation443302
+Node: Embedded Commands444404
+Node: Database Extension445978
+Node: Command Intrinsics448103
+Node: Define-tables Example449665
+Node: The *commands* Table451315
+Node: Command Service453593
+Node: Command Example455555
+Node: Database Macros460108
+Node: Within-database460993
+Node: Within-database Example463900
+Node: Database Browser465687
+Node: Relational Infrastructure466763
+Node: Base Table467067
+Node: The Base469575
+Node: Base Tables472693
+Node: Base Field Types474169
+Node: Composite Keys474952
+Node: Base Record Operations477006
+Node: Match Keys478734
+Node: Aggregate Base Operations479615
+Node: Base ISAM Operations480680
+Node: Catalog Representation481998
+Node: Relational Database Objects484667
+Node: Database Operations487311
+Node: Weight-Balanced Trees491020
+Node: Construction of Weight-Balanced Trees494906
+Node: Basic Operations on Weight-Balanced Trees498372
+Node: Advanced Operations on Weight-Balanced Trees501239
+Node: Indexing Operations on Weight-Balanced Trees507280
+Node: Other Packages511121
+Node: Data Structures511650
+Node: Arrays512491
+Node: Subarrays523379
+Node: Array Mapping525621
+Node: Array Interpolation528831
+Node: Association Lists530095
+Node: Byte532371
+Node: Byte/Number Conversions537964
+Node: MAT-File Format545535
+Node: Portable Image Files546814
+Node: Collections548444
+Node: Dynamic Data Type554710
+Node: Hash Tables555989
+Node: Object558577
+Node: Priority Queues566860
+Node: Queues567715
+Node: Records568960
+Node: Sorting and Searching572470
+Node: Common List Functions573163
+Node: List construction573620
+Node: Lists as sets575335
+Node: Lists as sequences581873
+Node: Destructive list operations587100
+Node: Non-List functions589778
+Node: Tree Operations590867
+Node: Chapter Ordering592560
+Node: Sorting594207
+Node: Topological Sort598492
+Node: Hashing600200
+Node: Space-Filling Curves601217
+Node: Hilbert Space-Filling Curve601521
+Node: Peano Space-Filling Curve605411
+Node: Sierpinski Curve606517
+Node: Soundex608981
+Node: String Search610579
+Node: Sequence Comparison613152
+Node: Procedures616282
+Node: Type Coercion616810
+Node: String-Case617242
+Node: String Ports619069
+Node: Line I/O619841
+Node: Multi-Processing621890
+Node: Metric Units623008
+Node: Standards Support631287
+Node: RnRS632083
+Node: With-File633306
+Node: Transcripts633582
+Node: Rev2 Procedures633916
+Node: Rev4 Optional Procedures635649
+Node: Multi-argument / and -636118
+Node: Multi-argument Apply636528
+Node: Rationalize636865
+Node: Promises638027
+Node: Dynamic-Wind638473
+Node: Eval639741
+Node: Values643086
+Node: SRFI643901
+Node: SRFI-1645988
+Node: Session Support650546
+Node: Repl651120
+Node: Quick Print652416
+Node: Debug653722
+Node: Breakpoints654629
+Node: Trace656671
+Node: System Interface659897
+Node: Directories660468
+Node: Transactions661961
+Node: CVS667472
+Node: Extra-SLIB Packages668639
+Node: About SLIB670948
+Node: Installation671733
+Node: The SLIB script677640
+Node: Porting678193
+Ref: Porting-Footnote-1639950
+Node: Coding Guidelines679757
+Node: Copyrights682171
+Node: About this manual685540
+Node: Copying This Manual686172
+Node: How to use this License for your documents707206
+Node: Index708724

End Tag Table