diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:06:40 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:06:40 -0800 |
commit | a69c9fb665459e2bfdbda1bf80741a0af31a7faf (patch) | |
tree | f0bc974f8805049e6b9a4e6864886298fbaa05a4 /slib.info | |
parent | 4684239efa63dc1b2c1cbe37ef7d3062029f5532 (diff) | |
download | slib-upstream.tar.gz slib-upstream.zip |
New upstream version 3b5upstream/3b5upstream
Diffstat (limited to 'slib.info')
-rwxr-xr-x[-rw-r--r--] | slib.info | 2890 |
1 files changed, 1610 insertions, 1280 deletions
diff --git a/slib.info b/slib.info index d4c570a..e43aa09 100644..100755 --- a/slib.info +++ b/slib.info @@ -1,14 +1,14 @@ -This is slib.info, produced by makeinfo version 4.8 from slib.texi. +This is slib-3b5.info, produced by makeinfo version 4.13 from slib.texi. | -This manual is for SLIB (version 3b1, February 2008), the portable | -Scheme library. +This manual is for SLIB (version 3b5, January 2015), the portable | +Scheme library. | Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | +2002, 2003, 2004, 2005, 2006, 2007, 2008 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 + Version 1.3 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." @@ -19,20 +19,20 @@ START-INFO-DIR-ENTRY END-INFO-DIR-ENTRY -File: slib.info, Node: Top, Next: The Library System, Prev: (dir), Up: (dir) - +File: slib-3b5.info, Node: Top, Next: The Library System, Prev: (dir), Up: (dir) + | SLIB **** -This manual is for SLIB (version 3b1, February 2008), the portable | -Scheme library. +This manual is for SLIB (version 3b5, January 2015), the portable | +Scheme library. | Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | +2002, 2003, 2004, 2005, 2006, 2007, 2008 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 + Version 1.3 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." @@ -50,8 +50,8 @@ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, * Index:: -File: slib.info, Node: The Library System, Next: Universal SLIB Procedures, Prev: Top, Up: Top - +File: slib-3b5.info, Node: The Library System, Next: Universal SLIB Procedures, Prev: Top, Up: Top + | 1 The Library System ******************** @@ -72,8 +72,8 @@ implementation, user, or directory. * Compiling Scheme:: -File: slib.info, Node: Feature, Next: Require, Prev: The Library System, Up: The Library System - +File: slib-3b5.info, Node: Feature, Next: Require, Prev: The Library System, Up: The Library System + | 1.1 Feature =========== @@ -139,13 +139,14 @@ 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, 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. +gauche, guile, JScheme, kawa, MacScheme, MITScheme, Pocket-Scheme, S7, | +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. | -File: slib.info, Node: Require, Next: Library Catalogs, Prev: Feature, Up: The Library System - +File: slib-3b5.info, Node: Require, Next: Library Catalogs, Prev: Feature, Up: The Library System + | 1.2 Require =========== @@ -157,7 +158,7 @@ files introducing procedures and syntax denoted by those features. will supply those features. The pathname can be either a string or a pair. If pathname is a pair then the first element should be a macro feature symbol, `source', `compiled', or one of the other - cases described in *Note Library Catalogs::. The cdr of the + cases described in *note Library Catalogs::. The cdr of the pathname should be either a string or a list. At the beginning of each section of this manual, there is a line like @@ -203,11 +204,11 @@ The catalog can also be queried using `slib:in-catalog?'. Returns a `CDR' of the catalog entry if one was found for the symbol FEATURE in the alist `*catalog*' (and transitively through any symbol aliases encountered). Otherwise, returns `#f'. The - format of catalog entries is explained in *Note Library Catalogs::. + format of catalog entries is explained in *note Library Catalogs::. -File: slib.info, Node: Library Catalogs, Next: Catalog Creation, Prev: Require, Up: The Library System - +File: slib-3b5.info, Node: Library Catalogs, Next: Catalog Creation, Prev: Require, Up: The Library System + | 1.3 Library Catalogs ==================== @@ -254,8 +255,8 @@ implementation. `macro:load's the Scheme source file <path>. -File: slib.info, Node: Catalog Creation, Next: Catalog Vicinities, Prev: Library Catalogs, Up: The Library System - +File: slib-3b5.info, Node: Catalog Creation, Next: Catalog Vicinities, Prev: Library Catalogs, Up: The Library System + | 1.4 Catalog Creation ==================== @@ -269,7 +270,9 @@ catalog: * additional packages of interest to this site. * packages specifically for the variety of Scheme which this session - is running. + is running. This catalog, if it exists, is the file `implcat' in + `implementation-invicinity', which is created by loading + `mkimpcat.scm' in `implementation-invicinity' if it exists. * packages this user wants to always have available. This catalog is the file `homecat' in the user's "HOME" directory. @@ -313,8 +316,8 @@ to be reloaded the next time the catalog is queried. will be loaded afresh. -File: slib.info, Node: Catalog Vicinities, Next: Compiling Scheme, Prev: Catalog Creation, Up: The Library System - +File: slib-3b5.info, Node: Catalog Vicinities, Next: Compiling Scheme, Prev: Catalog Creation, Up: The Library System + | 1.5 Catalog Vicinities ====================== @@ -391,8 +394,8 @@ registering its catalog associations: `catalog:read'. -File: slib.info, Node: Compiling Scheme, Prev: Catalog Vicinities, Up: The Library System - +File: slib-3b5.info, Node: Compiling Scheme, Prev: Catalog Vicinities, Up: The Library System + | 1.6 Compiling Scheme ==================== @@ -414,8 +417,8 @@ conventions. * Module Analysis:: -File: slib.info, Node: Module Conventions, Next: Module Manifests, Prev: Compiling Scheme, Up: Compiling Scheme - +File: slib-3b5.info, Node: Module Conventions, Next: Module Manifests, Prev: Compiling Scheme, Up: Compiling Scheme + | 1.6.1 Module Conventions ------------------------ @@ -461,8 +464,8 @@ loading modules until they are needed. While this reduces startup latency for interpreters, it can produce headaches for compilers. -File: slib.info, Node: Module Manifests, Next: Module Semantics, Prev: Module Conventions, Up: Compiling Scheme - +File: slib-3b5.info, Node: Module Manifests, Next: Module Semantics, Prev: Module Conventions, Up: Compiling Scheme + | 1.6.2 Module Manifests ---------------------- @@ -593,8 +596,8 @@ lists to report: sprintf printf fprintf stderr stdout stdin) -File: slib.info, Node: Module Semantics, Next: Top-level Variable References, Prev: Module Manifests, Up: Compiling Scheme - +File: slib-3b5.info, Node: Module Semantics, Next: Top-level Variable References, Prev: Module Manifests, Up: Compiling Scheme + | 1.6.3 Module Semantics ---------------------- @@ -627,14 +630,14 @@ using `feature-eval' (*note feature-eval: Feature.). The simplest way to compile these constructs may be to treat `provided?' as a macro. -File: slib.info, Node: Top-level Variable References, Next: Module Analysis, Prev: Module Semantics, Up: Compiling Scheme - +File: slib-3b5.info, Node: Top-level Variable References, Next: Module Analysis, Prev: Module Semantics, Up: Compiling Scheme + | 1.6.4 Top-level Variable References ----------------------------------- `(require 'top-refs)' -These procedures complement those in *Note Module Manifests:: by +These procedures complement those in *note Module Manifests:: by finding the top-level variable references in Scheme source code. They work by traversing expressions and definitions, keeping track of bindings encountered. It is certainly possible to foil these @@ -683,8 +686,8 @@ in the info file. This command excerpts the SLIB index into info -f slib2d6.info -n "Index" -o slib-index.info -File: slib.info, Node: Module Analysis, Prev: Top-level Variable References, Up: Compiling Scheme - +File: slib-3b5.info, Node: Module Analysis, Prev: Top-level Variable References, Up: Compiling Scheme + | 1.6.5 Module Analysis --------------------- @@ -721,8 +724,8 @@ File: slib.info, Node: Module Analysis, Prev: Top-level Variable References, prospective SLIB modules. -File: slib.info, Node: Universal SLIB Procedures, Next: Scheme Syntax Extension Packages, Prev: The Library System, Up: Top - +File: slib-3b5.info, Node: Universal SLIB Procedures, Next: Scheme Syntax Extension Packages, Prev: The Library System, Up: Top + | 2 Universal SLIB Procedures *************************** @@ -738,8 +741,8 @@ implementations as part of the `*.init' files or by `require.scm'. * Miscellany:: -File: slib.info, Node: Vicinity, Next: Configuration, Prev: Universal SLIB Procedures, Up: Universal SLIB Procedures - +File: slib-3b5.info, Node: Vicinity, Next: Configuration, Prev: Universal SLIB Procedures, Up: Universal SLIB Procedures + | 2.1 Vicinity ============ @@ -823,8 +826,8 @@ a vicinity is a string. the value returned by THUNK. -File: slib.info, Node: Configuration, Next: Input/Output, Prev: Vicinity, Up: Universal SLIB Procedures - +File: slib-3b5.info, Node: Configuration, Next: Input/Output, Prev: Vicinity, Up: Universal SLIB Procedures + | 2.2 Configuration ================= @@ -862,7 +865,7 @@ implementations. implementation and the name of the operating system. An unspecified value is returned. - (slib:report-version) => slib "3b1" on scm "5b1" on unix | + (slib:report-version) => slib "3b5" on scm "5b1" on unix | -- Function: slib:report Displays the information of `(slib:report-version)' followed by @@ -873,11 +876,11 @@ implementations. provides a more verbose listing. -- Function: slib:report filename - Writes the report to file `filename'. + Writes the verbose report to file `filename'. (slib:report) => - slib "3b1" on scm "5b1" on unix | + slib "3b5" on scm "5b1" on unix | (implementation-vicinity) is "/usr/local/lib/scm/" (library-vicinity) is "/usr/local/lib/slib/" (scheme-file-suffix) is ".scm" @@ -901,8 +904,8 @@ implementations. ... -File: slib.info, Node: Input/Output, Next: System, Prev: Configuration, Up: Universal SLIB Procedures - +File: slib-3b5.info, Node: Input/Output, Next: System, Prev: Configuration, Up: Universal SLIB Procedures + | 2.3 Input/Output ================ @@ -990,7 +993,7 @@ These procedures are provided by all implementations. -- 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 + successful, `#t' is returned; otherwise `file-position' returns `#f'. -- Function: output-port-width @@ -1006,8 +1009,8 @@ These procedures are provided by all implementations. determined 24 is returned. -File: slib.info, Node: System, Next: Miscellany, Prev: Input/Output, Up: Universal SLIB Procedures - +File: slib-3b5.info, Node: System, Next: Miscellany, Prev: Input/Output, Up: Universal SLIB Procedures + | 2.4 System ========== @@ -1036,7 +1039,7 @@ These procedures are provided by all implementations. -- Procedure: slib:eval obj `eval' returns the value of OBJ evaluated in the current top level - environment. *Note Eval:: provides a more general evaluation + environment. *note Eval:: provides a more general evaluation facility. -- Procedure: slib:eval-load filename eval @@ -1044,7 +1047,8 @@ These procedures are provided by all implementations. the Scheme source code expressions and definitions are read from the file and EVAL called with them sequentially. The `slib:eval-load' procedure does not affect the values returned by - `current-input-port' and `current-output-port'. + `current-input-port', `current-error-port', and + `current-output-port'. -- Procedure: slib:warn arg1 arg2 ... Outputs a warning message containing the arguments. @@ -1078,8 +1082,8 @@ These procedures are provided by all implementations. when the browser exits; otherwise (if no browser) it returns `#f'. -File: slib.info, Node: Miscellany, Prev: System, Up: Universal SLIB Procedures - +File: slib-3b5.info, Node: Miscellany, Prev: System, Up: Universal SLIB Procedures + | 2.5 Miscellany ============== @@ -1149,8 +1153,8 @@ implementations. == (cons 2 '()) -File: slib.info, Node: Scheme Syntax Extension Packages, Next: Textual Conversion Packages, Prev: Universal SLIB Procedures, Up: Top - +File: slib-3b5.info, Node: Scheme Syntax Extension Packages, Next: Textual Conversion Packages, Prev: Universal SLIB Procedures, Up: Top + | 3 Scheme Syntax Extension Packages ********************************** @@ -1169,14 +1173,15 @@ Syntax extensions (macros) included with SLIB. * Define-Structure:: 'structure * Define-Record-Type:: 'define-record-type, 'srfi-9 * Fluid-Let:: 'fluid-let +* Parameter Objects:: 'srfi-39 * Binding to multiple values:: 'receive, 'srfi-8 * Guarded LET* special form:: 'and-let*, 'srfi-2 * Guarded COND Clause:: 'guarded-cond-clause, 'srfi-61 * Yasos:: 'yasos, 'oop, 'collect -File: slib.info, Node: Defmacro, Next: R4RS Macros, Prev: Scheme Syntax Extension Packages, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Defmacro, Next: R4RS Macros, Prev: Scheme Syntax Extension Packages, Up: Scheme Syntax Extension Packages + | 3.1 Defmacro ============ @@ -1197,8 +1202,9 @@ Defmacros are supported by all implementations. the `defmacro:load' procedure reads Scheme source code expressions and definitions from the file and evaluates them sequentially. These source code expressions and definitions may contain defmacro - definitions. The `macro:load' procedure does not affect the values - returned by `current-input-port' and `current-output-port'. + definitions. The `defmacro:load' procedure does not affect the + values returned by `current-input-port', `current-error-port', and + `current-output-port'. -- Function: defmacro? sym Returns `#t' if SYM has been defined by `defmacro', `#f' otherwise. @@ -1229,8 +1235,8 @@ Defmacros are supported by all implementations. E. -File: slib.info, Node: R4RS Macros, Next: Macro by Example, Prev: Defmacro, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: R4RS Macros, Next: Macro by Example, Prev: Defmacro, Up: Scheme Syntax Extension Packages + | 3.2 R4RS Macros =============== @@ -1252,15 +1258,16 @@ interface: -- Procedure: macro:load filename FILENAME should be a string. If filename names an existing file, - the `macro:load' procedure reads Scheme source code expressions and - definitions from the file and evaluates them sequentially. These - source code expressions and definitions may contain macro + the `macro:load' procedure reads Scheme source code expressions + and definitions from the file and evaluates them sequentially. + These source code expressions and definitions may contain macro definitions. The `macro:load' procedure does not affect the - values returned by `current-input-port' and `current-output-port'. + values returned by `current-input-port', `current-error-port', and + `current-output-port'. -File: slib.info, Node: Macro by Example, Next: Macros That Work, Prev: R4RS Macros, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Macro by Example, Next: Macros That Work, Prev: R4RS Macros, Up: Scheme Syntax Extension Packages + | 3.3 Macro by Example ==================== @@ -1293,7 +1300,7 @@ disaster unless you're using system-function names as local variables with unintuitive bindings that the macro can't use. However, if you must have the full `r4rs' macro functionality, look to the more featureful (but also more expensive) versions of syntax-rules available -in slib *Note Macros That Work::, *Note Syntactic Closures::, and *Note +in slib *note Macros That Work::, *note Syntactic Closures::, and *note Syntax-Case Macros::. -- Macro: define-syntax keyword transformer-spec @@ -1334,8 +1341,8 @@ Syntax-Case Macros::. variable or literal identifier. -File: slib.info, Node: Macros That Work, Next: Syntactic Closures, Prev: Macro by Example, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Macros That Work, Next: Syntactic Closures, Prev: Macro by Example, Up: Scheme Syntax Extension Packages + | 3.4 Macros That Work ==================== @@ -1359,11 +1366,12 @@ expression types. -- Procedure: macro:load filename -- Procedure: macwork:load filename FILENAME should be a string. If filename names an existing file, - the `macro:load' procedure reads Scheme source code expressions and - definitions from the file and evaluates them sequentially. These - source code expressions and definitions may contain macro + the `macro:load' procedure reads Scheme source code expressions + and definitions from the file and evaluates them sequentially. + These source code expressions and definitions may contain macro definitions. The `macro:load' procedure does not affect the - values returned by `current-input-port' and `current-output-port'. + values returned by `current-input-port', `current-error-port', and + `current-output-port'. References: @@ -1517,8 +1525,8 @@ variables or inserted identifiers, then the big chunk will be copied unnecessarily. That shouldn't matter very often. -File: slib.info, Node: Syntactic Closures, Next: Syntax-Case Macros, Prev: Macros That Work, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Syntactic Closures, Next: Syntax-Case Macros, Prev: Macros That Work, Up: Scheme Syntax Extension Packages + | 3.5 Syntactic Closures ====================== @@ -1538,11 +1546,12 @@ File: slib.info, Node: Syntactic Closures, Next: Syntax-Case Macros, Prev: Ma -- Procedure: macro:load filename -- Procedure: synclo:load filename FILENAME should be a string. If filename names an existing file, - the `macro:load' procedure reads Scheme source code expressions and - definitions from the file and evaluates them sequentially. These - source code expressions and definitions may contain macro + the `macro:load' procedure reads Scheme source code expressions + and definitions from the file and evaluates them sequentially. + These source code expressions and definitions may contain macro definitions. The `macro:load' procedure does not affect the - values returned by `current-input-port' and `current-output-port'. + values returned by `current-input-port', `current-error-port', and + `current-output-port'. 3.5.1 Syntactic Closure Macro Facility -------------------------------------- @@ -1925,8 +1934,8 @@ Alan Bawden (who prefers to call them "synthetic names"). Much of this proposal is derived from an earlier proposal by Alan Bawden. -File: slib.info, Node: Syntax-Case Macros, Next: Define-Structure, Prev: Syntactic Closures, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Syntax-Case Macros, Next: Define-Structure, Prev: Syntactic Closures, Up: Scheme Syntax Extension Packages + | 3.6 Syntax-Case Macros ====================== @@ -1946,11 +1955,12 @@ File: slib.info, Node: Syntax-Case Macros, Next: Define-Structure, Prev: Synt -- Procedure: macro:load filename -- Procedure: syncase:load filename FILENAME should be a string. If filename names an existing file, - the `macro:load' procedure reads Scheme source code expressions and - definitions from the file and evaluates them sequentially. These - source code expressions and definitions may contain macro + the `macro:load' procedure reads Scheme source code expressions + and definitions from the file and evaluates them sequentially. + These source code expressions and definitions may contain macro definitions. The `macro:load' procedure does not affect the - values returned by `current-input-port' and `current-output-port'. + values returned by `current-input-port', `current-error-port', and + `current-output-port'. This is version 2.1 of `syntax-case', the low-level macro facility proposed and implemented by Robert Hieb and R. Kent Dybvig. @@ -2028,17 +2038,17 @@ if there is some incompatibility that is not flagged as such. (dyb @ iuvax.cs.indiana.edu). -File: slib.info, Node: Define-Structure, Next: Define-Record-Type, Prev: Syntax-Case Macros, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Define-Structure, Next: Define-Record-Type, Prev: Syntax-Case Macros, Up: Scheme Syntax Extension Packages + | 3.7 Define-Structure ==================== `(require 'structure)' Included with the `syntax-case' files was `structure.scm' which defines -a macro `define-structure'. Here is its documentation from Gambit 4.0: +a macro `define-structure'. Here is its documentation from Gambit-4.0: | - -- special form: define-structure NAME FIELD... + -- special form: define-structure (NAME FIELD...) | Record data types similar to Pascal records and C `struct' types can be defined using the `define-structure' special form. The identifier NAME specifies the name of the new data type. The @@ -2067,7 +2077,11 @@ a macro `define-structure'. Here is its documentation from Gambit 4.0: For example: - > (define-structure point x y color) + > (require 'syntax-case) | + > (require 'repl) | + > (repl:top-level macro:eval) | + > (require 'structure) | + > (define-structure (point x y color)) | > (define p (make-point 3 5 'red)) > p #<point #3 x: 3 y: 5 color: red> @@ -2081,8 +2095,8 @@ a macro `define-structure'. Here is its documentation from Gambit 4.0: -File: slib.info, Node: Define-Record-Type, Next: Fluid-Let, Prev: Define-Structure, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Define-Record-Type, Next: Fluid-Let, Prev: Define-Structure, Up: Scheme Syntax Extension Packages + | 3.8 Define-Record-Type ====================== @@ -2100,13 +2114,17 @@ File: slib.info, Node: Define-Record-Type, Next: Fluid-Let, Prev: Define-Stru module. -File: slib.info, Node: Fluid-Let, Next: Binding to multiple values, Prev: Define-Record-Type, Up: Scheme Syntax Extension Packages - +File: slib-3b5.info, Node: Fluid-Let, Next: Parameter Objects, Prev: Define-Record-Type, Up: Scheme Syntax Extension Packages + | 3.9 Fluid-Let ============= `(require 'fluid-let)' + _Note:_ `fluid-let' is not thread-safe. It is better to use *note | + Parameter Objects:: (srfi-39) or *note Dynamic Data Type::, both of | + which will be made thread-safe in the future. | + | -- Syntax: fluid-let `(BINDINGS ...)' FORMS... (fluid-let ((VARIABLE INIT) ...) @@ -2125,9 +2143,19 @@ each INIT to the binding (determined by the rules of lexical scoping) of its corresponding VARIABLE. -File: slib.info, Node: Binding to multiple values, Next: Guarded LET* special form, Prev: Fluid-Let, Up: Scheme Syntax Extension Packages - -3.10 Binding to multiple values +File: slib-3b5.info, Node: Parameter Objects, Next: Binding to multiple values, Prev: Fluid-Let, Up: Scheme Syntax Extension Packages + | +3.10 Parameter Objects | +====================== | + | +`(require 'srfi-39)' | + | + `http://srfi.schemers.org/srfi-39/srfi-39.html' | + | + +File: slib-3b5.info, Node: Binding to multiple values, Next: Guarded LET* special form, Prev: Parameter Objects, Up: Scheme Syntax Extension Packages + | +3.11 Binding to multiple values | =============================== `(require 'receive)' or `(require 'srfi-8)' @@ -2142,9 +2170,9 @@ File: slib.info, Node: Binding to multiple values, Next: Guarded LET* special `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 - -3.11 Guarded LET* special form +File: slib-3b5.info, Node: Guarded LET* special form, Next: Guarded COND Clause, Prev: Binding to multiple values, Up: Scheme Syntax Extension Packages + | +3.12 Guarded LET* special form | ============================== `(require 'and-let*)' or `(require 'srfi-2)' @@ -2153,9 +2181,9 @@ File: slib.info, Node: Guarded LET* special form, Next: Guarded COND Clause, `http://srfi.schemers.org/srfi-2/srfi-2.html' -File: slib.info, Node: Guarded COND Clause, Next: Yasos, Prev: Guarded LET* special form, Up: Scheme Syntax Extension Packages - -3.12 Guarded COND Clause +File: slib-3b5.info, Node: Guarded COND Clause, Next: Yasos, Prev: Guarded LET* special form, Up: Scheme Syntax Extension Packages + | +3.13 Guarded COND Clause | ======================== `(require 'guarded-cond-clause)' or `(require 'srfi-61)' @@ -2203,9 +2231,9 @@ list of all the characters it produces until the end. (call-with-input-string "foo" port->char-list) ==> (#\f #\o #\o) -File: slib.info, Node: Yasos, Prev: Guarded COND Clause, Up: Scheme Syntax Extension Packages - -3.13 Yasos +File: slib-3b5.info, Node: Yasos, Prev: Guarded COND Clause, Up: Scheme Syntax Extension Packages + | +3.14 Yasos | ========== `(require 'oop)' or `(require 'yasos)' @@ -2217,8 +2245,10 @@ on LISP and Functional Programming, July 1988 [ACM #552880]. Another reference is: - Ken Dickey. Scheming with Objects `AI Expert' Volume 7, Number 10 -(October 1992), pp. 24-33. + Ken Dickey. | +Scheming with Objects | +`AI Expert' Volume 7, Number 10 (October 1992), pp. 24-33. | +`ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/swob.txt' | * Menu: @@ -2228,9 +2258,9 @@ on LISP and Functional Programming, July 1988 [ACM #552880]. * Yasos examples:: Usage of Yasos and setters. -File: slib.info, Node: Yasos terms, Next: Yasos interface, Prev: Yasos, Up: Yasos - -3.13.1 Terms +File: slib-3b5.info, Node: Yasos terms, Next: Yasos interface, Prev: Yasos, Up: Yasos + | +3.14.1 Terms | ------------ "Object" @@ -2259,9 +2289,9 @@ _Disclaimer:_ reasonable). See the L&FP paper for some suggestions. -File: slib.info, Node: Yasos interface, Next: Setters, Prev: Yasos terms, Up: Yasos - -3.13.2 Interface +File: slib-3b5.info, Node: Yasos interface, Next: Setters, Prev: Yasos terms, Up: Yasos + | +3.14.2 Interface | ---------------- -- Syntax: define-operation `('opname self arg ...`)' DEFAULT-BODY @@ -2276,7 +2306,7 @@ File: slib.info, Node: Yasos interface, Next: Setters, Prev: Yasos terms, Up -- Syntax: object `((NAME SELF ARG ...) BODY)' ... Returns an object (an instance of the object system) with - operations. Invoking `(NAME OBJECT ARG ...' executes the BODY of + operations. Invoking `(NAME OBJECT ARG ...)' executes the BODY of | the OBJECT with SELF bound to OBJECT and with argument(s) ARG.... -- Syntax: object-with-ancestors `(('ancestor1 init1`)' ...`)' @@ -2305,9 +2335,9 @@ File: slib.info, Node: Yasos interface, Next: Setters, Prev: Yasos terms, Up (*note Collections::) may override the default in an obvious way. -File: slib.info, Node: Setters, Next: Yasos examples, Prev: Yasos interface, Up: Yasos - -3.13.3 Setters +File: slib-3b5.info, Node: Setters, Next: Yasos examples, Prev: Yasos interface, Up: Yasos + | +3.14.3 Setters | -------------- "Setters" implement "generalized locations" for objects associated with @@ -2363,9 +2393,9 @@ through `setf'. return value is unspecified. -File: slib.info, Node: Yasos examples, Prev: Setters, Up: Yasos - -3.13.4 Examples +File: slib-3b5.info, Node: Yasos examples, Prev: Setters, Up: Yasos + | +3.14.4 Examples | --------------- ;;; These definitions for PRINT and SIZE are @@ -2463,8 +2493,8 @@ File: slib.info, Node: Yasos examples, Prev: Setters, Up: Yasos => 2 -File: slib.info, Node: Textual Conversion Packages, Next: Mathematical Packages, Prev: Scheme Syntax Extension Packages, Up: Top - +File: slib-3b5.info, Node: Textual Conversion Packages, Next: Mathematical Packages, Prev: Scheme Syntax Extension Packages, Up: Top + | 4 Textual Conversion Packages ***************************** @@ -2486,8 +2516,8 @@ File: slib.info, Node: Textual Conversion Packages, Next: Mathematical Package * Schmooz:: Documentation markup for Scheme programs -File: slib.info, Node: Precedence Parsing, Next: Format, Prev: Textual Conversion Packages, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Precedence Parsing, Next: Format, Prev: Textual Conversion Packages, Up: Textual Conversion Packages + | 4.1 Precedence Parsing ====================== @@ -2514,8 +2544,8 @@ This package implements: * Grammar Rule Definition:: -File: slib.info, Node: Precedence Parsing Overview, Next: Rule Types, Prev: Precedence Parsing, Up: Precedence Parsing - +File: slib-3b5.info, Node: Precedence Parsing Overview, Next: Rule Types, Prev: Precedence Parsing, Up: Precedence Parsing + | 4.1.1 Precedence Parsing Overview --------------------------------- @@ -2549,7 +2579,7 @@ 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. +(`http://people.csail.mit.edu/jaffer/JACAL') uses precedence-parse. Its grammar definitions in the file `jacal/English.scm' can serve as examples of use. @@ -2559,13 +2589,13 @@ examples of use. file) with a non-trivial grammar utilizing all constructs. -File: slib.info, Node: Rule Types, Next: Ruleset Definition and Use, Prev: Precedence Parsing Overview, Up: Precedence Parsing - +File: slib-3b5.info, Node: Rule Types, Next: Ruleset Definition and Use, Prev: Precedence Parsing Overview, Up: Precedence Parsing + | 4.1.2 Rule Types ---------------- Here are the higher-level syntax types and an example of each. -Precedence considerations are omitted for clarity. See *Note Grammar +Precedence considerations are omitted for clarity. See *note Grammar Rule Definition:: for full details. -- Grammar: nofix bye exit @@ -2609,8 +2639,8 @@ Rule Definition:: for full details. delimits the extent of the restfix operator `set'. -File: slib.info, Node: Ruleset Definition and Use, Next: Token definition, Prev: Rule Types, Up: Precedence Parsing - +File: slib-3b5.info, Node: Ruleset Definition and Use, Next: Token definition, Prev: Rule Types, Up: Precedence Parsing + | 4.1.3 Ruleset Definition and Use -------------------------------- @@ -2640,8 +2670,8 @@ variable (for use when calling `prec:parse'). (define my-ruleset *syn-defs*) - -- Function: prec:parse ruleset delim - -- Function: prec:parse ruleset delim port + -- Function: prec:parse ruleset delim column + -- Function: prec:parse ruleset delim column port The RULESET argument must be a list of rules as constructed by `prec:define-grammar' and extracted from *SYN-DEFS*. @@ -2657,6 +2687,10 @@ variable (for use when calling `prec:parse'). first character past the end of the external representation of the object. + For the purpose of reporting problems in error messages, this + package keeps track of the "current column". Its initial value is + passed as the third argument to `prec:parse'. + If an end of file is encountered in the input before any characters are found that can begin an object, then an end of file object is returned. If a delimiter (such as DELIM) is found @@ -2668,8 +2702,8 @@ variable (for use when calling `prec:parse'). from a closed port. -File: slib.info, Node: Token definition, Next: Nud and Led Definition, Prev: Ruleset Definition and Use, Up: Precedence Parsing - +File: slib-3b5.info, Node: Token definition, Next: Nud and Led Definition, Prev: Ruleset Definition and Use, Up: Precedence Parsing + | 4.1.4 Token definition ---------------------- @@ -2722,17 +2756,9 @@ The following convenient constants are provided for use with Is the string consisting of all characters between 0 and 255 for which `char-whitespace?' returns true. -For the purpose of reporting problems in error messages, this package -keeps track of the "current column". When the column does not simply -track input characters, `tok:bump-column' can be used to adjust the -current-column. - - -- Function: tok:bump-column pos port - Adds POS to the current-column for input-port PORT. - -File: slib.info, Node: Nud and Led Definition, Next: Grammar Rule Definition, Prev: Token definition, Up: Precedence Parsing - +File: slib-3b5.info, Node: Nud and Led Definition, Next: Grammar Rule Definition, Prev: Token definition, Up: Precedence Parsing + | 4.1.5 Nud and Led Definition ---------------------------- @@ -2789,13 +2815,13 @@ If no LED has been defined for a token, and LEFT is set, the parser issues a warning. -File: slib.info, Node: Grammar Rule Definition, Prev: Nud and Led Definition, Up: Precedence Parsing - +File: slib-3b5.info, Node: Grammar Rule Definition, Prev: Nud and Led Definition, Up: Precedence Parsing + | 4.1.6 Grammar Rule Definition ----------------------------- Here are procedures for defining rules for the syntax types introduced -in *Note Precedence Parsing Overview::. +in *note Precedence Parsing Overview::. For the rule-defining procedures that follow, the variable TK may be a character, string, or symbol, or a list composed of characters, @@ -2961,8 +2987,8 @@ will both match token strings; i.e. tokens resulting from token groups. ... are forgotten. -File: slib.info, Node: Format, Next: Standard Formatted I/O, Prev: Precedence Parsing, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Format, Next: Standard Formatted I/O, Prev: Precedence Parsing, Up: Textual Conversion Packages + | 4.2 Format (version 3.1) ======================== @@ -2974,8 +3000,8 @@ File: slib.info, Node: Format, Next: Standard Formatted I/O, Prev: Precedence * Format Specification:: -File: slib.info, Node: Format Interface, Next: Format Specification, Prev: Format, Up: Format - +File: slib-3b5.info, Node: Format Interface, Next: Format Specification, Prev: Format, Up: Format + | 4.2.1 Format Interface ---------------------- @@ -3003,15 +3029,11 @@ File: slib.info, Node: Format Interface, Next: Format Specification, Prev: Fo tilde (~). For a detailed description of the FORMAT-STRING syntax please consult a Common LISP format reference manual. For a test suite to verify this format implementation load `formatst.scm'. - Please send bug reports to `lutzeb@cs.tu-berlin.de'. - - Note: `format' is not reentrant, i.e. only one `format'-call may - be executed at a time. -File: slib.info, Node: Format Specification, Prev: Format Interface, Up: Format - +File: slib-3b5.info, Node: Format Specification, Prev: Format Interface, Up: Format + | 4.2.2 Format Specification (Format version 3.1) ----------------------------------------------- @@ -3438,8 +3460,8 @@ Scheme->C 01nov91: because it requires other components provided by SLIB. -File: slib.info, Node: Standard Formatted I/O, Next: Programs and Arguments, Prev: Format, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Standard Formatted I/O, Next: Programs and Arguments, Prev: Format, Up: Textual Conversion Packages + | 4.3 Standard Formatted I/O ========================== @@ -3465,8 +3487,8 @@ File: slib.info, Node: Standard Formatted I/O, Next: Programs and Arguments, Defined to be `(current-error-port)'. -File: slib.info, Node: Standard Formatted Output, Next: Standard Formatted Input, Prev: Standard Formatted I/O, Up: Standard Formatted I/O - +File: slib-3b5.info, Node: Standard Formatted Output, Next: Standard Formatted Input, Prev: Standard Formatted I/O, Up: Standard Formatted I/O + | 4.3.2 Standard Formatted Output ------------------------------- @@ -3577,8 +3599,8 @@ File: slib.info, Node: Standard Formatted Output, Next: Standard Formatted Inp For the `%f', `%e', and `%E' conversions, the precision specifies how many digits follow the decimal-point character. - The default precision is `6'. If the precision is - explicitly `0', the decimal point character is suppressed. + The default precision is `6'. If the precision is explicitly + `0', the decimal point character is suppressed. For the `%g' and `%G' conversions, the precision specifies how many significant digits to print. Significant digits are the @@ -3602,8 +3624,7 @@ File: slib.info, Node: Standard Formatted Output, Next: Standard Formatted Inp * A character that specifies the conversion to be applied. -4.3.2.1 Exact Conversions -......................... + Exact Conversions | `b', `B' Print an integer as an unsigned binary number. @@ -3626,8 +3647,7 @@ File: slib.info, Node: Standard Formatted Output, Next: Standard Formatted Inp prints using the digits `0123456789abcdef'. `%X' prints using the digits `0123456789ABCDEF'. -4.3.2.2 Inexact Conversions -........................... + Inexact Conversions | `f' Print a floating-point number in fixed-point notation. @@ -3651,8 +3671,7 @@ File: slib.info, Node: Standard Formatted Output, Next: Standard Formatted Inp dot between number and prefix, `%k' does not. -4.3.2.3 Other Conversions -......................... + Other Conversions | `c' Print a single character. The `-' flag is the only one which @@ -3680,8 +3699,8 @@ File: slib.info, Node: Standard Formatted Output, Next: Standard Formatted Inp modifiers with `%%'. -File: slib.info, Node: Standard Formatted Input, Prev: Standard Formatted Output, Up: Standard Formatted I/O - +File: slib-3b5.info, Node: Standard Formatted Input, Prev: Standard Formatted Output, Up: Standard Formatted I/O + | 4.3.3 Standard Formatted Input ------------------------------ @@ -3839,8 +3858,8 @@ File: slib.info, Node: Standard Formatted Input, Prev: Standard Formatted Outp offending character is left unread in the input stream. -File: slib.info, Node: Programs and Arguments, Next: HTML, Prev: Standard Formatted I/O, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Programs and Arguments, Next: HTML, Prev: Standard Formatted I/O, Up: Textual Conversion Packages + | 4.4 Program and Arguments ========================= @@ -3854,8 +3873,8 @@ File: slib.info, Node: Programs and Arguments, Next: HTML, Prev: Standard For * Batch:: 'batch -File: slib.info, Node: Getopt, Next: Command Line, Prev: Programs and Arguments, Up: Programs and Arguments - +File: slib-3b5.info, Node: Getopt, Next: Command Line, Prev: Programs and Arguments, Up: Programs and Arguments + | 4.4.1 Getopt ------------ @@ -3952,9 +3971,9 @@ replaced them with a global variable: Example: #! /usr/local/bin/scm - (require 'program-arguments) | + (require 'program-arguments) (require 'getopt) - (define argv (program-arguments)) | + (define argv (program-arguments)) (define opts ":a:b:cd") (let loop ((opt (getopt (length argv) argv opts))) @@ -4011,8 +4030,8 @@ replaced them with a global variable: 5 #f "35234.342" -File: slib.info, Node: Command Line, Next: Parameter lists, Prev: Getopt, Up: Programs and Arguments - +File: slib-3b5.info, Node: Command Line, Next: Parameter lists, Prev: Getopt, Up: Programs and Arguments + | 4.4.3 Command Line ------------------ @@ -4085,8 +4104,8 @@ File: slib.info, Node: Command Line, Next: Parameter lists, Prev: Getopt, Up returned. -File: slib.info, Node: Parameter lists, Next: Getopt Parameter lists, Prev: Command Line, Up: Programs and Arguments - +File: slib-3b5.info, Node: Parameter lists, Next: Getopt Parameter lists, Prev: Command Line, Up: Programs and Arguments + | 4.4.4 Parameter lists --------------------- @@ -4181,8 +4200,8 @@ of `arities' can be: argument position the corresponding parameter should appear. -File: slib.info, Node: Getopt Parameter lists, Next: Filenames, Prev: Parameter lists, Up: Programs and Arguments - +File: slib-3b5.info, Node: Getopt Parameter lists, Next: Filenames, Prev: Parameter lists, Up: Programs and Arguments + | 4.4.5 Getopt Parameter lists ---------------------------- @@ -4267,12 +4286,12 @@ the options (and argument strings DESC ...) are printed to ERROR: getopt->parameter-list "unrecognized option" "-?" -File: slib.info, Node: Filenames, Next: Batch, Prev: Getopt Parameter lists, Up: Programs and Arguments - +File: slib-3b5.info, Node: Filenames, Next: Batch, Prev: Getopt Parameter lists, Up: Programs and Arguments + | 4.4.6 Filenames --------------- -`(require 'filename)' | +`(require 'filename)' -- Function: filename:match?? pattern -- Function: filename:match-ci?? pattern @@ -4347,6 +4366,7 @@ File: slib.info, Node: Filenames, Next: Batch, Prev: Getopt Parameter lists, yielded by the PROC is(are) returned. K may be ommited, in which case it defaults to `1'. + -- Function: call-with-tmpnam proc suffix1 ... Calls PROC with strings returned by successive calls to `tmpnam', each with the corresponding SUFFIX string appended. If PROC @@ -4355,8 +4375,8 @@ File: slib.info, Node: Filenames, Next: Batch, Prev: Getopt Parameter lists, returned. -File: slib.info, Node: Batch, Prev: Filenames, Up: Programs and Arguments - +File: slib-3b5.info, Node: Batch, Prev: Filenames, Up: Programs and Arguments + | 4.4.7 Batch ----------- @@ -4501,7 +4521,7 @@ Here is an example of the use of most of batch's procedures: (require 'databases) (require 'parameters) (require 'batch) - (require 'filename) | + (require 'filename) (define batch (create-database #f 'alist-table)) (batch:initialize! batch) @@ -4565,8 +4585,8 @@ When run, `my-batch' prints: hello world -File: slib.info, Node: HTML, Next: HTML Tables, Prev: Programs and Arguments, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: HTML, Next: HTML Tables, Prev: Programs and Arguments, Up: Textual Conversion Packages + | 4.5 HTML ======== @@ -4745,8 +4765,8 @@ File: slib.info, Node: HTML, Next: HTML Tables, Prev: Programs and Arguments, port))) -File: slib.info, Node: HTML Tables, Next: HTTP and CGI, Prev: HTML, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: HTML Tables, Next: HTTP and CGI, Prev: HTML, Up: Textual Conversion Packages + | 4.7 HTML Tables =============== @@ -4908,8 +4928,8 @@ performed. created. -File: slib.info, Node: HTTP and CGI, Next: Parsing HTML, Prev: HTML Tables, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: HTTP and CGI, Next: Parsing HTML, Prev: HTML Tables, Up: Textual Conversion Packages + | 4.8 HTTP and CGI ================ @@ -4950,9 +4970,12 @@ File: slib.info, Node: HTTP and CGI, Next: Parsing HTML, Prev: HTML Tables, with the REQUEST-LINE, #f, and HEADER-ALIST. If SERVE-PROC returns a string, it is sent to OUTPUT-PORT. If - SERVE-PROC returns a list, then an error page with number 525 and - strings from the list. If SERVE-PROC returns #f, then a `Bad - Request' (400) page is sent to OUTPUT-PORT. + SERVE-PROC returns a list whose first element is an integer, then | + an error page with the status integer which is the first element | + of the list and strings from the list. If SERVE-PROC returns a | + list whose first element isn't an number, then an error page with | + the status code 500 and strings from the list. If SERVE-PROC | + returns #f, then a `Bad Request' (400) page is sent to OUTPUT-PORT. | Otherwise, `http:serve-query' replies (to OUTPUT-PORT) with appropriate HTML describing the problem. @@ -4984,12 +5007,15 @@ File: slib.info, Node: HTTP and CGI, Next: Parsing HTML, Prev: HTML Tables, HEADER-ALIST. If SERVE-PROC returns a string, it is sent to - `(current-input-port)'. If SERVE-PROC returns a list, then an - error page with number 525 and strings from the list. If - SERVE-PROC returns #f, then a `Bad Request' (400) page is sent to - `(current-input-port)'. - - Otherwise, `cgi:serve-query' replies (to `(current-input-port)') + `(current-ouput-port)'. If SERVE-PROC returns a list whose first | + element is an integer, then an error page with the status integer | + which is the first element of the list and strings from the list. | + If SERVE-PROC returns a list whose first element isn't an number, | + then an error page with the status code 500 and strings from the | + list. If SERVE-PROC returns #f, then a `Bad Request' (400) page | + is sent to `(current-ouput-port)'. | + + Otherwise, `cgi:serve-query' replies (to `(current-output-port)') | with appropriate HTML describing the problem. -- Function: make-query-alist-command-server rdb command-table @@ -5007,8 +5033,8 @@ File: slib.info, Node: HTTP and CGI, Next: Parsing HTML, Prev: HTML Tables, arguments described in its table. -File: slib.info, Node: Parsing HTML, Next: URI, Prev: HTTP and CGI, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Parsing HTML, Next: URI, Prev: HTTP and CGI, Up: Textual Conversion Packages + | 4.9 Parsing HTML ================ @@ -5066,16 +5092,17 @@ File: slib.info, Node: Parsing HTML, Next: URI, Prev: HTTP and CGI, Up: Text -- Function: htm-fields htm HTM is a hypertext markup string. - If HTM is a (hypertext) comment, then `htm-fields' returns #f. - Otherwise `htm-fields' returns the hypertext element symbol - (created by `string-ci->symbol') consed onto an association list - of the attribute name-symbols and values. Each value is a number - or string; or #t if the name had no value assigned within the - markup. + If HTM is a (hypertext) comment or DTD, then `htm-fields' returns + #f. Otherwise `htm-fields' returns the hypertext element string + consed onto an association list of the attribute name-symbols and + values. If the tag ends with "/>", then "/" is appended to the + hypertext element string. The name-symbols are created by + `string-ci->symbol'. Each value is a string; or #t if the name + had no value assigned within the markup. -File: slib.info, Node: URI, Next: Parsing XML, Prev: Parsing HTML, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: URI, Next: Parsing XML, Prev: Parsing HTML, Up: Textual Conversion Packages + | 4.10 URI ======== @@ -5204,8 +5231,8 @@ purpose. 3. remote-directory -File: slib.info, Node: Parsing XML, Next: Printing Scheme, Prev: URI, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Parsing XML, Next: Printing Scheme, Prev: URI, Up: Textual Conversion Packages + | 4.11 Parsing XML ================ @@ -5291,6 +5318,7 @@ implements an inclusion rather than delimiting semantics. 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 @@ -6015,8 +6043,8 @@ a SAX or a DOM model. first character after the root element. -File: slib.info, Node: Printing Scheme, Next: Time and Date, Prev: Parsing XML, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Printing Scheme, Next: Time and Date, Prev: Parsing XML, Up: Textual Conversion Packages + | 4.12 Printing Scheme ==================== @@ -6027,8 +6055,8 @@ File: slib.info, Node: Printing Scheme, Next: Time and Date, Prev: Parsing XM * Pretty-Print:: 'pretty-print, 'pprint-file -File: slib.info, Node: Generic-Write, Next: Object-To-String, Prev: Printing Scheme, Up: Printing Scheme - +File: slib-3b5.info, Node: Generic-Write, Next: Object-To-String, Prev: Printing Scheme, Up: Printing Scheme + | 4.12.1 Generic-Write -------------------- @@ -6070,8 +6098,8 @@ printing, output to a string and truncated output. (lambda (s) (for-each write-char (string->list s)) #t) -File: slib.info, Node: Object-To-String, Next: Pretty-Print, Prev: Generic-Write, Up: Printing Scheme - +File: slib-3b5.info, Node: Object-To-String, Next: Pretty-Print, Prev: Generic-Write, Up: Printing Scheme + | 4.12.2 Object-To-String ----------------------- @@ -6085,8 +6113,8 @@ File: slib.info, Node: Object-To-String, Next: Pretty-Print, Prev: Generic-Wr most LIMIT. -File: slib.info, Node: Pretty-Print, Prev: Object-To-String, Up: Printing Scheme - +File: slib-3b5.info, Node: Pretty-Print, Prev: Object-To-String, Up: Printing Scheme + | 4.12.3 Pretty-Print ------------------- @@ -6164,8 +6192,8 @@ File: slib.info, Node: Pretty-Print, Prev: Object-To-String, Up: Printing Sch Whitepsace and comments (introduced by `;') which are not part of scheme expressions are reproduced in the output. This procedure - does not affect the values returned by `current-input-port' and - `current-output-port'. + does not affect the values returned by `current-input-port', + `current-error-port', and `current-output-port'. `pprint-filter-file' can be used to pre-compile macro-expansion and thus can reduce loading time. The following will write into @@ -6176,8 +6204,8 @@ thus can reduce loading time. The following will write into (pprint-filter-file "code.scm" defmacro:expand* "exp-code.scm") -File: slib.info, Node: Time and Date, Next: NCBI-DNA, Prev: Printing Scheme, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Time and Date, Next: NCBI-DNA, Prev: Printing Scheme, Up: Textual Conversion Packages + | 4.13 Time and Date ================== @@ -6197,7 +6225,7 @@ Scheme datatypes. -- Function: current-time Returns the time since 00:00:00 GMT, January 1, 1970, measured in seconds. Note that the reference time is different from the - reference time for `get-universal-time' in *Note Common-Lisp + reference time for `get-universal-time' in *note Common-Lisp Time::. -- Function: difftime caltime1 caltime0 @@ -6209,8 +6237,8 @@ Scheme datatypes. seconds `(+ caltime offset)'. -File: slib.info, Node: Time Zone, Next: Posix Time, Prev: Time and Date, Up: Time and Date - +File: slib-3b5.info, Node: Time Zone, Next: Posix Time, Prev: Time and Date, Up: Time and Date + | 4.13.1 Time Zone ---------------- @@ -6336,8 +6364,8 @@ compatability. Because of shared state they are not thread-safe. for the Daylight Savings timezone. -File: slib.info, Node: Posix Time, Next: Common-Lisp Time, Prev: Time Zone, Up: Time and Date - +File: slib-3b5.info, Node: Posix Time, Next: Common-Lisp Time, Prev: Time Zone, Up: Time and Date + | 4.13.2 Posix Time ----------------- @@ -6408,8 +6436,8 @@ File: slib.info, Node: Posix Time, Next: Common-Lisp Time, Prev: Time Zone, CALTIME))', and `(asctime (localtime CALTIME TZ))', respectively. -File: slib.info, Node: Common-Lisp Time, Next: Time Infrastructure, Prev: Posix Time, Up: Time and Date - +File: slib-3b5.info, Node: Common-Lisp Time, Next: Time Infrastructure, Prev: Posix Time, Up: Time and Date + | 4.13.3 Common-Lisp Time ----------------------- @@ -6458,8 +6486,8 @@ File: slib.info, Node: Common-Lisp Time, Next: Time Infrastructure, Prev: Pos match the arguments to `encode-universal-time'. -File: slib.info, Node: Time Infrastructure, Prev: Common-Lisp Time, Up: Time and Date - +File: slib-3b5.info, Node: Time Infrastructure, Prev: Common-Lisp Time, Up: Time and Date + | 4.13.4 Time Infrastructure -------------------------- @@ -6474,8 +6502,8 @@ File: slib.info, Node: Time Infrastructure, Prev: Common-Lisp Time, Up: Time -- Function: tzfile:read path -File: slib.info, Node: NCBI-DNA, Next: Schmooz, Prev: Time and Date, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: NCBI-DNA, Next: Schmooz, Prev: Time and Date, Up: Textual Conversion Packages + | 4.14 NCBI-DNA ============= @@ -6517,8 +6545,8 @@ sequence with the `BASE COUNT' line preceding the sequence from NCBI. Prints the counts of `a', `c', `g', and `t' occurrencing in CDNA. -File: slib.info, Node: Schmooz, Prev: NCBI-DNA, Up: Textual Conversion Packages - +File: slib-3b5.info, Node: Schmooz, Prev: NCBI-DNA, Up: Textual Conversion Packages + | 4.15 Schmooz ============ @@ -6616,8 +6644,8 @@ expansion. This feature is intended to make it easy to include Texinfo directives in schmooz comments. -File: slib.info, Node: Mathematical Packages, Next: Database Packages, Prev: Textual Conversion Packages, Up: Top - +File: slib-3b5.info, Node: Mathematical Packages, Next: Database Packages, Prev: Textual Conversion Packages, Up: Top + | 5 Mathematical Packages *********************** @@ -6641,8 +6669,8 @@ File: slib.info, Node: Mathematical Packages, Next: Database Packages, Prev: * Matrix Algebra:: 'determinant -File: slib.info, Node: Bit-Twiddling, Next: Modular Arithmetic, Prev: Mathematical Packages, Up: Mathematical Packages - +File: slib-3b5.info, Node: Bit-Twiddling, Next: Modular Arithmetic, Prev: Mathematical Packages, Up: Mathematical Packages + | 5.1 Bit-Twiddling ================= @@ -6867,23 +6895,22 @@ Alan Bawden came up with the succinct invariant. -- Function: integer->list k len -- Function: integer->list k `integer->list' returns a list of LEN booleans corresponding to - each bit of the given integer. #t is coded for each 1; #f for 0. - The LEN argument defaults to `(integer-length K)'. + each bit of the non-negative integer K. #t is coded for each 1; | + #f for 0. The LEN argument defaults to `(integer-length K)'. | -- Function: list->integer list `list->integer' returns an integer formed from the booleans in the list LIST, which must be a list of booleans. A 1 bit is coded for each #t; a 0 bit for #f. - `integer->list' and `list->integer' are inverses so far as - `equal?' is concerned. + (list->integer (integer->list K)) => K | -- Function: booleans->integer bool1 ... Returns the integer coded by the BOOL1 ... arguments. -File: slib.info, Node: Modular Arithmetic, Next: Irrational Integer Functions, Prev: Bit-Twiddling, Up: Mathematical Packages - +File: slib-3b5.info, Node: Modular Arithmetic, Next: Irrational Integer Functions, Prev: Bit-Twiddling, Up: Mathematical Packages + | 5.2 Modular Arithmetic ====================== @@ -6951,8 +6978,8 @@ If all the arguments are fixnums the computation will use only fixnums. Returns (N2 ^ N3) mod MODULUS. -File: slib.info, Node: Irrational Integer Functions, Next: Irrational Real Functions, Prev: Modular Arithmetic, Up: Mathematical Packages - +File: slib-3b5.info, Node: Irrational Integer Functions, Next: Irrational Real Functions, Prev: Modular Arithmetic, Up: Mathematical Packages + | 5.3 Irrational Integer Functions ================================ @@ -6976,14 +7003,20 @@ File: slib.info, Node: Irrational Integer Functions, Next: Irrational Real Fun 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 + -- Function: quotient n1 n2 | + -- Function: remainder n1 n2 | + -- Function: modulo n1 n2 | are redefined so that they accept only exact-integer arguments. + -- Function: round-quotient n1 n2 | + Returns the quotient of N1 and N2 rounded toward even. | + | + (quotient 3 2) => 1 | + (round-quotient 3 2) => 2 | + | -File: slib.info, Node: Irrational Real Functions, Next: Prime Numbers, Prev: Irrational Integer Functions, Up: Mathematical Packages - +File: slib-3b5.info, Node: Irrational Real Functions, Next: Prime Numbers, Prev: Irrational Integer Functions, Up: Mathematical Packages + | 5.4 Irrational Real Functions ============================= @@ -6993,16 +7026,16 @@ File: slib.info, Node: Irrational Real Functions, Next: Prime Numbers, Prev: 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 + -- 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; @@ -7012,7 +7045,7 @@ defined to #f. procedures signal an error. - -- Function: real-sqrt X + -- Function: real-sqrt x | For non-negative real X the result will be its positive square root; otherwise an error will be signaled. @@ -7093,8 +7126,8 @@ defined to #f. -File: slib.info, Node: Prime Numbers, Next: Random Numbers, Prev: Irrational Real Functions, Up: Mathematical Packages - +File: slib-3b5.info, Node: Prime Numbers, Next: Random Numbers, Prev: Irrational Real Functions, Up: Mathematical Packages + | 5.5 Prime Numbers ================= @@ -7138,8 +7171,8 @@ the Solovay-Strassen primality test. See `(sort! (factor K) <)'. -File: slib.info, Node: Random Numbers, Next: Discrete Fourier Transform, Prev: Prime Numbers, Up: Mathematical Packages - +File: slib-3b5.info, Node: Random Numbers, Next: Discrete Fourier Transform, Prev: Prime Numbers, Up: Mathematical Packages + | 5.6 Random Numbers ================== @@ -7147,7 +7180,8 @@ A pseudo-random number generator is only as good as the tests it passes. George Marsaglia of Florida State University developed a battery of tests named "DIEHARD" (`http://stat.fsu.edu/~geo/diehard.html'). `diehard.c' has a bug which the patch -`http://swiss.csail.mit.edu/ftpdir/users/jaffer/diehard.c.pat' corrects. +`http://groups.csail.mit.edu/mac/ftpdir/users/jaffer/diehard.c.pat' +corrects. SLIB's PRNG generates 8 bits at a time. With the degenerate seed `0', the numbers generated pass DIEHARD; but when bits are combined @@ -7160,8 +7194,8 @@ from sequential bytes, tests fail. With the seed * Inexact Random Numbers:: 'random-inexact -File: slib.info, Node: Exact Random Numbers, Next: Inexact Random Numbers, Prev: Random Numbers, Up: Random Numbers - +File: slib-3b5.info, Node: Exact Random Numbers, Next: Inexact Random Numbers, Prev: Random Numbers, Up: Random Numbers + | 5.6.1 Exact Random Numbers -------------------------- @@ -7190,6 +7224,7 @@ File: slib.info, Node: Exact Random Numbers, Next: Inexact Random Numbers, Pr -- Function: copy-random-state state Returns a new copy of argument STATE. + -- Function: copy-random-state Returns a new copy of `*random-state*'. @@ -7212,8 +7247,8 @@ File: slib.info, Node: Exact Random Numbers, Next: Inexact Random Numbers, Pr `*random-state*' is used as the seed. -File: slib.info, Node: Inexact Random Numbers, Prev: Exact Random Numbers, Up: Random Numbers - +File: slib-3b5.info, Node: Inexact Random Numbers, Prev: Exact Random Numbers, Up: Random Numbers + | 5.6.2 Inexact Random Numbers ---------------------------- @@ -7258,8 +7293,8 @@ File: slib.info, Node: Inexact Random Numbers, Prev: Exact Random Numbers, Up squares of the numbers is returned. -File: slib.info, Node: Discrete Fourier Transform, Next: Cyclic Checksum, Prev: Random Numbers, Up: Mathematical Packages - +File: slib-3b5.info, Node: Discrete Fourier Transform, Next: Cyclic Checksum, Prev: Random Numbers, Up: Mathematical Packages + | 5.7 Discrete Fourier Transform ============================== @@ -7324,8 +7359,8 @@ best method for decimating each dimension. 1.0 -61.23031769111886e-18+1.0i -1.0 61.23031769111886e-18-1.0i) -File: slib.info, Node: Cyclic Checksum, Next: Graphing, Prev: Discrete Fourier Transform, Up: Mathematical Packages - +File: slib-3b5.info, Node: Cyclic Checksum, Next: Graphing, Prev: Discrete Fourier Transform, Up: Mathematical Packages + | 5.8 Cyclic Checksum =================== @@ -7365,6 +7400,7 @@ lengths: `http://www.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf' + There is even some controversy over the polynomials themselves. -- Constant: crc-32-polynomial @@ -7512,8 +7548,8 @@ 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 - +File: slib-3b5.info, Node: Graphing, Next: Solid Modeling, Prev: Cyclic Checksum, Up: Mathematical Packages + | 5.9 Graphing ============ @@ -7523,8 +7559,8 @@ File: slib.info, Node: Graphing, Next: Solid Modeling, Prev: Cyclic Checksum, * PostScript Graphing:: -File: slib.info, Node: Character Plotting, Next: PostScript Graphing, Prev: Graphing, Up: Graphing - +File: slib-3b5.info, Node: Character Plotting, Next: PostScript Graphing, Prev: Graphing, Up: Graphing + | 5.9.1 Character Plotting ------------------------ @@ -7636,8 +7672,8 @@ File: slib.info, Node: Character Plotting, Next: PostScript Graphing, Prev: G normal -0.025 0 0.025 0.05 -File: slib.info, Node: PostScript Graphing, Prev: Character Plotting, Up: Graphing - +File: slib-3b5.info, Node: PostScript Graphing, Prev: Character Plotting, Up: Graphing + | 5.9.2 PostScript Graphing ------------------------- @@ -7645,7 +7681,7 @@ File: slib.info, Node: PostScript Graphing, Prev: Character Plotting, Up: Gra This is a graphing package creating encapsulated-PostScript files. Its motivations and design choice are described in -`http://swiss.csail.mit.edu/~jaffer/Docupage/grapheps' +`http://people.csail.mit.edu/jaffer/Docupage/grapheps' A dataset to be plotted is taken from a 2-dimensional array. Corresponding coordinates are in rows. Coordinates from any pair of @@ -7687,8 +7723,8 @@ first ELT argument to the last. * Example Graph:: -File: slib.info, Node: Column Ranges, Next: Drawing the Graph, Prev: PostScript Graphing, Up: PostScript Graphing - +File: slib-3b5.info, Node: Column Ranges, Next: Drawing the Graph, Prev: PostScript Graphing, Up: PostScript Graphing + | 5.9.2.1 Column Ranges ..................... @@ -7728,8 +7764,8 @@ can be given explicity or computed in PostScript by `column-range'. legends, etc. -File: slib.info, Node: Drawing the Graph, Next: Graphics Context, Prev: Column Ranges, Up: PostScript Graphing - +File: slib-3b5.info, Node: Drawing the Graph, Next: Graphics Context, Prev: Column Ranges, Up: PostScript Graphing + | 5.9.2.2 Drawing the Graph ......................... @@ -7785,9 +7821,35 @@ The glyphs and drawing styles available are: `circle' Hollow circle + -- Function: plot-text-column array x-column y-column t-column proc3s | + Plots text in T-COLUMN of ARRAY at x coordinate in X-COLUMN of | + ARRAY and y coordinate Y-COLUMN of ARRAY. The symbol PROC3S | + specifies the offset of the text from the specified coordinates. | + | +The offsets available are: | + | +`above' | + Draws the text centered above at the point. | + | +`center' | + Draws the text centered at the point. | + | +`below' | + Draws the text centered below the point. | + | +`left' | + Draws the text to the left of the point. | + | +`right' | + Draws the text to the right of the point. | + | + All the offsets other than `center' are calculated to keep the text | +clear of a glyph drawn at the same coordinates. If you need more or | +less clearance, use `set-glyphsize'. | + | -File: slib.info, Node: Graphics Context, Next: Rectangles, Prev: Drawing the Graph, Up: PostScript Graphing - +File: slib-3b5.info, Node: Graphics Context, Next: Rectangles, Prev: Drawing the Graph, Up: PostScript Graphing + | 5.9.2.3 Graphics Context ........................ @@ -7802,12 +7864,15 @@ File: slib.info, Node: Graphics Context, Next: Rectangles, Prev: Drawing the `set-color' sets the PostScript color to the color of the given string, or a grey value between black (0) and white (100). - -- Function: set-font name fontheight - NAME should be a (case-sensitive) string naming a PostScript font. - FONTHEIGHT should be a positive real number. + -- Function: set-font font height | + -- Function: set-font font encoding height | + FONT should be a (case-sensitive) string naming a PostScript font. | + HEIGHT should be a positive real number. ENCODING should name a | + PostScript encoding such as `ISOLatin1Encoding'. | - `set-font' Changes the current PostScript font to NAME with height - equal to FONTHEIGHT. The default font is Helvetica (12pt). + `set-font' Changes the current PostScript font to FONT with the | + ENCODING encoding, and height equal to HEIGHT. The default font is | + `Helvetica' (12pt). The default encoding is `StandardEncoding'. | The base set of PostScript fonts is: @@ -7816,6 +7881,11 @@ Helvetica Helvetica-Oblique Helvetica-Bold Helvetica-BoldOblique Courier Courier-Oblique Courier-Bold Courier-BoldOblique Symbol +The base set of PostScript encodings is: | + | +StandardEncoding ISOLatin1Encoding ExpertEncoding | +ExpertSubsetEncoding SymbolEncoding | + | Line parameters do no affect fonts; they do effect glyphs. -- Function: set-linewidth w @@ -7826,9 +7896,11 @@ Line parameters do no affect fonts; they do effect glyphs. -- Function: set-linedash j k Lines are drawn J-on K-off. + -- Function: set-linedash j Lines are drawn J-on J-off. + -- Function: set-linedash Turns off dashing. @@ -7839,8 +7911,8 @@ Line parameters do no affect fonts; they do effect glyphs. 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 - +File: slib-3b5.info, Node: Rectangles, Next: Legending, Prev: Graphics Context, Up: PostScript Graphing + | 5.9.2.4 Rectangles .................. @@ -7879,8 +7951,8 @@ elements are the width and height of the rectangle. the extent of `clip-to-rect'. -File: slib.info, Node: Legending, Next: Legacy Plotting, Prev: Rectangles, Up: PostScript Graphing - +File: slib-3b5.info, Node: Legending, Next: Legacy Plotting, Prev: Rectangles, Up: PostScript Graphing + | 5.9.2.5 Legending ................. @@ -7940,8 +8012,8 @@ File: slib.info, Node: Legending, Next: Legacy Plotting, Prev: Rectangles, U horizontal ruler. -File: slib.info, Node: Legacy Plotting, Next: Example Graph, Prev: Legending, Up: PostScript Graphing - +File: slib-3b5.info, Node: Legacy Plotting, Next: Example Graph, Prev: Legending, Up: PostScript Graphing + | 5.9.2.6 Legacy Plotting ....................... @@ -7956,19 +8028,21 @@ File: slib.info, Node: Legacy Plotting, Next: Example Graph, Prev: Legending, range X1 to X2. If the optional integer argument NPTS is supplied, it specifies the number of points to evaluate FUNC at. - -- Function: x1 x2 npts func1 func2 ... + | + -- Function: plot x1 x2 npts func1 func2 ... | Creates and displays an encapsulated PostScript graph of the one-argument functions FUNC1, FUNC2, ... over the range X1 to X2 at NPTS points. + -- Function: plot coords x-label y-label COORDS is a list or vector of coordinates, lists of x and y coordinates. X-LABEL and Y-LABEL are strings with which to label the x and y axes. -File: slib.info, Node: Example Graph, Prev: Legacy Plotting, Up: PostScript Graphing - +File: slib-3b5.info, Node: Example Graph, Prev: Legacy Plotting, Up: PostScript Graphing + | 5.9.2.7 Example Graph ..................... @@ -8069,14 +8143,14 @@ scales. (system "gv solarad.eps") -File: slib.info, Node: Solid Modeling, Next: Color, Prev: Graphing, Up: Mathematical Packages - +File: slib-3b5.info, Node: Solid Modeling, Next: Color, Prev: Graphing, Up: Mathematical Packages + | 5.10 Solid Modeling =================== `(require 'solid)' -`http://swiss.csail.mit.edu/~jaffer/Solid/#Example' gives an example +`http://people.csail.mit.edu/jaffer/Solid/#Example' gives an example use of this package. -- Function: vrml node ... @@ -8105,7 +8179,7 @@ at the viewpoint: enclosing the virtual world. -- Function: scene:sphere colors angles - COLORS is a list of color objects. Each may be of type *Note + COLORS is a list of color objects. Each may be of type *note color: Color Data-Type, a 24-bit sRGB integer, or a list of 3 numbers between 0.0 and 1.0. @@ -8181,7 +8255,7 @@ sources to reach the desired strength. -- Function: light:ambient color Ambient light shines on all surfaces with which it is grouped. - COLOR is a an object of type *Note color: Color Data-Type, a + COLOR is a an object of type *note color: Color Data-Type, a 24-bit sRGB integer, or a list of 3 numbers between 0.0 and 1.0. If COLOR is #f, then the default color will be used. INTENSITY is a real non-negative number defaulting to `1'. @@ -8195,7 +8269,7 @@ sources to reach the desired strength. Directional light shines parallel rays with uniform intensity on all objects with which it is grouped. - COLOR is a an object of type *Note color: Color Data-Type, a + COLOR is a an object of type *note color: Color Data-Type, a 24-bit sRGB integer, or a list of 3 numbers between 0.0 and 1.0. If COLOR is #f, then the default color will be used. @@ -8232,7 +8306,7 @@ sources to reach the desired strength. Point light radiates from LOCATION, intensity decreasing with distance, towards all objects with which it is grouped. - COLOR is a an object of type *Note color: Color Data-Type, a + COLOR is a an object of type *note color: Color Data-Type, a 24-bit sRGB integer, or a list of 3 numbers between 0.0 and 1.0. If COLOR is #f, then the default color will be used. INTENSITY is a real non-negative number defaulting to `1'. BEAM is a structure @@ -8259,7 +8333,7 @@ sources to reach the desired strength. Cartesian vector specifying the direction to the light source. The default direction is upwards; thus its light will shine down. - COLOR is a an object of type *Note color: Color Data-Type, a + COLOR is a an object of type *note color: Color Data-Type, a 24-bit sRGB integer, or a list of 3 numbers between 0.0 and 1.0. If COLOR is #f, then the default color will be used. @@ -8366,7 +8440,7 @@ Object Primitives If present, APPEARANCE determines the surface properties of the returned object. If present, COLORRAY must be an array of objects - of type *Note color: Color Data-Type, 24-bit sRGB integers or + of type *note color: Color Data-Type, 24-bit sRGB integers or lists of 3 numbers between 0.0 and 1.0. If COLORRAY's dimensions match HEIGHT, then each element of @@ -8405,7 +8479,7 @@ Surface Attributes Returns an "appearance", the optical properties of the objects with which it is associated. AMBIENTINTENSITY, SHININESS, and TRANSPARENCY must be numbers between 0 and 1. DIFFUSECOLOR, - SPECULARCOLOR, and EMISSIVECOLOR are objects of type *Note color: + SPECULARCOLOR, and EMISSIVECOLOR are objects of type *note color: Color Data-Type, 24-bit sRGB integers or lists of 3 numbers between 0.0 and 1.0. If a color argument is omitted or #f, then the default color will be used. @@ -8484,6 +8558,7 @@ Aggregating Objects CENTER must be a list or vector of three numbers. Returns an upward pointing metallic arrow centered at CENTER. + -- Function: solid:arrow Returns an upward pointing metallic arrow centered at the origin. @@ -8505,12 +8580,12 @@ Spatial Transformations the axis AXIS. -File: slib.info, Node: Color, Next: Root Finding, Prev: Solid Modeling, Up: Mathematical Packages - +File: slib-3b5.info, Node: Color, Next: Root Finding, Prev: Solid Modeling, Up: Mathematical Packages + | 5.11 Color ========== -`http://swiss.csail.mit.edu/~jaffer/Color' +`http://people.csail.mit.edu/jaffer/Color' The goals of this package are to provide methods to specify, compute, and transform colors in a core set of additive color spaces. The color @@ -8528,8 +8603,8 @@ encountered in practice and the literature. * Daylight:: Sunlight and sky colors -File: slib.info, Node: Color Data-Type, Next: Color Spaces, Prev: Color, Up: Color - +File: slib-3b5.info, Node: Color Data-Type, Next: Color Spaces, Prev: Color, Up: Color + | 5.11.1 Color Data-Type ---------------------- @@ -8662,8 +8737,8 @@ implementation the device-independent RGB709 and sRGB spaces replace the device-dependent RGBi and RGB spaces of Xlib. -File: slib.info, Node: Color Spaces, Next: Spectra, Prev: Color Data-Type, Up: Color - +File: slib-3b5.info, Node: Color Spaces, Next: Spectra, Prev: Color Data-Type, Up: Color + | 5.11.2 Color Spaces ------------------- @@ -8746,6 +8821,7 @@ computed in L*a*b* (or L*C*h). -- Function: color:l*a*b* L* a* b* white-point Returns the L*a*b* color composed of L*, A*, B* with WHITE-POINT. + -- Function: color:l*a*b* L* a* b* Returns the L*a*b* color composed of L*, A*, B*. If the coordinates do not encode a valid L*a*b* color, then an error is @@ -8755,6 +8831,7 @@ computed in L*a*b* (or L*C*h). Returns the list of 3 numbers encoding COLOR in L*a*b* with WHITE-POINT. + -- Function: color->l*a*b* color Returns the list of 3 numbers encoding COLOR in L*a*b*. @@ -8770,6 +8847,7 @@ computed in L*a*b* (or L*C*h). -- Function: color:l*u*v* L* u* v* white-point Returns the L*u*v* color composed of L*, U*, V* with WHITE-POINT. + -- Function: color:l*u*v* L* u* v* Returns the L*u*v* color composed of L*, U*, V*. If the coordinates do not encode a valid L*u*v* color, then an error is @@ -8779,6 +8857,7 @@ computed in L*a*b* (or L*C*h). Returns the list of 3 numbers encoding COLOR in L*u*v* with WHITE-POINT. + -- Function: color->l*u*v* color Returns the list of 3 numbers encoding COLOR in L*u*v*. @@ -8822,6 +8901,7 @@ close colors seem to observers. -- Function: color:l*c*h L* C* h white-point Returns the L*C*h color composed of L*, C*, H with WHITE-POINT. + -- Function: color:l*c*h L* C* h Returns the L*C*h color composed of L*, C*, H. If the coordinates do not encode a valid L*C*h color, then an error is signaled. @@ -8830,6 +8910,7 @@ close colors seem to observers. Returns the list of 3 numbers encoding COLOR in L*C*h with WHITE-POINT. + -- Function: color->l*c*h color Returns the list of 3 numbers encoding COLOR in L*C*h. @@ -8904,9 +8985,11 @@ transform. -- Function: color:e-srgb 10 r g b Returns the e-sRGB10 color composed of integers R, G, B. + -- Function: color:e-srgb 12 r g b Returns the e-sRGB12 color composed of integers R, G, B. + -- Function: color:e-srgb 16 r g b Returns the e-sRGB16 color composed of integers R, G, B. If the coordinates do not encode a valid e-sRGB color, then an error is @@ -8929,15 +9012,15 @@ ICC.1:1998-09: color space. -File: slib.info, Node: Spectra, Next: Color Difference Metrics, Prev: Color Spaces, Up: Color - +File: slib-3b5.info, Node: Spectra, Next: Color Difference Metrics, Prev: Color Spaces, Up: Color + | 5.11.3 Spectra -------------- The following functions compute colors from spectra, scale color luminance, and extract chromaticity. XYZ is used in the names of procedures for unnormalized colors; the coordinates of CIEXYZ colors are -constrained as described in *Note Color Spaces::. +constrained as described in *note Color Spaces::. `(require 'color-space)' @@ -8955,18 +9038,18 @@ and Z "Spectral Tristimulus Values". The files `cie1931.xyz' and `cie1964.xyz' in the distribution contain these CIE-defined values. -- Feature: cie1964 - Loads the Spectral Tristimulus Values `CIE 1964 Supplementary | - Standard Colorimetric Observer', defining CIE:X-BAR, CIE:Y-BAR, | - and CIE:Z-BAR. | + Loads the Spectral Tristimulus Values `CIE 1964 Supplementary + Standard Colorimetric Observer', defining CIE:X-BAR, CIE:Y-BAR, + and CIE:Z-BAR. -- Feature: cie1931 - Loads the Spectral Tristimulus Values `CIE 1931 Supplementary | - Standard Colorimetric Observer', defining CIE:X-BAR, CIE:Y-BAR, | - and CIE:Z-BAR. | + Loads the Spectral Tristimulus Values `CIE 1931 Supplementary + Standard Colorimetric Observer', defining CIE:X-BAR, CIE:Y-BAR, + and CIE:Z-BAR. -- Feature: ciexyz - Requires Spectral Tristimulus Values, defaulting to cie1931, | - defining CIE:X-BAR, CIE:Y-BAR, and CIE:Z-BAR. | + Requires Spectral Tristimulus Values, defaulting to cie1931, + defining CIE:X-BAR, CIE:Y-BAR, and CIE:Z-BAR. `(require 'cie1964)' or `(require 'cie1931)' will `load-ciexyz' specific values used by the following spectrum conversion procedures. @@ -9146,8 +9229,8 @@ is extremely tolerant. Negative numbers are replaced with zero, and 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 - +File: slib-3b5.info, Node: Color Difference Metrics, Next: Color Conversions, Prev: Spectra, Up: Color + | 5.11.4 Color Difference Metrics ------------------------------- @@ -9169,13 +9252,15 @@ color2 in the function entries. Returns the Euclidean distance in L*a*b* space between COLOR1 and COLOR2. - -- Function: L*C*h:DE*94 lch1 lch2 parametric-factors - -- Function: L*C*h:DE*94 lch1 lch2 + -- Function: L*a*b*:DE*94 lab1 lab2 parametric-factors | + -- Function: L*a*b*:DE*94 lab1 lab2 | -- Function: CIE:DE*94 color1 color2 parametric-factors -- Function: CIE:DE*94 color1 color2 - Measures distance in the L*C*h cylindrical color-space. The three - axes are individually scaled (depending on C*) in their - contributions to the total distance. + Measures distance in the L*a*b* color-space. The three axes are | + individually scaled in their contributions to the total distance. | + | + `DE*94' is not symmetrical in its arguments. LAB1 is the | + "reference" color and LAB2 is the "sample" color. | The CIE has defined reference conditions under which the metric with default parameters can be expected to perform well. These @@ -9217,8 +9302,8 @@ to use a single value pass/fail tolerance for all shades. for acceptability. -File: slib.info, Node: Color Conversions, Next: Color Names, Prev: Color Difference Metrics, Up: Color - +File: slib-3b5.info, Node: Color Conversions, Next: Color Names, Prev: Color Difference Metrics, Up: Color + | 5.11.5 Color Conversions ------------------------ @@ -9288,8 +9373,8 @@ Do not convert e-sRGB precision through `e-sRGB->sRGB' then converts SRGB to e-sRGB of precision N2. -File: slib.info, Node: Color Names, Next: Daylight, Prev: Color Conversions, Up: Color - +File: slib-3b5.info, Node: Color Names, Next: Daylight, Prev: Color Conversions, Up: Color + | 5.11.6 Color Names ------------------ @@ -9332,6 +9417,7 @@ is the key, and the second is the color-string. BASE-TABLE-TYPE. `color-dictionary' returns the read-only table NAME in database NAME if it exists; #f otherwise. + -- Function: color-dictionary name rdb RDB must be an open relational database or a string naming a relational database file; and the symbol NAME a table therein. @@ -9374,7 +9460,7 @@ Dictionary Creation This section has detailed the procedures for creating and loading color dictionaries. So where are the dictionaries to load? - `http://swiss.csail.mit.edu/~jaffer/Color/Dictionaries.html' + `http://people.csail.mit.edu/jaffer/Color/Dictionaries.html' Describes and evaluates several color-name dictionaries on the web. The following procedure creates a database containing two of these @@ -9405,7 +9491,7 @@ The Short List purplish blue bluish purple purple reddish purple red purple purplish red red - (`http://swiss.csail.mit.edu/~jaffer/Color/saturate.pdf'). If + (`http://people.csail.mit.edu/jaffer/Color/saturate.pdf'). If NAME is found, the corresponding color is returned. Otherwise #f is returned. Use saturate only for light source colors. @@ -9417,7 +9503,7 @@ RGB Values List' available. -- Function: resene name Looks for NAME among the 1300 entries in the Resene color-name - dictionary (`http://swiss.csail.mit.edu/~jaffer/Color/resene.pdf'). + dictionary (`http://people.csail.mit.edu/jaffer/Color/resene.pdf'). If NAME is found, the corresponding color is returned. Otherwise #f is returned. The `Resene RGB Values List' is an excellent source for surface colors. @@ -9454,8 +9540,8 @@ program, then you must include its license with your program: detriment of Resene Paints Ltd. -File: slib.info, Node: Daylight, Prev: Color Names, Up: Color - +File: slib-3b5.info, Node: Daylight, Prev: Color Names, Up: Color + | 5.11.7 Daylight --------------- @@ -9552,13 +9638,16 @@ turbidity values less than 1.3. 20; otherwise the `clear-sky-color-xyy' function. -File: slib.info, Node: Root Finding, Next: Minimizing, Prev: Color, Up: Mathematical Packages - +File: slib-3b5.info, Node: Root Finding, Next: Minimizing, Prev: Color, Up: Mathematical Packages + | 5.12 Root Finding ================= `(require 'root)' + In the Newton method, divide the DF/DX argument by the multiplicity | +of the desired root in order to preserve quadratic convergence. | + | -- 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 @@ -9643,8 +9732,8 @@ Polynomials', IEEE Transactions on Circuits and Systems, Vol. 36, No. non-false if the iteration should be stopped. -File: slib.info, Node: Minimizing, Next: The Limit, Prev: Root Finding, Up: Mathematical Packages - +File: slib-3b5.info, Node: Minimizing, Next: The Limit, Prev: Root Finding, Up: Mathematical Packages + | 5.13 Minimizing =============== @@ -9690,8 +9779,8 @@ approximating the derivative. and Software' Prentice-Hall, 1989, ISBN 0-13-627258-4 -File: slib.info, Node: The Limit, Next: Commutative Rings, Prev: Minimizing, Up: Mathematical Packages - +File: slib-3b5.info, Node: The Limit, Next: Commutative Rings, Prev: Minimizing, Up: Mathematical Packages + | 5.14 The Limit ============== @@ -9790,8 +9879,8 @@ File: slib.info, Node: The Limit, Next: Commutative Rings, Prev: Minimizing, ==> 0.0 -File: slib.info, Node: Commutative Rings, Next: Matrix Algebra, Prev: The Limit, Up: Mathematical Packages - +File: slib-3b5.info, Node: Commutative Rings, Next: Matrix Algebra, Prev: The Limit, Up: Mathematical Packages + | 5.15 Commutative Rings ====================== @@ -10069,8 +10158,8 @@ objects. (* (m a c e b g) (m d f))) -File: slib.info, Node: Matrix Algebra, Prev: Commutative Rings, Up: Mathematical Packages - +File: slib-3b5.info, Node: Matrix Algebra, Prev: Commutative Rings, Up: Mathematical Packages + | 5.18 Matrix Algebra =================== @@ -10083,7 +10172,7 @@ linear-algebra texts, this package uses 0-based coordinates. Returns the list-of-lists form of MATRIX. -- Function: matrix->array matrix - Returns the array form of MATRIX. | + Returns the array form of MATRIX. -- Function: determinant matrix MATRIX must be a square matrix. `determinant' returns the @@ -10106,20 +10195,22 @@ linear-algebra texts, this package uses 0-based coordinates. -- 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 singular, then | + MATRIX must be a square matrix. If MATRIX is singular, then `matrix:inverse' returns #f; otherwise `matrix:inverse' returns the `matrix:product' inverse of MATRIX. -File: slib.info, Node: Database Packages, Next: Other Packages, Prev: Mathematical Packages, Up: Top - +File: slib-3b5.info, Node: Database Packages, Next: Other Packages, Prev: Mathematical Packages, Up: Top + | 6 Database Packages ******************* @@ -10130,8 +10221,8 @@ File: slib.info, Node: Database Packages, Next: Other Packages, Prev: Mathema * Weight-Balanced Trees:: 'wt-tree -File: slib.info, Node: Relational Database, Next: Relational Infrastructure, Prev: Database Packages, Up: Database Packages - +File: slib-3b5.info, Node: Relational Database, Next: Relational Infrastructure, Prev: Database Packages, Up: Database Packages + | 6.1 Relational Database ======================= @@ -10140,10 +10231,10 @@ File: slib.info, Node: Relational Database, Next: Relational Infrastructure, This package implements a database system inspired by the Relational Model (`E. F. Codd, A Relational Model of Data for Large Shared Data Banks'). An SLIB relational database implementation can be created -from any *Note Base Table:: implementation. +from any *note Base Table:: implementation. Why relational database? For motivations and design issues see -`http://swiss.csail.mit.edu/~jaffer/DBManifesto.html'. +`http://people.csail.mit.edu/jaffer/DBManifesto.html'. * Menu: @@ -10155,8 +10246,8 @@ from any *Note Base Table:: implementation. * Database Browser:: 'database-browse -File: slib.info, Node: Using Databases, Next: Table Operations, Prev: Relational Database, Up: Relational Database - +File: slib-3b5.info, Node: Using Databases, Next: Table Operations, Prev: Relational Database, Up: Relational Database + | 6.1.1 Using Databases --------------------- @@ -10184,14 +10275,14 @@ returning an already open database (procedure), rather than opening the database file a second time. _Note:_ Databases returned by `open-database' do not include - wrappers applied by packages like *Note Embedded Commands::. But + wrappers applied by packages like *note Embedded Commands::. But wrapped databases do work as arguments to these functions. When a database is created, it is mutable by the creator and not auto-sharable. A database opened mutably is also not auto-sharable. But any number of readers can (open) share a non-mutable database file. -This next set of procedures mirror the whole-database methods in *Note +This next set of procedures mirror the whole-database methods in *note Database Operations::. Except for `create-database', each procedure will accept either a filename or database procedure for its first argument. @@ -10228,6 +10319,7 @@ with one argument. Returns an open relational database associated with RDB. The database will be opened with base-table type BASE-TABLE-TYPE). + -- Function: open-database rdb Returns an open relational database associated with RDB. `open-database' will attempt to deduce the correct base-table-type. @@ -10279,7 +10371,7 @@ Defining Tables -- Function: define-domains rdb row5 ... Adds the domain rows ROW5 ... to the `*domains-data*' table in - RDB. The format of the row is given in *Note Catalog + RDB. The format of the row is given in *note Catalog Representation::. (define-domains rdb '(permittivity #f complex? c64 #f)) @@ -10330,8 +10422,8 @@ Listing Tables argument to `define-tables', will recreate the table. -File: slib.info, Node: Table Operations, Next: Database Interpolation, Prev: Using Databases, Up: Relational Database - +File: slib-3b5.info, Node: Table Operations, Next: Database Interpolation, Prev: Using Databases, Up: Relational Database + | 6.1.2 Table Operations ---------------------- @@ -10365,8 +10457,8 @@ number of primary keys for that table. * Table Administration:: -File: slib.info, Node: Single Row Operations, Next: Match-Keys, Prev: Table Operations, Up: Table Operations - +File: slib-3b5.info, Node: Single Row Operations, Next: Match-Keys, Prev: Table Operations, Up: Table Operations + | 6.1.2.1 Single Row Operations ............................. @@ -10419,8 +10511,8 @@ missing. value returned is unspecified. -File: slib.info, Node: Match-Keys, Next: Multi-Row Operations, Prev: Single Row Operations, Up: Table Operations - +File: slib-3b5.info, Node: Match-Keys, Next: Multi-Row Operations, Prev: Single Row Operations, Up: Table Operations + | 6.1.2.2 Match-Keys .................. @@ -10471,8 +10563,8 @@ argument. The arguments and their actions are: amiga-aztec amiga-dice-c aix) -File: slib.info, Node: Multi-Row Operations, Next: Indexed Sequential Access Methods, Prev: Match-Keys, Up: Table Operations - +File: slib-3b5.info, Node: Multi-Row Operations, Next: Indexed Sequential Access Methods, Prev: Match-Keys, Up: Table Operations + | 6.1.2.3 Multi-Row Operations ............................ @@ -10523,16 +10615,14 @@ Note that `row:insert*' and `row:update*' do _not_ use match-keys. it will be overwritten. The value returned is unspecified. -File: slib.info, Node: Indexed Sequential Access Methods, Next: Sequential Index Operations, Prev: Multi-Row Operations, Up: Table Operations - +File: slib-3b5.info, Node: Indexed Sequential Access Methods, Next: Sequential Index Operations, Prev: Multi-Row Operations, Up: Table Operations + | 6.1.2.4 Indexed Sequential Access Methods ......................................... "Indexed Sequential Access Methods" are a way of arranging database information so that records can be accessed both by key and by key -sequence (ordering). "ISAM" is not part of Codd's relational model. -Hardcore relational programmers might use some least-upper-bound join -for every row to get them into an order. +sequence (ordering). "ISAM" is not part of Codd's relational model. | Associative memory in B-Trees is an example of a database implementation which can support a native key ordering. SLIB's @@ -10547,8 +10637,8 @@ order. For example: (12 a 34) < (12 a 36) < (12 b 1) < (13 a 0) -File: slib.info, Node: Sequential Index Operations, Next: Table Administration, Prev: Indexed Sequential Access Methods, Up: Table Operations - +File: slib-3b5.info, Node: Sequential Index Operations, Next: Table Administration, Prev: Indexed Sequential Access Methods, Up: Table Operations + | 6.1.2.5 Sequential Index Operations ................................... @@ -10604,8 +10694,8 @@ calling the table with that operation symbol will return false. ((table 'isam-prev 'col1) '(12 7)) => (9 8) -File: slib.info, Node: Table Administration, Prev: Sequential Index Operations, Up: Table Operations - +File: slib-3b5.info, Node: Table Administration, Prev: Sequential Index Operations, Up: Table Operations + | 6.1.2.6 Table Administration ............................ @@ -10626,8 +10716,8 @@ File: slib.info, Node: Table Administration, Prev: Sequential Index Operations Subsequent operations to this table will signal an error. -File: slib.info, Node: Database Interpolation, Next: Embedded Commands, Prev: Table Operations, Up: Relational Database - +File: slib-3b5.info, Node: Database Interpolation, Next: Embedded Commands, Prev: Table Operations, Up: Relational Database + | 6.1.3 Database Interpolation ---------------------------- @@ -10651,8 +10741,8 @@ interpolation of associations between those in the table. associated with the smallest stored key is used. -File: slib.info, Node: Embedded Commands, Next: Database Macros, Prev: Database Interpolation, Up: Relational Database - +File: slib-3b5.info, Node: Embedded Commands, Next: Database Macros, Prev: Database Interpolation, Up: Relational Database + | 6.1.4 Embedded Commands ----------------------- @@ -10679,7 +10769,7 @@ run when the `*initialize*' procedure is automatically applied to the enhanced relational-database. Note also that if you wish to shadow or hide from the user -relational-database methods described in *Note Database Operations::, +relational-database methods described in *note Database Operations::, this can be done by a dispatch in the closure returned by the `*initialize*' expression rather than by entries in the `*commands*' table if it is desired that the underlying methods remain accessible to @@ -10695,8 +10785,8 @@ code in the `*commands*' table. * Command Example:: -File: slib.info, Node: Database Extension, Next: Command Intrinsics, Prev: Embedded Commands, Up: Embedded Commands - +File: slib-3b5.info, Node: Database Extension, Next: Command Intrinsics, Prev: Embedded Commands, Up: Embedded Commands + | 6.1.4.1 Database Extension .......................... @@ -10749,13 +10839,13 @@ File: slib.info, Node: Database Extension, Next: Command Intrinsics, Prev: Em otherwise. -File: slib.info, Node: Command Intrinsics, Next: Define-tables Example, Prev: Database Extension, Up: Embedded Commands - +File: slib-3b5.info, Node: Command Intrinsics, Next: Define-tables Example, Prev: Database Extension, Up: Embedded Commands + | 6.1.4.2 Command Intrinsics .......................... Some commands are defined in all extended relational-databases. The are -called just like *Note Database Operations::. +called just like *note Database Operations::. -- Operation on relational-database: add-domain domain-row Adds DOMAIN-ROW to the "domains" table if there is no row in the @@ -10794,8 +10884,8 @@ called just like *Note Database Operations::. DOMAIN. -File: slib.info, Node: Define-tables Example, Next: The *commands* Table, Prev: Command Intrinsics, Up: Embedded Commands - +File: slib-3b5.info, Node: Define-tables Example, Next: The *commands* Table, Prev: Command Intrinsics, Up: Embedded Commands + | 6.1.4.3 Define-tables Example ............................. @@ -10838,8 +10928,8 @@ saved and changed to immutable. (solidify-database my-rdb) -File: slib.info, Node: The *commands* Table, Next: Command Service, Prev: Define-tables Example, Up: Embedded Commands - +File: slib-3b5.info, Node: The *commands* Table, Next: Command Service, Prev: Define-tables Example, Up: Embedded Commands + | 6.1.4.4 The *commands* Table ............................ @@ -10900,8 +10990,8 @@ needed for this column, "sticky" defaults can be implemented using shared state with the domain-integrity-rule. -File: slib.info, Node: Command Service, Next: Command Example, Prev: The *commands* Table, Up: Embedded Commands - +File: slib-3b5.info, Node: Command Service, Next: Command Example, Prev: The *commands* Table, Up: Embedded Commands + | 6.1.4.5 Command Service ....................... @@ -10953,8 +11043,8 @@ File: slib.info, Node: Command Service, Next: Command Example, Prev: The *com For information about parameters, *Note Parameter lists::. -File: slib.info, Node: Command Example, Prev: Command Service, Up: Embedded Commands - +File: slib-3b5.info, Node: Command Example, Prev: Command Service, Up: Embedded Commands + | 6.1.4.6 Command Example ....................... @@ -11065,8 +11155,8 @@ those arguments from a `getopt' style argument list (*note Getopt::). ERROR: getopt->parameter-list "unrecognized option" "-?" -File: slib.info, Node: Database Macros, Next: Database Browser, Prev: Embedded Commands, Up: Relational Database - +File: slib-3b5.info, Node: Database Macros, Next: Database Browser, Prev: Embedded Commands, Up: Relational Database + | 6.1.5 Database Macros --------------------- @@ -11093,8 +11183,8 @@ emacs: * Within-database Example:: -File: slib.info, Node: Within-database, Next: Within-database Example, Prev: Database Macros, Up: Database Macros - +File: slib-3b5.info, Node: Within-database, Next: Within-database Example, Prev: Database Macros, Up: Database Macros + | 6.1.5.1 Within-database ....................... @@ -11171,8 +11261,8 @@ File: slib.info, Node: Within-database, Next: Within-database Example, Prev: ) -File: slib.info, Node: Within-database Example, Prev: Within-database, Up: Database Macros - +File: slib-3b5.info, Node: Within-database Example, Prev: Within-database, Up: Database Macros + | 6.1.5.2 Within-database Example ............................... @@ -11233,8 +11323,8 @@ Here is an example of `within-database' macros: (close-database my-rdb) -File: slib.info, Node: Database Browser, Prev: Database Macros, Up: Relational Database - +File: slib-3b5.info, Node: Database Browser, Prev: Database Macros, Up: Relational Database + | 6.1.6 Database Browser ---------------------- @@ -11264,10 +11354,9 @@ File: slib.info, Node: Database Browser, Prev: Database Macros, Up: Relationa default to it; `browse' prints the records of the table named by the symbol TABLE-NAME. - -File: slib.info, Node: Relational Infrastructure, Next: Weight-Balanced Trees, Prev: Relational Database, Up: Database Packages - +File: slib-3b5.info, Node: Relational Infrastructure, Next: Weight-Balanced Trees, Prev: Relational Database, Up: Database Packages + | 6.2 Relational Infrastructure ============================= @@ -11279,8 +11368,8 @@ File: slib.info, Node: Relational Infrastructure, Next: Weight-Balanced Trees, * Database Operations:: -File: slib.info, Node: Base Table, Next: Catalog Representation, Prev: Relational Infrastructure, Up: Relational Infrastructure - +File: slib-3b5.info, Node: Base Table, Next: Catalog Representation, Prev: Relational Infrastructure, Up: Relational Infrastructure + | 6.2.1 Base Table ---------------- @@ -11325,7 +11414,7 @@ of data. WB comes with two base-table embeddings. integer keys with the correct numerical collation order. This rest of this section documents the interface for a base table -implementation from which the *Note Relational Database:: package +implementation from which the *note Relational Database:: package constructs a Relational system. It will be of interest primarily to those wishing to port or write new base-table implementations. @@ -11347,8 +11436,8 @@ those wishing to port or write new base-table implementations. * Base ISAM Operations:: -File: slib.info, Node: The Base, Next: Base Tables, Prev: Base Table, Up: Base Table - +File: slib-3b5.info, Node: The Base, Next: Base Tables, Prev: Base Table, Up: Base Table + | 6.2.1.1 The Base ................ @@ -11412,8 +11501,8 @@ otherwise. For example: successfully, `#t' is returned. Otherwise, `#f' is returned. -File: slib.info, Node: Base Tables, Next: Base Field Types, Prev: The Base, Up: Base Table - +File: slib-3b5.info, Node: Base Tables, Next: Base Field Types, Prev: The Base, Up: Base Table + | 6.2.1.2 Base Tables ................... @@ -11446,8 +11535,8 @@ File: slib.info, Node: Base Tables, Next: Base Field Types, Prev: The Base, system catalog. -File: slib.info, Node: Base Field Types, Next: Composite Keys, Prev: Base Tables, Up: Base Table - +File: slib-3b5.info, Node: Base Field Types, Next: Composite Keys, Prev: Base Tables, Up: Base Table + | 6.2.1.3 Base Field Types ........................ @@ -11466,8 +11555,8 @@ An "ordinal" is an exact positive integer. The other types are standard Scheme. -File: slib.info, Node: Composite Keys, Next: Base Record Operations, Prev: Base Field Types, Up: Base Table - +File: slib-3b5.info, Node: Composite Keys, Next: Base Record Operations, Prev: Base Field Types, Up: Base Table + | 6.2.1.4 Composite Keys ...................... @@ -11509,8 +11598,8 @@ File: slib.info, Node: Composite Keys, Next: Base Record Operations, Prev: Ba the list which was passed to create COMPOSITE-KEY. -File: slib.info, Node: Base Record Operations, Next: Match Keys, Prev: Composite Keys, Up: Base Table - +File: slib-3b5.info, Node: Base Record Operations, Next: Match Keys, Prev: Composite Keys, Up: Base Table + | 6.2.1.5 Base Record Operations .............................. @@ -11549,8 +11638,8 @@ works with older base-table implementations by using `make-getter'. HANDLE. An unspecified value is returned. -File: slib.info, Node: Match Keys, Next: Aggregate Base Operations, Prev: Base Record Operations, Up: Base Table - +File: slib-3b5.info, Node: Match Keys, Next: Aggregate Base Operations, Prev: Base Record Operations, Up: Base Table + | 6.2.1.6 Match Keys .................. @@ -11572,8 +11661,8 @@ element of the MATCH-KEYS list. The elements and their actions are: Any other value matches only those keys `equal?' to it. -File: slib.info, Node: Aggregate Base Operations, Next: Base ISAM Operations, Prev: Match Keys, Up: Base Table - +File: slib-3b5.info, Node: Aggregate Base Operations, Next: Base ISAM Operations, Prev: Match Keys, Up: Base Table + | 6.2.1.7 Aggregate Base Operations ................................. @@ -11598,8 +11687,8 @@ composite-keys for matching with MATCH-KEYS. MATCH-KEYS in an unspecified order. -File: slib.info, Node: Base ISAM Operations, Prev: Aggregate Base Operations, Up: Base Table - +File: slib-3b5.info, Node: Base ISAM Operations, Prev: Aggregate Base Operations, Up: Base Table + | 6.2.1.8 Base ISAM Operations ............................ @@ -11629,8 +11718,8 @@ These operations are optional for a Base-Table implementation. present. -File: slib.info, Node: Catalog Representation, Next: Relational Database Objects, Prev: Base Table, Up: Relational Infrastructure - +File: slib-3b5.info, Node: Catalog Representation, Next: Relational Database Objects, Prev: Base Table, Up: Relational Infrastructure + | 6.2.2 Catalog Representation ---------------------------- @@ -11698,13 +11787,13 @@ The types for which support is planned are: virtual <expression> -File: slib.info, Node: Relational Database Objects, Next: Database Operations, Prev: Catalog Representation, Up: Relational Infrastructure - +File: slib-3b5.info, Node: Relational Database Objects, Next: Database Operations, Prev: Catalog Representation, Up: Relational Infrastructure + | 6.2.3 Relational Database Objects --------------------------------- This object-oriented interface is deprecated for typical database -applications; *Note Using Databases:: provides an application programmer +applications; *note Using Databases:: provides an application programmer interface which is easier to understand and use. -- Function: make-relational-system base-table-implementation @@ -11739,7 +11828,7 @@ relational system returned by a call to `make-relational-system'. be created if such can be supported by the underlying base table implelentation. If the database cannot be created as specified `#f' is returned. For the fields and layout of descriptor tables, - *Note Catalog Representation:: + *note Catalog Representation:: -- Operation on relational-system: open-database filename mutable? Returns an open relational database associated with FILENAME. If @@ -11751,13 +11840,13 @@ relational system returned by a call to `make-relational-system'. cannot be opened as specified `#f' is returned. -File: slib.info, Node: Database Operations, Prev: Relational Database Objects, Up: Relational Infrastructure - +File: slib-3b5.info, Node: Database Operations, Prev: Relational Database Objects, Up: Relational Infrastructure + | 6.2.4 Database Operations ------------------------- This object-oriented interface is deprecated for typical database -applications; *Note Using Databases:: provides an application programmer +applications; *note Using Databases:: provides an application programmer interface which is easier to understand and use. These are the descriptions of the methods available from an open @@ -11793,9 +11882,8 @@ the database with the symbol name of the operation. For example: -- Operation on relational-database: solidify-database Causes any pending updates to the database file to be written out. - If the writes completed successfully, then the database is - changed to be immutable and `#t' is returned. Otherwise, `#f' is - returned. + If the writes completed successfully, then the database is changed + to be immutable and `#t' is returned. Otherwise, `#f' is returned. -- Operation on relational-database: table-exists? table-name Returns `#t' if TABLE-NAME exists in the system catalog, otherwise @@ -11831,8 +11919,8 @@ These methods will be present only in mutable databases. Not yet implemented. -File: slib.info, Node: Weight-Balanced Trees, Prev: Relational Infrastructure, Up: Database Packages - +File: slib-3b5.info, Node: Weight-Balanced Trees, Prev: Relational Infrastructure, Up: Database Packages + | 6.3 Weight-Balanced Trees ========================= @@ -11914,8 +12002,8 @@ once before calling any of the procedures defined here. * Indexing Operations on Weight-Balanced Trees:: -File: slib.info, Node: Construction of Weight-Balanced Trees, Next: Basic Operations on Weight-Balanced Trees, Prev: Weight-Balanced Trees, Up: Weight-Balanced Trees - +File: slib-3b5.info, Node: Construction of Weight-Balanced Trees, Next: Basic Operations on Weight-Balanced Trees, Prev: Weight-Balanced Trees, Up: Weight-Balanced Trees + | 6.3.1 Construction of Weight-Balanced Trees ------------------------------------------- @@ -11991,8 +12079,8 @@ used many times throughout the program's execution. tree)) -File: slib.info, Node: Basic Operations on Weight-Balanced Trees, Next: Advanced Operations on Weight-Balanced Trees, Prev: Construction of Weight-Balanced Trees, Up: Weight-Balanced Trees - +File: slib-3b5.info, Node: Basic Operations on Weight-Balanced Trees, Next: Advanced Operations on Weight-Balanced Trees, Prev: Construction of Weight-Balanced Trees, Up: Weight-Balanced Trees + | 6.3.2 Basic Operations on Weight-Balanced Trees ----------------------------------------------- @@ -12051,8 +12139,8 @@ number of associations in a tree. of the number of associations in WT-TREE. -File: slib.info, Node: Advanced Operations on Weight-Balanced Trees, Next: Indexing Operations on Weight-Balanced Trees, Prev: Basic Operations on Weight-Balanced Trees, Up: Weight-Balanced Trees - +File: slib-3b5.info, Node: Advanced Operations on Weight-Balanced Trees, Next: Indexing Operations on Weight-Balanced Trees, Prev: Basic Operations on Weight-Balanced Trees, Up: Weight-Balanced Trees + | 6.3.3 Advanced Operations on Weight-Balanced Trees -------------------------------------------------- @@ -12174,9 +12262,52 @@ associations. (display (list key value))) WT-TREE)) + -- procedure+: wt-tree/union-merge wt-tree-1 wt-tree-2 merge | + Returns a new tree containing all the associations from both | + trees. If both trees have an association for the same key, the | + datum associated with that key in the result tree is computed by | + applying the procedure MERGE to the key, the value from WT-TREE-1 | + and the value from WT-TREE-2. MERGE is of the form | + | + (lambda (KEY DATUM-1 DATUM-2) ...) | + | + If some key occurs only in one tree, that association will appear | + in the result tree without being processed by MERGE, so for this | + operation to make sense, either MERGE must have both a right and | + left identity that correspond to the association being absent in | + one of the trees, or some guarantee must be made, for example, all | + the keys in one tree are known to occur in the other. | + | + These are all reasonable procedures for MERGE | + | + (lambda (key val1 val2) (+ val1 val2)) | + (lambda (key val1 val2) (append val1 val2)) | + (lambda (key val1 val2) (wt-tree/union val1 val2)) | + | + However, a procedure like | + | + (lambda (key val1 val2) (- val1 val2)) | + | + would result in a subtraction of the data for all associations | + with keys occuring in both trees but associations with keys | + occuring in only the second tree would be copied, not negated, as | + is presumably be intent. The programmer might ensure that this | + never happens. | + | + This procedure has the same time behavior as `wt-tree/union' but | + with a slightly worse constant factor. Indeed, `wt-tree/union' | + might have been defined like this: | + | + (define (wt-tree/union tree1 tree2) | + (wt-tree/union-merge tree1 tree2 | + (lambda (key val1 val2) val2))) | + | + The MERGE procedure takes the KEY as a parameter in case the data are | +not independent of the key. | + | -File: slib.info, Node: Indexing Operations on Weight-Balanced Trees, Prev: Advanced Operations on Weight-Balanced Trees, Up: Weight-Balanced Trees - +File: slib-3b5.info, Node: Indexing Operations on Weight-Balanced Trees, Prev: Advanced Operations on Weight-Balanced Trees, Up: Weight-Balanced Trees + | 6.3.4 Indexing Operations on Weight-Balanced Trees -------------------------------------------------- @@ -12253,8 +12384,8 @@ determined, both in logarthmic time. (wt-tree/delete! WT-TREE (wt-tree/min WT-TREE)) -File: slib.info, Node: Other Packages, Next: About SLIB, Prev: Database Packages, Up: Top - +File: slib-3b5.info, Node: Other Packages, Next: About SLIB, Prev: Database Packages, Up: Top + | 7 Other Packages **************** @@ -12269,8 +12400,8 @@ File: slib.info, Node: Other Packages, Next: About SLIB, Prev: Database Packa * Extra-SLIB Packages:: Outside the envelope. -File: slib.info, Node: Data Structures, Next: Sorting and Searching, Prev: Other Packages, Up: Other Packages - +File: slib-3b5.info, Node: Data Structures, Next: Sorting and Searching, Prev: Other Packages, Up: Other Packages + | 7.1 Data Structures =================== @@ -12294,8 +12425,8 @@ File: slib.info, Node: Data Structures, Next: Sorting and Searching, Prev: Ot * Records:: 'record -File: slib.info, Node: Arrays, Next: Subarrays, Prev: Data Structures, Up: Data Structures - +File: slib-3b5.info, Node: Arrays, Next: Subarrays, Prev: Data Structures, Up: Data Structures + | 7.1.1 Arrays ------------ @@ -12533,28 +12664,27 @@ finally to vector. Returns a boolean uniform-array prototype. -File: slib.info, Node: Subarrays, Next: Array Mapping, Prev: Arrays, Up: Data Structures - +File: slib-3b5.info, Node: Subarrays, Next: Array Mapping, Prev: Arrays, Up: Data Structures + | 7.1.2 Subarrays --------------- `(require 'subarray)' -- Function: subarray array select ... - selects a subset of an array. For ARRAY of rank n, there must be - at least n SELECTS arguments. For 0 <= j < n, SELECTSj is either + selects a subset of an array. For 0 <= j < n, SELECTj is either | an integer, a list of two integers within the range for the jth index, or #f. - When SELECTSj is a list of two integers, then the jth index is + When SELECTj is a list of two integers, then the jth index is | restricted to that subrange in the returned array. - When SELECTSj is #f, then the full range of the jth index is + When SELECTj is #f, then the full range of the jth index is | accessible in the returned array. An elided argument is equivalent to #f. - When SELECTSj is an integer, then the rank of the returned array is - less than ARRAY, and only elements whose jth index equals SELECTSj + When SELECTj is an integer, then the rank of the returned array is | + less than ARRAY, and only elements whose jth index equals SELECTj | are shared. > (define ra '#2A((a b c) (d e f))) @@ -12599,8 +12729,8 @@ File: slib.info, Node: Subarrays, Next: Array Mapping, Prev: Arrays, Up: Dat => #(1 2 2 4 13) -File: slib.info, Node: Array Mapping, Next: Array Interpolation, Prev: Subarrays, Up: Data Structures - +File: slib-3b5.info, Node: Array Mapping, Next: Array Interpolation, Prev: Subarrays, Up: Data Structures + | 7.1.3 Array Mapping ------------------- @@ -12664,8 +12794,8 @@ File: slib.info, Node: Array Mapping, Next: Array Interpolation, Prev: Subarr The order of copying is unspecified. -File: slib.info, Node: Array Interpolation, Next: Association Lists, Prev: Array Mapping, Up: Data Structures - +File: slib-3b5.info, Node: Array Interpolation, Next: Association Lists, Prev: Array Mapping, Up: Data Structures + | 7.1.4 Array Interpolation ------------------------- @@ -12695,8 +12825,8 @@ File: slib.info, Node: Array Interpolation, Next: Association Lists, Prev: Ar ra ==> #2A:floR64b((1.0 3.0) (2.5 4.5) (4.0 6.0)) -File: slib.info, Node: Association Lists, Next: Byte, Prev: Array Interpolation, Up: Data Structures - +File: slib-3b5.info, Node: Association Lists, Next: Byte, Prev: Array Interpolation, Up: Data Structures + | 7.1.5 Association Lists ----------------------- @@ -12751,8 +12881,8 @@ tables for improved performance. be a function of 2 arguments. The returned value is unspecified. -File: slib.info, Node: Byte, Next: Byte/Number Conversions, Prev: Association Lists, Up: Data Structures - +File: slib-3b5.info, Node: Byte, Next: Byte/Number Conversions, Prev: Association Lists, Up: Data Structures + | 7.1.6 Byte ---------- @@ -12784,28 +12914,28 @@ character sets. These functions abstract the notion of a "byte". -- Function: bytes byte ... Returns a newly allocated byte-array composed of the small nonnegative arguments. - | + -- Function: list->bytes bytes `list->bytes' returns a newly allocated byte-array formed from the small nonnegative integers in the list BYTES. - -- Function: bytes->list bytes | - `bytes->list' returns a newly allocated list of the bytes that | - make up the given byte-array. | - | + -- Function: bytes->list bytes + `bytes->list' returns a newly allocated list of the bytes that + make up the given byte-array. + `Bytes->list' and `list->bytes' are inverses so far as `equal?' is concerned. - -- Function: bytes->string bytes | - Returns a new string formed from applying `integer->char' to each | - byte in `bytes->string'. Note that this may signal an error for | - bytes having values between 128 and 255. | - | - -- Function: string->bytes string | - Returns a new byte-array formed from applying `char->integer' to | - each character in `string->bytes'. Note that this may signal an | - error if an integer is larger than 255. | - | + -- Function: bytes->string bytes + Returns a new string formed from applying `integer->char' to each + byte in `bytes->string'. Note that this may signal an error for + bytes having values between 128 and 255. + + -- Function: string->bytes string + Returns a new byte-array formed from applying `char->integer' to + each character in `string->bytes'. Note that this may signal an + error if an integer is larger than 255. + -- Function: bytes-copy bytes Returns a newly allocated copy of the given BYTES. @@ -12861,8 +12991,8 @@ Byte/Number Conversions:: are always big-endian. `read-bytes' returns a newly allocated bytes-array filled with `(abs N)' bytes read from PORT. If N is positive, then the first byte read is stored at index 0; otherwise the last byte read is - stored at index 0. Note that the length of the returned | - byte-array will be less than `(abs N)' if PORT reaches end-of-file. | + stored at index 0. Note that the length of the returned + byte-array will be less than `(abs N)' if PORT reaches end-of-file. PORT may be omitted, in which case it defaults to the value returned by `current-input-port'. @@ -12881,27 +13011,27 @@ Byte/Number Conversions:: are always big-endian. for reading and writing blocks of bytes. The relative size of START and END determines the order of writing. - -- Procedure: subbytes-read! bts start end port | - -- Procedure: subbytes-read! bts start end | - Fills BTS with up to `(abs (- START END))' bytes read from PORT. | - The first byte read is stored at index BTS. `subbytes-read!' | - returns the number of bytes read. | + -- Procedure: subbytes-read! bts start end port + -- Procedure: subbytes-read! bts start end + Fills BTS with up to `(abs (- START END))' bytes read from PORT. + The first byte read is stored at index BTS. `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 bts start end port | - -- Function: subbytes-write bts start end | + -- Function: subbytes-write bts start end port + -- Function: subbytes-write bts start end `subbytes-write' writes `(abs (- START END))' bytes to output-port - PORT. The first byte written is index START of BTS. | + PORT. The first byte written is index START of BTS. `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'. -File: slib.info, Node: Byte/Number Conversions, Next: MAT-File Format, Prev: Byte, Up: Data Structures - +File: slib-3b5.info, Node: Byte/Number Conversions, Next: MAT-File Format, Prev: Byte, Up: Data Structures + | 7.1.7 Byte/Number Conversions ----------------------------- @@ -12974,6 +13104,7 @@ determines the signedness of the number. (bytes->ieee-double (bytes 0 4 0 0 0 0 0 0)) => 5.562684646268003e-309 (bytes->ieee-double (bytes 0 0 0 0 0 0 0 1)) => 4.0e-324 + (bytes->ieee-double (list->bytes '(127 239 255 255 255 255 255 255))) 179.76931348623157e306 (bytes->ieee-double (bytes #xFF #xF0 0 0 0 0 0 0)) => -inf.0 (bytes->ieee-double (bytes #x7F #xF0 0 0 0 0 0 0)) => +inf.0 (bytes->ieee-double (bytes #x7F #xF8 0 0 0 0 0 0)) => 0/0 @@ -13059,8 +13190,8 @@ enables the full range of numbers as keys in BYTE-VECTOR modifications. -File: slib.info, Node: MAT-File Format, Next: Portable Image Files, Prev: Byte/Number Conversions, Up: Data Structures - +File: slib-3b5.info, Node: MAT-File Format, Next: Portable Image Files, Prev: Byte/Number Conversions, Up: Data Structures + | 7.1.8 MAT-File Format --------------------- @@ -13090,8 +13221,8 @@ awaits a sample file. list of the symbols defined. -File: slib.info, Node: Portable Image Files, Next: Collections, Prev: MAT-File Format, Up: Data Structures - +File: slib-3b5.info, Node: Portable Image Files, Next: Collections, Prev: MAT-File Format, Up: Data Structures + | 7.1.9 Portable Image Files -------------------------- @@ -13128,6 +13259,7 @@ File: slib.info, Node: Portable Image Files, Next: Collections, Prev: MAT-Fil ARRAY must be the correct size and type for PATH. ARRAY is returned. + -- Function: pnm:image-file->array path `pnm:image-file->array' creates and returns an array with the "portable bitmap graphics" file named by PATH read into it. @@ -13139,8 +13271,8 @@ File: slib.info, Node: Portable Image Files, Next: Collections, Prev: MAT-Fil COMMENTs are included in the file header. -File: slib.info, Node: Collections, Next: Dynamic Data Type, Prev: Portable Image Files, Up: Data Structures - +File: slib-3b5.info, Node: Collections, Next: Dynamic Data Type, Prev: Portable Image Files, Up: Data Structures + | 7.1.10 Collections ------------------ @@ -13219,7 +13351,7 @@ operations. => (c b d a). `Reduce' called with two arguments will work as does the procedure - of the same name from *Note Common List Functions::). + of the same name from *Note Common List Functions::. -- Function: any? pred collection1 ... A generalization of the list-based `some' (*note Lists as @@ -13246,7 +13378,7 @@ operations. Returns the number of elements in COLLECTION. -- Function: Setter list-ref - See *Note Setters:: for a definition of "setter". N.B. `(setter + See *note Setters:: for a definition of "setter". N.B. `(setter list-ref)' doesn't work properly for element 0 of a list. Here is a sample collection: `simple-table' which is also a `table'. @@ -13309,8 +13441,8 @@ operations. ) ) ) ) -File: slib.info, Node: Dynamic Data Type, Next: Hash Tables, Prev: Collections, Up: Data Structures - +File: slib-3b5.info, Node: Dynamic Data Type, Next: Hash Tables, Prev: Collections, Up: Data Structures + | 7.1.11 Dynamic Data Type ------------------------ @@ -13344,8 +13476,8 @@ File: slib.info, Node: Dynamic Data Type, Next: Hash Tables, Prev: Collection The `dynamic-bind' macro is not implemented. -File: slib.info, Node: Hash Tables, Next: Object, Prev: Dynamic Data Type, Up: Data Structures - +File: slib-3b5.info, Node: Hash Tables, Next: Object, Prev: Dynamic Data Type, Up: Data Structures + | 7.1.12 Hash Tables ------------------ @@ -13409,15 +13541,15 @@ should be `eq?', `eqv?', `equal?', `=', `char=?', `char-ci=?', have all of the associations of the old hash table. -File: slib.info, Node: Object, Next: Priority Queues, Prev: Hash Tables, Up: Data Structures - +File: slib-3b5.info, Node: Object, Next: Priority Queues, Prev: Hash Tables, Up: Data Structures + | 7.1.13 Macroless Object System ------------------------------ `(require 'object)' This is the Macroless Object System written by Wade Humeniuk -(whumeniu@datap.ca). Conceptual Tributes: *Note Yasos::, MacScheme's +(whumeniu@datap.ca). Conceptual Tributes: *note Yasos::, MacScheme's %object, CLOS, Lack of R4RS macros. 7.1.14 Concepts @@ -13635,8 +13767,8 @@ Inheritance (invert! x) error--> ERROR: Method not supported: x -File: slib.info, Node: Priority Queues, Next: Queues, Prev: Object, Up: Data Structures - +File: slib-3b5.info, Node: Priority Queues, Next: Queues, Prev: Object, Up: Data Structures + | 7.1.17 Priority Queues ---------------------- @@ -13662,8 +13794,8 @@ Algorithms' by T. Cormen, C. Leiserson, R. Rivest. 1989 MIT Press. error is signaled. -File: slib.info, Node: Queues, Next: Records, Prev: Priority Queues, Up: Data Structures - +File: slib-3b5.info, Node: Queues, Next: Records, Prev: Priority Queues, Up: Data Structures + | 7.1.18 Queues ------------- @@ -13706,8 +13838,8 @@ rear, and removed from the front (i.e., they are what are often called Returns the datum at the rear of the queue Q. -File: slib.info, Node: Records, Prev: Queues, Up: Data Structures - +File: slib-3b5.info, Node: Records, Prev: Queues, Up: Data Structures + | 7.1.19 Records -------------- @@ -13778,8 +13910,8 @@ types which are unforgeable and incorruptible by R4RS procedures. supported. -File: slib.info, Node: Sorting and Searching, Next: Procedures, Prev: Data Structures, Up: Other Packages - +File: slib-3b5.info, Node: Sorting and Searching, Next: Procedures, Prev: Data Structures, Up: Other Packages + | 7.2 Sorting and Searching ========================= @@ -13791,14 +13923,14 @@ File: slib.info, Node: Sorting and Searching, Next: Procedures, Prev: Data St * Sorting:: 'sort * Topological Sort:: Keep your socks on. * Hashing:: 'hash -* Space-Filling Curves:: 'hilbert and 'sierpinski +* Space-Filling Curves:: 'space-filling and 'sierpinski * Soundex:: Dimension Reduction of Last Names * String Search:: Also Search from a Port. * Sequence Comparison:: 'diff and longest-common-subsequence -File: slib.info, Node: Common List Functions, Next: Tree Operations, Prev: Sorting and Searching, Up: Sorting and Searching - +File: slib-3b5.info, Node: Common List Functions, Next: Tree Operations, Prev: Sorting and Searching, Up: Sorting and Searching + | 7.2.1 Common List Functions --------------------------- @@ -13816,8 +13948,8 @@ optional arguments in some cases. * Non-List functions:: -File: slib.info, Node: List construction, Next: Lists as sets, Prev: Common List Functions, Up: Common List Functions - +File: slib-3b5.info, Node: List construction, Next: Lists as sets, Prev: Common List Functions, Up: Common List Functions + | 7.2.1.1 List construction ......................... @@ -13870,8 +14002,8 @@ File: slib.info, Node: List construction, Next: Lists as sets, Prev: Common L => #t -File: slib.info, Node: Lists as sets, Next: Lists as sequences, Prev: List construction, Up: Common List Functions - +File: slib-3b5.info, Node: Lists as sets, Next: Lists as sequences, Prev: List construction, Up: Common List Functions + | 7.2.1.2 Lists as sets ..................... @@ -14079,8 +14211,8 @@ as sets. => (2 4 3) -File: slib.info, Node: Lists as sequences, Next: Destructive list operations, Prev: Lists as sets, Up: Common List Functions - +File: slib-3b5.info, Node: Lists as sequences, Next: Destructive list operations, Prev: Lists as sets, Up: Common List Functions + | 7.2.1.3 Lists as sequences .......................... @@ -14196,7 +14328,7 @@ File: slib.info, Node: Lists as sequences, Next: Destructive list operations, (last '(foo bar baz bang) 2) => (baz bang) (last '(1 2 3) 0) - => 0 + => () | -- Function: butlast lst n `butlast' returns all but the last N elements of LST. @@ -14241,8 +14373,8 @@ identical arguments. => (a b) -File: slib.info, Node: Destructive list operations, Next: Non-List functions, Prev: Lists as sequences, Up: Common List Functions - +File: slib-3b5.info, Node: Destructive list operations, Next: Non-List functions, Prev: Lists as sequences, Up: Common List Functions + | 7.2.1.4 Destructive list operations ................................... @@ -14325,8 +14457,8 @@ mutation is undefined. The examples should suffice to show why this is the case. -File: slib.info, Node: Non-List functions, Prev: Destructive list operations, Up: Common List Functions - +File: slib-3b5.info, Node: Non-List functions, Prev: Destructive list operations, Up: Common List Functions + | 7.2.1.5 Non-List functions .......................... @@ -14364,8 +14496,8 @@ File: slib.info, Node: Non-List functions, Prev: Destructive list operations, => #t -File: slib.info, Node: Tree Operations, Next: Chapter Ordering, Prev: Common List Functions, Up: Sorting and Searching - +File: slib-3b5.info, Node: Tree Operations, Next: Chapter Ordering, Prev: Common List Functions, Up: Sorting and Searching + | 7.2.2 Tree operations --------------------- @@ -14408,8 +14540,8 @@ File: slib.info, Node: Tree Operations, Next: Chapter Ordering, Prev: Common => #f -File: slib.info, Node: Chapter Ordering, Next: Sorting, Prev: Tree Operations, Up: Sorting and Searching - +File: slib-3b5.info, Node: Chapter Ordering, Next: Sorting, Prev: Tree Operations, Up: Sorting and Searching + | 7.2.3 Chapter Ordering ---------------------- @@ -14447,8 +14579,8 @@ like case. (chap:next-string "Revised^{4}") => "Revised^{5}" -File: slib.info, Node: Sorting, Next: Topological Sort, Prev: Chapter Ordering, Up: Sorting and Searching - +File: slib-3b5.info, Node: Sorting, Next: Topological Sort, Prev: Chapter Ordering, Up: Sorting and Searching + | 7.2.4 Sorting ------------- @@ -14536,8 +14668,8 @@ element. (sorted? (sort! SEQUENCE LESS?) LESS?) => #t -File: slib.info, Node: Topological Sort, Next: Hashing, Prev: Sorting, Up: Sorting and Searching - +File: slib-3b5.info, Node: Topological Sort, Next: Hashing, Prev: Sorting, Up: Sorting and Searching + | 7.2.5 Topological Sort ---------------------- @@ -14587,8 +14719,8 @@ The algorithm is inspired by Cormen, Leiserson and Rivest (1990) (socks undershorts pants shoes watch shirt belt tie jacket) -File: slib.info, Node: Hashing, Next: Space-Filling Curves, Prev: Topological Sort, Up: Sorting and Searching - +File: slib-3b5.info, Node: Hashing, Next: Space-Filling Curves, Prev: Topological Sort, Up: Sorting and Searching + | 7.2.6 Hashing ------------- @@ -14618,21 +14750,80 @@ Hash tables use these functions. the same `hashv' implies the items have the same `hashq'. -File: slib.info, Node: Space-Filling Curves, Next: Soundex, Prev: Hashing, Up: Sorting and Searching - +File: slib-3b5.info, Node: Space-Filling Curves, Next: Soundex, Prev: Hashing, Up: Sorting and Searching + | 7.2.7 Space-Filling Curves -------------------------- * Menu: -* Hilbert Space-Filling Curve:: Non-negative coordinates -* Peano Space-Filling Curve:: Integer coordinates -* Sierpinski Curve:: +* Multidimensional Space-Filling Curves:: Includes Hilbert and Peano curves +* Hilbert Space-Filling Curve:: Legacy +* Peano Space-Filling Curve:: Legacy +* Sierpinski Curve:: Rank-2 to scalar -File: slib.info, Node: Hilbert Space-Filling Curve, Next: Peano Space-Filling Curve, Prev: Space-Filling Curves, Up: Space-Filling Curves - -7.2.7.1 Hilbert Space-Filling Curve +File: slib-3b5.info, Node: Multidimensional Space-Filling Curves, Next: Hilbert Space-Filling Curve, Prev: Space-Filling Curves, Up: Space-Filling Curves + | +7.2.7.1 Multidimensional Space-Filling Curves | +............................................. | + | +`(require 'space-filling)' | + | + The algorithms and cell properties are described in | +`http://people.csail.mit.edu/jaffer/Geometry/RMDSFF.pdf' | + | + -- Function: make-cell type rank side precession | + -- Function: make-cell type rank side | + -- Function: make-cell type rank | + TYPE must be the symbol `diagonal', `adjacent', or `centered'. | + RANK must be an integer larger than 1. SIDE, if present, must be | + an even integer larger than 1 if TYPE is `adjacent' or an odd | + integer larger than 2 otherwise; SIDE defaults to the smallest | + value. PRECESSION, if present, must be an integer between 0 and | + SIDE^RANK-1; it is relevant only when TYPE is `diagonal' or | + `centered'. | + | + | + -- Function: make-cell Hamiltonian-path-vector precession | + -- Function: make-cell Hamiltonian-path-vector | + TYPE must be a vector of SIDE^RANK lists of RANK of integers | + encoding the coordinate positions of a Hamiltonian path on the | + RANK-dimensional grid of points starting and ending on corners of | + the grid. The starting corner must be the origin (all-zero | + coordinates). If the side-length is even, then the ending corner | + must be non-zero in only one coordinate; otherwise, the ending | + corner must be the furthest diagonally opposite corner from the | + origin. | + | + `make-cell' returns a data object suitable for passing as the | + first argument to `integer->coordinates' or `coordinates->integer'. | + | + Hilbert, Peano, and centered Peano cells are generated respectively | +by: | + (make-cell 'adjacent RANK 2) ; Hilbert | + (make-cell 'diagonal RANK 3) ; Peano | + (make-cell 'centered RANK 3) ; centered Peano | + | + In the conversion procedures, if the cell is `diagonal' or | +`adjacent', then the coordinates and scalar must be nonnegative | +integers. If `centered', then the integers can be negative. | + | + -- Function: integer->coordinates cell u | + `integer->coordinates' converts the integer U to a list of | + coordinates according to CELL. | + | + -- Function: coordinates->integer cell v | + `coordinates->integer' converts the list of coordinates V to an | + integer according to CELL. | + | + COORDINATES->INTEGER and INTEGER->COORDINATES are inverse functions | +when passed the same CELL argument. | + | + +File: slib-3b5.info, Node: Hilbert Space-Filling Curve, Next: Peano Space-Filling Curve, Prev: Multidimensional Space-Filling Curves, Up: Space-Filling Curves + | +7.2.7.2 Hilbert Space-Filling Curve | ................................... `(require 'hilbert-fill)' @@ -14664,6 +14855,7 @@ For any exact nonnegative integer SCALAR and exact integer RANK > 2, `integer->hilbert-coordinates' for SCALAR arguments 0 and 1 will differ in the first element. + -- Function: integer->hilbert-coordinates scalar rank k SCALAR must be a nonnegative integer of no more than `RANK*K' bits. @@ -14678,7 +14870,7 @@ For any exact nonnegative integer SCALAR and exact integer RANK > 2, Returns an exact non-negative integer corresponding to COORDS, a list of non-negative integer coordinates. -7.2.7.2 Gray code +7.2.7.3 Gray code | ................. A "Gray code" is an ordering of non-negative integers in which exactly @@ -14714,7 +14906,7 @@ of Hilbert space-filling curves. of `(integer->gray-code k1)' and `(integer->gray-code k2)' will return the same value as the corresponding predicate of K1 and K2. -7.2.7.3 Bitwise Lamination +7.2.7.4 Bitwise Lamination | .......................... -- Function: delaminate-list count ks @@ -14730,9 +14922,9 @@ of Hilbert space-filling curves. => (7 6 5 4 0 0 0 0) -File: slib.info, Node: Peano Space-Filling Curve, Next: Sierpinski Curve, Prev: Hilbert Space-Filling Curve, Up: Space-Filling Curves - -7.2.7.4 Peano Space-Filling Curve +File: slib-3b5.info, Node: Peano Space-Filling Curve, Next: Sierpinski Curve, Prev: Hilbert Space-Filling Curve, Up: Space-Filling Curves + | +7.2.7.5 Peano Space-Filling Curve | ................................. `(require 'peano-fill)' @@ -14758,9 +14950,9 @@ File: slib.info, Node: Peano Space-Filling Curve, Next: Sierpinski Curve, Pre coordinates. -File: slib.info, Node: Sierpinski Curve, Prev: Peano Space-Filling Curve, Up: Space-Filling Curves - -7.2.7.5 Sierpinski Curve +File: slib-3b5.info, Node: Sierpinski Curve, Prev: Peano Space-Filling Curve, Up: Space-Filling Curves + | +7.2.7.6 Sierpinski Curve | ........................ `(require 'sierpinski)' @@ -14810,8 +15002,8 @@ File: slib.info, Node: Sierpinski Curve, Prev: Peano Space-Filling Curve, Up: -File: slib.info, Node: Soundex, Next: String Search, Prev: Space-Filling Curves, Up: Sorting and Searching - +File: slib-3b5.info, Node: Soundex, Next: String Search, Prev: Space-Filling Curves, Up: Sorting and Searching + | 7.2.8 Soundex ------------- @@ -14854,8 +15046,8 @@ File: slib.info, Node: Soundex, Next: String Search, Prev: Space-Filling Curv (map soundex '("Tchebysheff" "Chebyshev")) => ("T212" "C121") -File: slib.info, Node: String Search, Next: Sequence Comparison, Prev: Soundex, Up: Sorting and Searching - +File: slib-3b5.info, Node: String Search, Next: Sequence Comparison, Prev: Soundex, Up: Sorting and Searching + | 7.2.9 String Search ------------------- @@ -14917,8 +15109,8 @@ File: slib.info, Node: String Search, Next: Sequence Comparison, Prev: Sounde Returns the number of `#\newline' characters in string STR. -File: slib.info, Node: Sequence Comparison, Prev: String Search, Up: Sorting and Searching - +File: slib-3b5.info, Node: Sequence Comparison, Prev: String Search, Up: Sorting and Searching + | 7.2.10 Sequence Comparison -------------------------- @@ -15001,8 +15193,8 @@ known "spiff" program. ; e c h p q r -File: slib.info, Node: Procedures, Next: Standards Support, Prev: Sorting and Searching, Up: Other Packages - +File: slib-3b5.info, Node: Procedures, Next: Standards Support, Prev: Sorting and Searching, Up: Other Packages + | 7.3 Procedures ============== @@ -15019,8 +15211,8 @@ up here. * Metric Units:: Portable manifest types for numeric values. -File: slib.info, Node: Type Coercion, Next: String-Case, Prev: Procedures, Up: Procedures - +File: slib-3b5.info, Node: Type Coercion, Next: String-Case, Prev: Procedures, Up: Procedures + | 7.3.1 Type Coercion ------------------- @@ -15035,8 +15227,8 @@ File: slib.info, Node: Type Coercion, Next: String-Case, Prev: Procedures, U these symbols). -File: slib.info, Node: String-Case, Next: String Ports, Prev: Type Coercion, Up: Procedures - +File: slib-3b5.info, Node: String-Case, Next: String Ports, Prev: Type Coercion, Up: Procedures + | 7.3.2 String-Case ----------------- @@ -15083,8 +15275,8 @@ File: slib.info, Node: String-Case, Next: String Ports, Prev: Type Coercion, -File: slib.info, Node: String Ports, Next: Line I/O, Prev: String-Case, Up: Procedures - +File: slib-3b5.info, Node: String Ports, Next: Line I/O, Prev: String-Case, Up: Procedures + | 7.3.3 String Ports ------------------ @@ -15103,8 +15295,8 @@ File: slib.info, Node: String Ports, Next: Line I/O, Prev: String-Case, Up: closed and the value yielded by the procedure PROC is returned. -File: slib.info, Node: Line I/O, Next: Multi-Processing, Prev: String Ports, Up: Procedures - +File: slib-3b5.info, Node: Line I/O, Next: Multi-Processing, Prev: String Ports, Up: Procedures + | 7.3.4 Line I/O -------------- @@ -15150,8 +15342,8 @@ File: slib.info, Node: Line I/O, Next: Multi-Processing, Prev: String Ports, programs which generate lots of output is unspecified. -File: slib.info, Node: Multi-Processing, Next: Metric Units, Prev: Line I/O, Up: Procedures - +File: slib-3b5.info, Node: Multi-Processing, Next: Metric Units, Prev: Line I/O, Up: Procedures + | 7.3.5 Multi-Processing ---------------------- @@ -15178,14 +15370,14 @@ implementation, consider it an example of writing schedulers in Scheme. `process:queue', `(slib:exit)' is called (*note System::). -File: slib.info, Node: Metric Units, Prev: Multi-Processing, Up: Procedures - +File: slib-3b5.info, Node: Metric Units, Prev: Multi-Processing, Up: Procedures + | 7.3.6 Metric Units ------------------ `(require 'metric-units)' - `http://swiss.csail.mit.edu/~jaffer/MIXF' + `http://people.csail.mit.edu/jaffer/MIXF' "Metric Interchange Format" is a character string encoding for numerical values and units which: @@ -15372,8 +15564,8 @@ multiple (not submultiple) prefixes can also be used with B (byte). (si:conversion-factor "km/h" "mph" ) => -2 -File: slib.info, Node: Standards Support, Next: Session Support, Prev: Procedures, Up: Other Packages - +File: slib-3b5.info, Node: Standards Support, Next: Session Support, Prev: Procedures, Up: Other Packages + | 7.4 Standards Support ===================== @@ -15394,8 +15586,8 @@ File: slib.info, Node: Standards Support, Next: Session Support, Prev: Proced * SRFI:: 'http://srfi.schemers.org/srfi-0/srfi-0.html -File: slib.info, Node: RnRS, Next: With-File, Prev: Standards Support, Up: Standards Support - +File: slib-3b5.info, Node: RnRS, Next: With-File, Prev: Standards Support, Up: Standards Support + | 7.4.1 RnRS ---------- @@ -15427,8 +15619,8 @@ version of Scheme. namely `values', `macro', and `eval'. -File: slib.info, Node: With-File, Next: Transcripts, Prev: RnRS, Up: Standards Support - +File: slib-3b5.info, Node: With-File, Next: Transcripts, Prev: RnRS, Up: Standards Support + | 7.4.2 With-File --------------- @@ -15439,8 +15631,8 @@ File: slib.info, Node: With-File, Next: Transcripts, Prev: RnRS, Up: Standar Description found in R4RS. -File: slib.info, Node: Transcripts, Next: Rev2 Procedures, Prev: With-File, Up: Standards Support - +File: slib-3b5.info, Node: Transcripts, Next: Rev2 Procedures, Prev: With-File, Up: Standards Support + | 7.4.3 Transcripts ----------------- @@ -15452,8 +15644,8 @@ File: slib.info, Node: Transcripts, Next: Rev2 Procedures, Prev: With-File, and `newline'. -File: slib.info, Node: Rev2 Procedures, Next: Rev4 Optional Procedures, Prev: Transcripts, Up: Standards Support - +File: slib-3b5.info, Node: Rev2 Procedures, Next: Rev4 Optional Procedures, Prev: Transcripts, Up: Standards Support + | 7.4.4 Rev2 Procedures --------------------- @@ -15504,8 +15696,8 @@ Scheme->C, for instance, chokes on this module. without the trailing `?'. -File: slib.info, Node: Rev4 Optional Procedures, Next: Multi-argument / and -, Prev: Rev2 Procedures, Up: Standards Support - +File: slib-3b5.info, Node: Rev4 Optional Procedures, Next: Multi-argument / and -, Prev: Rev2 Procedures, Up: Standards Support + | 7.4.5 Rev4 Optional Procedures ------------------------------ @@ -15523,8 +15715,8 @@ procedures: (r4rs)Standard procedures. -- Procedure: vector-fill! s obj -File: slib.info, Node: Multi-argument / and -, Next: Multi-argument Apply, Prev: Rev4 Optional Procedures, Up: Standards Support - +File: slib-3b5.info, Node: Multi-argument / and -, Next: Multi-argument Apply, Prev: Rev4 Optional Procedures, Up: Standards Support + | 7.4.6 Multi-argument / and - ---------------------------- @@ -15538,8 +15730,8 @@ operations: (r4rs)Numerical operations. -- Function: - minuend subtrahend1 ... -File: slib.info, Node: Multi-argument Apply, Next: Rationalize, Prev: Multi-argument / and -, Up: Standards Support - +File: slib-3b5.info, Node: Multi-argument Apply, Next: Rationalize, Prev: Multi-argument / and -, Up: Standards Support + | 7.4.7 Multi-argument Apply -------------------------- @@ -15551,8 +15743,8 @@ For the specification of this optional form, *Note Control features: -- Function: apply proc arg1 ... -File: slib.info, Node: Rationalize, Next: Promises, Prev: Multi-argument Apply, Up: Standards Support - +File: slib-3b5.info, Node: Rationalize, Next: Promises, Prev: Multi-argument Apply, Up: Standards Support + | 7.4.8 Rationalize ----------------- @@ -15584,8 +15776,8 @@ of the numerator and denominator. (find-ratio-between -3/5 -2/7) => (-1 2) -File: slib.info, Node: Promises, Next: Dynamic-Wind, Prev: Rationalize, Up: Standards Support - +File: slib-3b5.info, Node: Promises, Next: Dynamic-Wind, Prev: Rationalize, Up: Standards Support + | 7.4.9 Promises -------------- @@ -15606,8 +15798,8 @@ File: slib.info, Node: Promises, Next: Dynamic-Wind, Prev: Rationalize, Up: (*note Control features: (r4rs)Control features.). -File: slib.info, Node: Dynamic-Wind, Next: Eval, Prev: Promises, Up: Standards Support - +File: slib-3b5.info, Node: Dynamic-Wind, Next: Eval, Prev: Promises, Up: Standards Support + | 7.4.10 Dynamic-Wind ------------------- @@ -15636,8 +15828,8 @@ designed to take into account the fact that continuations produced by the time of the error or interrupt. -File: slib.info, Node: Eval, Next: Values, Prev: Dynamic-Wind, Up: Standards Support - +File: slib-3b5.info, Node: Eval, Next: Values, Prev: Dynamic-Wind, Up: Standards Support + | 7.4.11 Eval ----------- @@ -15719,8 +15911,8 @@ Here are some more `eval' examples: => buick -File: slib.info, Node: Values, Next: SRFI, Prev: Eval, Up: Standards Support - +File: slib-3b5.info, Node: Values, Next: SRFI, Prev: Eval, Up: Standards Support + | 7.4.12 Values ------------- @@ -15743,8 +15935,8 @@ File: slib.info, Node: Values, Next: SRFI, Prev: Eval, Up: Standards Support unspecified. -File: slib.info, Node: SRFI, Prev: Values, Up: Standards Support - +File: slib-3b5.info, Node: SRFI, Prev: Values, Up: Standards Support + | 7.4.13 SRFI ----------- @@ -15775,38 +15967,40 @@ Implements "Scheme Request For Implementation" (SRFI) as described at * SRFI-1:: list-processing - * SRFI-2 *Note Guarded LET* special form:: + * SRFI-2 *note Guarded LET* special form:: - * SRFI-8 *Note Binding to multiple values:: + * SRFI-8 *note Binding to multiple values:: - * SRFI-9 *Note Define-Record-Type:: + * SRFI-9 *note Define-Record-Type:: - * SRFI-11 *Note Binding to multiple values:: + * SRFI-11 *note Binding to multiple values:: * SRFI-23 `(define error slib:error)' - * SRFI-28 *Note Format:: + * SRFI-28 *note Format:: - * SRFI-47 *Note Arrays:: + * SRFI-39 *note Parameter Objects:: | + | + * SRFI-47 *note Arrays:: - * SRFI-59 *Note Vicinity:: + * SRFI-59 *note Vicinity:: - * SRFI-60 *Note Bit-Twiddling:: + * SRFI-60 *note Bit-Twiddling:: - * SRFI-61 *Note Guarded COND Clause:: + * SRFI-61 *note Guarded COND Clause:: - * SRFI-63 *Note Arrays:: + * SRFI-63 *note Arrays:: - * SRFI-94 *Note Irrational Integer Functions:: and *Note Irrational + * SRFI-94 *note Irrational Integer Functions:: and *note Irrational Real Functions:: - * SRFI-95 *Note Sorting:: + * SRFI-95 *note Sorting:: - * SRFI-96 *Note Universal SLIB Procedures:: | - | - -File: slib.info, Node: SRFI-1, Prev: SRFI, Up: SRFI + * SRFI-96 *note Universal SLIB Procedures:: + +File: slib-3b5.info, Node: SRFI-1, Prev: SRFI, Up: SRFI + | 7.4.13.1 SRFI-1 ............... @@ -16027,8 +16221,8 @@ its list arguments. -- Procedure: lset-diff+intersection! = list1 list2 ... -File: slib.info, Node: Session Support, Next: System Interface, Prev: Standards Support, Up: Other Packages - +File: slib-3b5.info, Node: Session Support, Next: System Interface, Prev: Standards Support, Up: Other Packages + | 7.5 Session Support =================== @@ -16047,8 +16241,8 @@ If `(provided? 'abort)': * Trace:: 'trace -File: slib.info, Node: Repl, Next: Quick Print, Prev: Session Support, Up: Session Support - +File: slib-3b5.info, Node: Repl, Next: Quick Print, Prev: Session Support, Up: Session Support + | 7.5.1 Repl ---------- @@ -16082,8 +16276,8 @@ catching lines and the following lines to your Scheme init file: (repl:top-level macro:eval) -File: slib.info, Node: Quick Print, Next: Debug, Prev: Repl, Up: Session Support - +File: slib-3b5.info, Node: Quick Print, Next: Debug, Prev: Repl, Up: Session Support + | 7.5.2 Quick Print ----------------- @@ -16095,7 +16289,7 @@ limited. This section supplies a procedure to do this. It could be much improved. Notice that the neccessity for truncating output eliminates - Common-Lisp's *Note Format:: from consideration; even when + Common-Lisp's *note Format:: from consideration; even when variables `*print-level*' and `*print-level*' are set, huge strings and bit-vectors are _not_ limited. @@ -16115,8 +16309,8 @@ much improved. `write'n; procedures will be indicated by `#[proc]'. -File: slib.info, Node: Debug, Next: Breakpoints, Prev: Quick Print, Up: Session Support - +File: slib-3b5.info, Node: Debug, Next: Breakpoints, Prev: Quick Print, Up: Session Support + | 7.5.3 Debug ----------- @@ -16149,8 +16343,8 @@ printer for `qp'. This example shows how to do this: top-level in `file' .... -File: slib.info, Node: Breakpoints, Next: Trace, Prev: Debug, Up: Session Support - +File: slib-3b5.info, Node: Breakpoints, Next: Trace, Prev: Debug, Up: Session Support + | 7.5.4 Breakpoints ----------------- @@ -16210,8 +16404,8 @@ supported by your implementation, these might be more convenient to use. (set! SYMBOL (unbreakf SYMBOL)) -File: slib.info, Node: Trace, Prev: Breakpoints, Up: Session Support - +File: slib-3b5.info, Node: Trace, Prev: Breakpoints, Up: Session Support + | 7.5.5 Tracing ------------- @@ -16309,8 +16503,8 @@ supported by your implementation, these might be more convenient to use. (set! SYMBOL (untracef SYMBOL)) -File: slib.info, Node: System Interface, Next: Extra-SLIB Packages, Prev: Session Support, Up: Other Packages - +File: slib-3b5.info, Node: System Interface, Next: Extra-SLIB Packages, Prev: Session Support, Up: Other Packages + | 7.6 System Interface ==================== @@ -16325,14 +16519,15 @@ If `(provided? 'system)': -- Function: system command-string Executes the COMMAND-STRING on the computer and returns the - integer status code. + integer status code. This behaves the same as the POSIX `system' + call. + +If `(provided? 'program-arguments)': + + -- Function: program-arguments + Returns a list of strings, the first of which is the program name + followed by the command-line arguments. -If `(provided? 'program-arguments)': | - | - -- Function: program-arguments | - Returns a list of strings, the first of which is the program name | - followed by the command-line arguments. | - | * Menu: * Directories:: @@ -16340,8 +16535,8 @@ If `(provided? 'program-arguments)': | * CVS:: -File: slib.info, Node: Directories, Next: Transactions, Prev: System Interface, Up: System Interface - +File: slib-3b5.info, Node: Directories, Next: Transactions, Prev: System Interface, Up: System Interface + | 7.6.1 Directories ----------------- @@ -16366,10 +16561,12 @@ File: slib.info, Node: Directories, Next: Transactions, Prev: System Interfac the filenames is unspecified. The value returned by `directory-for-each' is unspecified. + -- Function: directory-for-each proc directory pred Applies PROC only to those filenames for which the procedure PRED returns a non-false value. + -- Function: directory-for-each proc directory match Applies PROC only to those filenames for which `(filename:match?? MATCH)' would return a non-false value (*note Filenames: @@ -16381,9 +16578,18 @@ File: slib.info, Node: Directories, Next: Transactions, Prev: System Interfac "Bev2slib.scm" "Template.scm" + -- Function: directory*-for-each proc path-glob | + PATH-GLOB is a pathname whose last component is a (wildcard) | + pattern (*note Filenames: (slib)Filenames.). PROC must be a | + procedure taking one argument. `directory*-for-each' applies PROC | + to the (string) name of each file in the current directory. The | + dynamic order in which PROC is applied to the filenames is | + unspecified. The value returned by `directory*-for-each' is | + unspecified. | + | -File: slib.info, Node: Transactions, Next: CVS, Prev: Directories, Up: System Interface - +File: slib-3b5.info, Node: Transactions, Next: CVS, Prev: Directories, Up: System Interface + | 7.6.2 Transactions ------------------ @@ -16450,18 +16656,18 @@ maintain and check both Emacs and Word certificates. the locks and returns `#t'. Otherwise, `file-unlock!' leaves the file system unaltered and returns `#f'. - -- Function: describe-file-lock path prefix | - -- Function: describe-file-lock path | - PATH must be a string naming a file. Optional argument PREFIX is | - a string printed before each line of the message. | - `describe-file-lock' prints to `(current-error-port)' that PATH is | - locked for writing and lists its lock-files. | - | - (describe-file-lock "my.txt" ">> ") | - -| | - >> "my.txt" is locked for writing by 'luser@no.com.4829:1200536423' | - >> (lock files are "~$my.txt" and ".#my.txt") | - | + -- Function: describe-file-lock path prefix + -- Function: describe-file-lock path + PATH must be a string naming a file. Optional argument PREFIX is + a string printed before each line of the message. + `describe-file-lock' prints to `(current-error-port)' that PATH is + locked for writing and lists its lock-files. + + (describe-file-lock "my.txt" ">> ") + -| + >> "my.txt" is locked for writing by 'luser@no.com.4829:1200536423' + >> (lock files are "~$my.txt" and ".#my.txt") + File Transactions ................. @@ -16531,8 +16737,8 @@ Identification #f is returned. -File: slib.info, Node: CVS, Prev: Transactions, Up: System Interface - +File: slib-3b5.info, Node: CVS, Prev: Transactions, Up: System Interface + | 7.6.3 CVS --------- @@ -16568,8 +16774,8 @@ File: slib.info, Node: CVS, Prev: Transactions, Up: System Interface or any subdirectory do not match. -File: slib.info, Node: Extra-SLIB Packages, Prev: System Interface, Up: Other Packages - +File: slib-3b5.info, Node: Extra-SLIB Packages, Prev: System Interface, Up: Other Packages + | 7.7 Extra-SLIB Packages ======================= @@ -16588,72 +16794,65 @@ reasons why a package might not be included in the SLIB distribution: * Because I have been too busy to integrate it. Once an optional package is installed (and an entry added to -`*catalog*'), the `require' mechanism allows it to be called up and | -used as easily as any other SLIB package. Some optional packages (for | -which `*catalog*' already has entries) available from SLIB sites are: | +`*catalog*'), the `require' mechanism allows it to be called up and +used as easily as any other SLIB package. Some optional packages (for +which `*catalog*' already has entries) available from SLIB sites are: SLIB-PSD is a portable debugger for Scheme (requires emacs editor). - - http://swiss.csail.mit.edu/ftpdir/scm/slib-psd1-3.tar.gz - - swiss.csail.mit.edu:/pub/scm/slib-psd1-3.tar.gz - - ftp.maths.tcd.ie:pub/bosullvn/jacal/slib-psd1-3.tar.gz - - ftp.cs.indiana.edu:/pub/scheme-repository/utl/slib-psd1-3.tar.gz - + `http://groups.csail.mit.edu/mac/ftpdir/scm/slib-psd1-3.tar.gz' | + `ftp://ftp.cs.indiana.edu/pub/scheme-repository/utl/slib-psd1-3.tar.gz' | With PSD, you can run a Scheme program in an Emacs buffer, set breakpoints, single step evaluation and access and modify the - program's variables. It works by instrumenting the original source - code, so it should run with any R4RS compliant Scheme. It has been + program's variables. It works by instrumenting the original source + code, so it should run with any R4RS compliant Scheme. It has been tested with SCM, Elk 1.5, and the sci interpreter in the Scheme->C - system, but should work with other Schemes with a minimal amount - of porting, if at all. Includes documentation and user's manual. - Written by Pertti Kellom\"aki, pk @ cs.tut.fi. The Lisp Pointers - article describing PSD (Lisp Pointers VI(1):15-23, January-March - 1993) is available as - http://www.cs.tut.fi/staff/pk/scheme/psd/article/article.html + system, but should work with other Schemes with a minimal amount of | + porting, if at all. Includes documentation and user's manual. | + Written by Pertti Kelloma"ki, the Lisp Pointers article describing | + PSD (Lisp Pointers VI(1):15-23, January-March 1993) is available at | + `http://www.cs.tut.fi/staff/pk/scheme/psd/article/article.html' | SCHELOG is an embedding of Prolog in Scheme. - http://www.ccs.neu.edu/~dorai/schelog/schelog.html + `http://www.ccs.neu.edu/~dorai/schelog/schelog.html' | JFILTER is a Scheme program which converts text among the JIS, EUC, and Shift-JIS Japanese character sets. - http://www.sci.toyama-u.ac.jp/~iwao/Scheme/Jfilter/index.html + `http://www.math.u-toyama.ac.jp/~iwao/Scheme/Jfilter' | -File: slib.info, Node: About SLIB, Next: Index, Prev: Other Packages, Up: Top - +File: slib-3b5.info, Node: About SLIB, Next: Index, Prev: Other Packages, Up: Top + | 8 About SLIB ************ More people than I can name have contributed to SLIB. Thanks to all of you! - SLIB 3b1, released February 2008. | - Aubrey Jaffer <agj @ alum.mit.edu> + SLIB 3b5, released January 2015. | + 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' + `http://people.csail.mit.edu/jaffer/SLIB' + + SLIB is part of the GNU project. - SLIB is part of the GNU project. | - | * Menu: * Installation:: How to install SLIB on your system. * The SLIB script:: Run interactive SLIB sessions. * Porting:: SLIB to new platforms. +* Compiled and Implementation-Specific Features:: * Coding Guidelines:: How to write modules for SLIB. * Copyrights:: Intellectual propery issues. * About this manual:: -File: slib.info, Node: Installation, Next: The SLIB script, Prev: About SLIB, Up: About SLIB - +File: slib-3b5.info, Node: Installation, Next: The SLIB script, Prev: About SLIB, Up: About SLIB + | 8.1 Installation ================ @@ -16663,13 +16862,13 @@ There are five parts to installation: * Install documentation and `slib' script. - * Configure the Scheme implementation(s) to locate the SLIB directory | - and implementation directories. | + * Configure the Scheme implementation(s) to locate the SLIB directory + and implementation directories. - * Arrange for Scheme implementation to load its SLIB initialization - file. + * Arrange for each Scheme implementation to load its SLIB | + initialization file. | - * Build the SLIB catalog for the Scheme implementation. + * Build the SLIB catalog for each Scheme implementation. | 8.1.1 Unpacking the SLIB Distribution ------------------------------------- @@ -16683,7 +16882,7 @@ home directory (if only you will use this SLIB installation); or put it in a location where libraries reside on your system. On unix systems this might be `/usr/share/slib', `/usr/local/lib/slib', or `/usr/lib/slib'. If you know where SLIB should go on other platforms, -please inform agj @ alum.mit.edu. +please inform agj@alum.mit.edu. 8.1.2 Install documentation and slib script ------------------------------------------- @@ -16696,41 +16895,48 @@ please inform agj @ alum.mit.edu. If the Scheme implementation supports `getenv', then the value of the shell environment variable SCHEME_LIBRARY_PATH will be used for -`(library-vicinity)' if it is defined. Currently, Bigloo, Chez, Elk, | -Gambit, Guile, Jscheme, Larceny, MITScheme, MzScheme, RScheme, STk, | -VSCM, and SCM support `getenv'. Scheme48 supports `getenv' but does | -not use it for determining `library-vicinity'. (That is done from the | -Makefile.) | - - The `(library-vicinity)' can also be set from the SLIB initialization | -file or by implementation-specific means. | - | - Support for locating an implementation's auxiliary directory is uneven | -among implementations. Also, the person installing SLIB may not have | -write permission to some of these directories (necessary for writing | -slibcat). Therefore, those implementations supporting `getenv' (except | -SCM and Scheme48) provide a means for specifying the | -`implementation-vicinity' through environment variables. Define the | -indicated environment variable to the pathname (with trailing slash or | -backslash) of the desired directory. Do not use `slib/' as an | -implementation-vicinity! | - | -Bigloo BIGLOO_IMPLEMENTATION_PATH | -Chez CHEZ_IMPLEMENTATION_PATH | -ELK ELK_IMPLEMENTATION_PATH | -Gambit GAMBIT_IMPLEMENTATION_PATH | -Guile GUILE_IMPLEMENTATION_PATH | -Jscheme JSCHEME_IMPLEMENTATION_PATH | -MIT-Scheme MITSCHEME_IMPLEMENTATION_PATH | -MzScheme MZSCHEME_IMPLEMENTATION_PATH | -RScheme RSCHEME_IMPLEMENTATION_PATH | -STk STK_IMPLEMENTATION_PATH | -Vscm VSCM_IMPLEMENTATION_PATH | - -8.1.4 Loading SLIB Initialization File +`(library-vicinity)' if it is defined. Currently, Bigloo, Chez, Elk, +Gambit, Gauche, Guile, Jscheme, Larceny, MITScheme, MzScheme, RScheme, | +S7, STk, VSCM, and SCM support `getenv'. Scheme48 supports `getenv' | +but does not use it for determining `library-vicinity'. (That is done | +from the Makefile.) | + + The `(library-vicinity)' can also be set from the SLIB initialization +file or by implementation-specific means. + +8.1.4 Configure Scheme Implementation to Locate and Implementation Directory | +---------------------------------------------------------------------------- | + | +Support for locating an implementation's auxiliary directory is uneven +among implementations. Also, the person installing SLIB may not have +write permission to some of these directories (necessary for writing +slibcat). Therefore, those implementations supporting `getenv' (except +SCM and Scheme48) provide a means for specifying the +`implementation-vicinity' through environment variables. Define the +indicated environment variable to the pathname (with trailing slash or +backslash) of the desired directory. Do not use `slib/' as an +implementation-vicinity! + +Bigloo BIGLOO_IMPLEMENTATION_PATH +Chez CHEZ_IMPLEMENTATION_PATH +ELK ELK_IMPLEMENTATION_PATH +Gambit GAMBIT_IMPLEMENTATION_PATH +Guile GUILE_IMPLEMENTATION_PATH +Jscheme JSCHEME_IMPLEMENTATION_PATH +MIT-Scheme MITSCHEME_IMPLEMENTATION_PATH +MzScheme MZSCHEME_IMPLEMENTATION_PATH +RScheme RSCHEME_IMPLEMENTATION_PATH +S7 S7_IMPLEMENTATION_PATH | +STk STK_IMPLEMENTATION_PATH +Vscm VSCM_IMPLEMENTATION_PATH + +8.1.5 Loading SLIB Initialization File | -------------------------------------- -Check the manifest in `README' to find a configuration file for your +If you use the `slib' script to start your SLIB session, then this step | +is unnecessary. | + | + Check the manifest in `README' to find a configuration file for your Scheme implementation. Initialization files for most IEEE P1178 compliant Scheme Implementations are included with this distribution. @@ -16742,8 +16948,8 @@ the file for how to configure it. Once this is done, modify the startup file for your Scheme implementation to `load' this initialization file. -8.1.5 Build New SLIB Catalog for Implementation ------------------------------------------------ +8.1.6 Build New SLIB Catalog for the Implementation | +--------------------------------------------------- | When SLIB is first used from an implementation, a file named `slibcat' is written to the `implementation-vicinity' for that implementation. @@ -16763,7 +16969,7 @@ SLIB-installed scheme implementation, type: (require 'new-catalog) (slib:exit) -8.1.6 Implementation-specific Instructions +8.1.7 Implementation-specific Instructions | ------------------------------------------ Multiple implementations of Scheme can all use the same SLIB directory. @@ -16775,37 +16981,43 @@ above. SLIB support is already built into SCM. See the documentation with SCM for installation instructions. - -- Implementation: Larceny | - Starting with version 0.96, Larceny contains its own SLIB | - initialization file, loaded by `(require 'srfi-96)'. If | - SCHEME_LIBRARY_PATH is not set, then Larceny looks for an `slib' | - subdirectory of a directory in the list returned by | - `(current-require-path)' | - | - larceny -- -e "(require 'srfi-96)" | + -- Implementation: Larceny + Starting with version 0.96, Larceny contains its own SLIB + initialization file, loaded by `(require 'srfi-96)'. If + SCHEME_LIBRARY_PATH is not set, then Larceny looks for an `slib' + subdirectory of a directory in the list returned by + `(current-require-path)' + + larceny -- -e "(require 'srfi-96)" + + -- Implementation: Gauche-0.9 | + Gauche also supports SLIB. It finds SLIB at installation time; | + `(use slib)' to enable. | | - -- Implementation: ELK | - elk -i -l ${SCHEME_LIBRARY_PATH}elk.init | + gosh -u slib | | + -- Implementation: ELK + elk -i -l ${SCHEME_LIBRARY_PATH}elk.init + -- Implementation: PLT Scheme -- Implementation: DrScheme -- Implementation: MzScheme The `init.ss' file in the _slibinit_ collection is an SLIB - initialization file. To run SLIB in MzScheme: | + initialization file. To run SLIB in MzScheme: - mzscheme -f ${SCHEME_LIBRARY_PATH}mzscheme.init | + mzscheme -f ${SCHEME_LIBRARY_PATH}mzscheme.init -- Implementation: MIT Scheme - scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init | + scheme -load ${SCHEME_LIBRARY_PATH}mitscheme.init -- Implementation: Gambit-C 3.0 - gsi -:s ${SCHEME_LIBRARY_PATH}gambit.init - | - | - -- Implementation: SISC | - sisc -e "(load \"${SCHEME_LIBRARY_PATH}sisc.init\")" -- | - | - -- Implementation: Kawa | - kawa -f ${SCHEME_LIBRARY_PATH}kawa.init -- | + gsi -:s ${SCHEME_LIBRARY_PATH}gambit.init - + + -- Implementation: SISC + sisc -e "(load \"${SCHEME_LIBRARY_PATH}sisc.init\")" -- + + -- Implementation: Kawa + kawa -f ${SCHEME_LIBRARY_PATH}kawa.init -- -- Implementation: Guile Guile versions 1.6 and earlier link to an archaic SLIB version. In @@ -16821,10 +17033,21 @@ above. `${SCHEME_LIBRARY_PATH}' is where SLIB gets installed. - Guile with SLIB can then be started thus: + Guile before version 1.8 with SLIB can then be started thus: | - guile -l ${SCHEME_LIBRARY_PATH}guile.init | + guile -l ${SCHEME_LIBRARY_PATH}guile.init + Guile version 1.8 and after with SLIB can then be started thus: | + | + guile -l ${SCHEME_LIBRARY_PATH}guile.init \ | + -l ${SCHEME_LIBRARY_PATH}guile.use | + | + The Guile manual has a different way of installing SLIB: | + | +`http://www.gnu.org/software/guile/manual/html_node/SLIB-installation.html' | + | + | + | -- Implementation: Scheme48 To make a Scheme48 image for an installation under `<prefix>', @@ -16853,20 +17076,28 @@ above. 3. `(slib:dump "dumpfile")' - 4. mv dumpfile place-where-vscm-standard-bootfile-resides. For | - example: | + 4. mv dumpfile place-where-vscm-standard-bootfile-resides. For + example: - `mv dumpfile /usr/local/vscm/lib/scheme-boot' | - | - In this case vscm should have been compiled with flag: | + `mv dumpfile /usr/local/vscm/lib/scheme-boot' + + In this case vscm should have been compiled with flag: + + -DDEFAULT_BOOTFILE='"/usr/local/vscm/lib/scheme-boot"' + + See Makefile (definition of DDP) for details. + + -- Implementation: S7 | + S7 is not a standalone implementation, but runs as the extension | + language for the Snd sound editor. | + `${SCHEME_LIBRARY_PATH}s7.init' can be loaded from the Snd init | + file or on the Snd command line thus: | | - -DDEFAULT_BOOTFILE='"/usr/local/vscm/lib/scheme-boot"' | + snd -l ${SCHEME_LIBRARY_PATH}s7.init | | - See Makefile (definition of DDP) for details. | - -File: slib.info, Node: The SLIB script, Next: Porting, Prev: Installation, Up: About SLIB - +File: slib-3b5.info, Node: The SLIB script, Next: Porting, Prev: Installation, Up: About SLIB + | 8.2 The SLIB script =================== @@ -16882,8 +17113,8 @@ to run. Absent the argument, it searches for implementations in the above order. -File: slib.info, Node: Porting, Next: Coding Guidelines, Prev: The SLIB script, Up: About SLIB - +File: slib-3b5.info, Node: Porting, Next: Compiled and Implementation-Specific Features, Prev: The SLIB script, Up: About SLIB + | 8.3 Porting =========== @@ -16895,6 +17126,9 @@ compliant with `Revised^5 Report on the Algorithmic Language Scheme' in order to support SLIB. (1) +`http://cvs.savannah.gnu.org/viewcvs/*checkout*/scm/scm/r4rstest.scm' +is a file which checks compliance with much of R4RS. + `Template.scm' is an example configuration file. The comments inside will direct you on how to customize it to reflect your system. Give your new initialization file the implementation's name with `.init' @@ -16905,12 +17139,12 @@ initialization file might be called `foo.init'. implementation's initialization. It will load `require.scm' from the library; this will allow the use of `provide', `provided?', and `require' along with the "vicinity" functions (these functions are -documented in the sections *Note Feature:: and *Note Require::). The +documented in the sections *note Feature:: and *note Require::). The rest of the library will then be accessible in a system independent fashion. - Please mail new working configuration files to `agj @ alum.mit.edu' -so that they can be included in the SLIB distribution. + Please mail new working configuration files to `agj@alum.mit.edu' so | +that they can be included in the SLIB distribution. | ---------- Footnotes ---------- @@ -16919,9 +17153,32 @@ Language Scheme' implementation, then you will need to finish writing `sc4sc3.scm' and `load' it from your initialization file. -File: slib.info, Node: Coding Guidelines, Next: Copyrights, Prev: Porting, Up: About SLIB +File: slib-3b5.info, Node: Compiled and Implementation-Specific Features, Next: Coding Guidelines, Prev: Porting, Up: About SLIB + | +8.4 Compiled and Implementation-Specific Features +================================================= + +Often an implementation can implement an SLIB feature more efficiently +than the R4RS-compliant source code in SLIB. Alternatively, +implementations with compilers can compile SLIB source code into binary +files which run faster than loading source code. + + Additionally, the SLIB catalog can be augmented with extra-SLIB +features which can be loaded by the implementation. The catalog format +is described in *Note Library Catalogs::. + + These implementation-specific modifications are made when a new +catalog is created (*note Catalog Creation::). If `mkimpcat.scm' in +`implementation-invicinity' exists, it is loaded. That should produce +the file `implcat' in `implementation-invicinity', whose associations +will override those of SLIB. `implcat' is copied into `slibcat' in +`implementation-vicinity' as part of the catalog creation process; +modifications to `implcat' after that will have no effect. -8.4 Coding Guidelines + +File: slib-3b5.info, Node: Coding Guidelines, Next: Copyrights, Prev: Compiled and Implementation-Specific Features, Up: About SLIB + | +8.5 Coding Guidelines ===================== All library packages are written in IEEE P1178 Scheme and assume that a @@ -16943,7 +17200,7 @@ name. Do not export internal aliases. comments (*note Schmooz::) or `;@' at the beginning of the line immediately preceding the definition (`define', `define-syntax', or `defmacro'). Modules, exports and other relevant issues are discussed -in *Note Compiling Scheme::. +in *note Compiling Scheme::. Code submitted for inclusion in SLIB should not duplicate (more than one) routines already in SLIB files. Use `require' to force those @@ -16956,7 +17213,7 @@ but documentation must be provided. which tests your code. Please run this test _before_ you send me the code! -8.4.1 Modifications +8.5.1 Modifications ------------------- Please document your changes. A line or two for `ChangeLog' is @@ -16978,9 +17235,9 @@ not have the time to fish through 10000 diffs to find your 10 real fixes. -File: slib.info, Node: Copyrights, Next: About this manual, Prev: Coding Guidelines, Up: About SLIB - -8.5 Copyrights +File: slib-3b5.info, Node: Copyrights, Next: About this manual, Prev: Coding Guidelines, Up: About SLIB + | +8.6 Copyrights ============== This section has instructions for SLIB authors regarding copyrights. @@ -16993,12 +17250,12 @@ modify it. The comments at the beginning of `require.scm' and If your code or changes amount to less than about 10 lines, you do not need to add your copyright or send a disclaimer. -8.5.1 Putting code into the Public Domain +8.6.1 Putting code into the Public Domain ----------------------------------------- In order to put code in the public domain you should sign a copyright -disclaimer and send it to the SLIB maintainer. Contact agj @ -alum.mit.edu for the address to mail the disclaimer to. +disclaimer and send it to the SLIB maintainer. Contact | +agj@alum.mit.edu for the address to mail the disclaimer to. | I, <MY-NAME>, hereby affirm that I have placed the software package <NAME> in the public domain. @@ -17018,10 +17275,10 @@ revisions of that module. Make sure no employer has any claim to the copyright on the work you are submitting. If there is any doubt, create a copyright disclaimer and have your employer sign it. Mail the signed disclaimer to the SLIB -maintainer. Contact agj @ alum.mit.edu for the address to mail the +maintainer. Contact agj@alum.mit.edu for the address to mail the disclaimer to. An example disclaimer follows. -8.5.2 Explicit copying terms +8.6.2 Explicit copying terms ---------------------------- If you submit more than about 10 lines of code which you are not @@ -17036,10 +17293,10 @@ placing into the Public Domain (by sending me a disclaimer) you need to: * Make sure no employer has any claim to the copyright on the work you are submitting. If there is any doubt, create a copyright disclaimer and have your employer sign it. Mail the signed - disclaim to the SLIB maintainer. Contact agj @ alum.mit.edu for - the address to mail the disclaimer to. + disclaim to the SLIB maintainer. Contact agj@alum.mit.edu for the | + address to mail the disclaimer to. | -8.5.3 Example: Company Copyright Disclaimer +8.6.3 Example: Company Copyright Disclaimer ------------------------------------------- This disclaimer should be signed by a vice president or general manager @@ -17057,11 +17314,11 @@ license out software produced there will do. Here is a sample wording: <NAME>, <TITLE>, <EMPLOYER> Corporation -File: slib.info, Node: About this manual, Prev: Copyrights, Up: About SLIB - -8.6 About this manual -===================== +File: slib-3b5.info, Node: About this manual, Prev: Copyrights, Up: About SLIB | +8.7 About this manual +===================== + * 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. @@ -17069,24 +17326,24 @@ File: slib.info, Node: About this manual, Prev: Copyrights, Up: About SLIB * Examples in this text were produced using the `scm' Scheme implementation. - * At the beginning of each section, there is a line that looks like: | - (require 'feature) | - Include this line in your code prior to using the package. | - | + * At the beginning of each section, there is a line that looks like: + (require 'feature) + Include this line in your code prior to using the package. + * Menu: - | + * GNU Free Documentation License:: -File: slib.info, Node: GNU Free Documentation License, Prev: About this manual, Up: About this manual +File: slib-3b5.info, Node: GNU Free Documentation License, Prev: About this manual, Up: About this manual | -8.6.1 GNU Free Documentation License | ------------------------------------- | +8.7.1 GNU Free Documentation License +------------------------------------ - Version 1.2, November 2002 + Version 1.3, 3 November 2008 - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + `http://fsf.org/' Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -17188,6 +17445,9 @@ File: slib.info, Node: GNU Free Documentation License, Prev: About this manual Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. + The "publisher" means any person or entity that distributes copies + of the Document to the public. + 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 @@ -17453,12 +17713,29 @@ File: slib.info, Node: GNU Free Documentation License, Prev: About this manual 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. + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense, or distribute it is void, + and will automatically terminate your rights under this License. + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from + that copyright holder, and you cure the violation prior to 30 days + after your receipt of the notice. + + Termination of your rights under this section does not terminate + the licenses of parties who have received copies or rights from + you under this License. If your rights have been terminated and + not permanently reinstated, receipt of a copy of some or all of + the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE @@ -17476,10 +17753,44 @@ File: slib.info, Node: GNU Free Documentation License, Prev: About this manual 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. + Free Software Foundation. If the Document specifies that a proxy + can decide which future versions of this License can be used, that + proxy's public statement of acceptance of a version permanently + authorizes you to choose that version for the Document. + + 11. RELICENSING + + "Massive Multiauthor Collaboration Site" (or "MMC Site") means any + World Wide Web server that publishes copyrightable works and also + provides prominent facilities for anybody to edit those works. A + public wiki that anybody can edit is an example of such a server. + A "Massive Multiauthor Collaboration" (or "MMC") contained in the + site means any set of copyrightable works thus published on the MMC + site. + + "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 + license published by Creative Commons Corporation, a not-for-profit + corporation with a principal place of business in San Francisco, + California, as well as future copyleft versions of that license + published by that same organization. -ADDENDUM: How to use this License for your documents | -==================================================== | + "Incorporate" means to publish or republish a Document, in whole or + in part, as part of another Document. + + An MMC is "eligible for relicensing" if it is licensed under this + License, and if all works that were first published under this + License somewhere other than this MMC, and subsequently + incorporated in whole or in part into the MMC, (1) had no cover + texts or invariant sections, and (2) were thus incorporated prior + to November 1, 2008. + + The operator of an MMC Site may republish an MMC contained in the + site under CC-BY-SA on the same site at any time before August 1, + 2009, provided the MMC is eligible for relicensing. + + +ADDENDUM: 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 @@ -17487,7 +17798,7 @@ 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 + under the terms of the GNU Free Documentation License, Version 1.3 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 @@ -17510,8 +17821,8 @@ 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 - +File: slib-3b5.info, Node: Index, Prev: About SLIB, Up: Top + | Index ***** @@ -17530,7 +17841,7 @@ Procedure and Macro Index * <=?: Rev2 Procedures. (line 46) * <?: Rev2 Procedures. (line 45) * =: Hilbert Space-Filling Curve. - (line 72) + (line 73) | * =?: Rev2 Procedures. (line 47) * >=?: Rev2 Procedures. (line 49) * >?: Rev2 Procedures. (line 48) @@ -17560,7 +17871,7 @@ Procedure and Macro Index * absolute-path?: URI. (line 102) * absolute-uri?: URI. (line 98) * add-command-tables: Database Extension. (line 11) -* add-domain: Using Databases. (line 131) +* add-domain: Using Databases. (line 132) * add-domain on relational-database: Command Intrinsics. (line 10) * add-macro-support: Within-database. (line 52) * add-process!: Multi-Processing. (line 14) @@ -17604,7 +17915,7 @@ Procedure and Macro Index * array-rank: Arrays. (line 44) * array-ref: Arrays. (line 136) * array-set!: Arrays. (line 139) -* array-trim: Subarrays. (line 48) +* array-trim: Subarrays. (line 47) * array:copy!: Array Mapping. (line 60) * array?: Arrays. (line 9) * asctime: Posix Time. (line 62) @@ -17613,8 +17924,8 @@ Procedure and Macro Index * 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) +* attlist-add: Parsing XML. (line 452) +* attlist-remove-top: Parsing XML. (line 457) * batch:call-with-output-script: Batch. (line 47) * batch:command: Batch. (line 64) * batch:comment: Batch. (line 95) @@ -17635,7 +17946,7 @@ Procedure and Macro Index * bitwise-not: Bit-Twiddling. (line 46) * bitwise-xor: Bit-Twiddling. (line 37) * blackbody-spectrum: Spectra. (line 128) -* booleans->integer: Bit-Twiddling. (line 239) +* booleans->integer: Bit-Twiddling. (line 238) * break <1>: Breakpoints. (line 28) * break: SRFI-1. (line 151) * break!: SRFI-1. (line 153) @@ -17643,7 +17954,7 @@ Procedure and Macro Index * breakf: Breakpoints. (line 47) * breakpoint: Breakpoints. (line 16) * browse: Database Browser. (line 9) -* browse-url: System. (line 60) +* browse-url: System. (line 61) * butlast: Lists as sequences. (line 121) * butnthcdr: Lists as sequences. (line 147) * byte-ref: Byte. (line 14) @@ -17667,16 +17978,16 @@ Procedure and Macro Index * call-with-output-string: String Ports. (line 9) * call-with-tmpnam: Filenames. (line 74) * call-with-values: Values. (line 13) -* capture-syntactic-environment: Syntactic Closures. (line 211) +* capture-syntactic-environment: Syntactic Closures. (line 212) * car+cdr: SRFI-1. (line 68) * cart-prod-tables on relational-database: Database Operations. - (line 78) + (line 77) * 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 37) * cdna:report-base-count: NCBI-DNA. (line 41) -* cgi:serve-query: HTTP and CGI. (line 69) +* cgi:serve-query: HTTP and CGI. (line 72) * chap:next-string: Chapter Ordering. (line 29) * chap:string<=?: Chapter Ordering. (line 25) * chap:string<?: Chapter Ordering. (line 14) @@ -17698,31 +18009,31 @@ Procedure and Macro Index * CIEXYZ->xRGB: Color Conversions. (line 50) * circular-list: SRFI-1. (line 32) * circular-list?: SRFI-1. (line 40) -* cksum: Cyclic Checksum. (line 149) +* cksum: Cyclic Checksum. (line 150) * clear-sky-color-xyy: Daylight. (line 84) * clip-to-rect: Rectangles. (line 36) * close-base on base-table: The Base. (line 60) -* close-database: Using Databases. (line 89) +* close-database: Using Databases. (line 90) * close-database on relational-database: Database Operations. (line 20) * close-port: Input/Output. (line 47) * close-table on relational-table: Table Administration. (line 20) * CMC-DE: Color Difference Metrics. - (line 61) + (line 63) | * CMC:DE*: Color Difference Metrics. - (line 65) + (line 67) | * codons<-cdna: NCBI-DNA. (line 20) * coerce: Type Coercion. (line 12) * collection?: Collections. (line 36) * color->ciexyz: Color Spaces. (line 34) -* color->e-srgb: Color Spaces. (line 252) -* color->l*a*b*: Color Spaces. (line 91) -* color->l*c*h: Color Spaces. (line 166) -* color->l*u*v*: Color Spaces. (line 115) +* color->e-srgb: Color Spaces. (line 260) +* color->l*a*b*: Color Spaces. (line 92) +* color->l*c*h: Color Spaces. (line 171) +* color->l*u*v*: Color Spaces. (line 118) * color->rgb709: Color Spaces. (line 55) -* color->srgb: Color Spaces. (line 209) +* color->srgb: Color Spaces. (line 215) * color->string: Color Data-Type. (line 95) -* color->xrgb: Color Spaces. (line 212) +* color->xrgb: Color Spaces. (line 218) * color-dictionaries->lookup: Color Names. (line 33) * color-dictionary: Color Names. (line 40) * color-name->color: Color Names. (line 27) @@ -17731,13 +18042,13 @@ Procedure and Macro Index * color-space: Color Data-Type. (line 43) * color-white-point: Color Data-Type. (line 51) * color:ciexyz: Color Spaces. (line 30) -* color:e-srgb: Color Spaces. (line 241) +* color:e-srgb: Color Spaces. (line 247) * color:l*a*b*: Color Spaces. (line 83) -* color:l*c*h: Color Spaces. (line 159) -* color:l*u*v*: Color Spaces. (line 107) +* color:l*c*h: Color Spaces. (line 163) +* color:l*u*v*: Color Spaces. (line 109) * color:linear-transform: Color Conversions. (line 27) * color:rgb709: Color Spaces. (line 51) -* color:srgb: Color Spaces. (line 200) +* color:srgb: Color Spaces. (line 206) * color?: Color Data-Type. (line 9) * column-domains on relational-table: Table Administration. (line 9) @@ -17760,6 +18071,8 @@ Procedure and Macro Index * cons*: SRFI-1. (line 22) * continue: Breakpoints. (line 20) * convert-color: Color Data-Type. (line 54) +* coordinates->integer: Multidimensional Space-Filling Curves. + (line 52) | * copy-bit: Bit-Twiddling. (line 154) * copy-bit-field: Bit-Twiddling. (line 177) * copy-list: List construction. (line 32) @@ -17768,23 +18081,23 @@ Procedure and Macro Index * copy-tree: Tree Operations. (line 33) * count: SRFI-1. (line 106) * count-newlines: String Search. (line 61) -* crc16: Cyclic Checksum. (line 167) -* crc5: Cyclic Checksum. (line 178) -* crc:make-table: Cyclic Checksum. (line 131) +* crc16: Cyclic Checksum. (line 168) +* crc5: Cyclic Checksum. (line 179) +* crc:make-table: Cyclic Checksum. (line 132) * create-array: Arrays. (line 66) * create-database: Using Databases. (line 43) * create-database on relational-system: Relational Database Objects. (line 34) * create-postscript-graph: PostScript Graphing. (line 17) -* create-table on relational-database: Database Operations. (line 64) -* create-view on relational-database: Database Operations. (line 75) +* create-table on relational-database: Database Operations. (line 63) +* create-view on relational-database: Database Operations. (line 74) * cring:define-rule: Commutative Rings. (line 116) * ctime: Posix Time. (line 68) * current-directory: Directories. (line 9) * current-error-port: Input/Output. (line 70) * current-input-port <1>: Byte. (line 94) * current-input-port: Ruleset Definition and Use. - (line 57) + (line 61) * current-output-port: Byte. (line 86) * current-time: Time and Date. (line 20) * cvs-directories: CVS. (line 14) @@ -17801,7 +18114,7 @@ Procedure and Macro Index * define-*commands*: Database Extension. (line 16) * define-access-operation: Setters. (line 53) * define-command: Within-database. (line 17) -* define-domains: Using Databases. (line 124) +* define-domains: Using Databases. (line 125) * define-macro: Within-database. (line 58) * define-operation: Yasos interface. (line 7) * define-predicate: Yasos interface. (line 12) @@ -17809,14 +18122,14 @@ Procedure and Macro Index * define-structure: Define-Structure. (line 12) * define-syntax: Macro by Example. (line 39) * define-table: Within-database. (line 26) -* define-tables: Using Databases. (line 134) -* defmacro: Defmacro. (line 40) +* define-tables: Using Databases. (line 135) +* defmacro: Defmacro. (line 41) * defmacro:eval: Defmacro. (line 15) -* defmacro:expand*: Defmacro. (line 51) +* defmacro:expand*: Defmacro. (line 52) * defmacro:load: Defmacro. (line 19) -* defmacro?: Defmacro. (line 27) +* defmacro?: Defmacro. (line 28) * delaminate-list: Hilbert Space-Filling Curve. - (line 89) + (line 90) | * delay: Promises. (line 15) * delete: Destructive list operations. (line 58) @@ -17832,7 +18145,7 @@ Procedure and Macro Index (line 59) * delete-if-not: Destructive list operations. (line 60) -* delete-table on relational-database: Database Operations. (line 59) +* delete-table on relational-database: Database Operations. (line 58) * dequeue!: Queues. (line 28) * dequeue-all!: Queues. (line 36) * describe-file-lock: Transactions. (line 70) @@ -17845,6 +18158,7 @@ Procedure and Macro Index * diff:edits: Sequence Comparison. (line 45) * diff:longest-common-subsequence: Sequence Comparison. (line 32) * difftime: Time and Date. (line 26) +* directory*-for-each: Directories. (line 45) * directory-for-each: Directories. (line 21) * do-elts: Collections. (line 41) * do-keys: Collections. (line 57) @@ -17858,7 +18172,7 @@ Procedure and Macro Index * dynamic-wind: Dynamic-Wind. (line 13) * dynamic?: Dynamic Data Type. (line 12) * e-sRGB->CIEXYZ: Color Conversions. (line 57) -* e-srgb->color: Color Spaces. (line 235) +* e-srgb->color: Color Spaces. (line 241) * e-sRGB->e-sRGB: Color Conversions. (line 68) * e-sRGB->sRGB: Color Conversions. (line 60) * eighth: SRFI-1. (line 64) @@ -17885,7 +18199,7 @@ Procedure and Macro Index * fft-1: Discrete Fourier Transform. (line 34) * fifth: SRFI-1. (line 61) -* file->color-dictionary: Color Names. (line 68) +* file->color-dictionary: Color Names. (line 69) * file->definitions: Module Manifests. (line 72) * file->exports: Module Manifests. (line 84) * file->loads: Module Manifests. (line 53) @@ -17912,7 +18226,7 @@ Procedure and Macro Index * find-tail: SRFI-1. (line 145) * first: SRFI-1. (line 53) * first-set-bit: Bit-Twiddling. (line 110) -* fluid-let: Fluid-Let. (line 9) +* fluid-let: Fluid-Let. (line 13) * fold: SRFI-1. (line 111) * fold-right: SRFI-1. (line 113) * for-each-elt: Collections. (line 67) @@ -17958,15 +18272,15 @@ Procedure and Macro Index * gmtime: Posix Time. (line 36) * golden-section-search: Minimizing. (line 18) * gray-code->integer: Hilbert Space-Filling Curve. - (line 65) + (line 66) | * gray-code<=?: Hilbert Space-Filling Curve. - (line 75) + (line 76) | * gray-code<?: Hilbert Space-Filling Curve. - (line 73) + (line 74) | * gray-code>=?: Hilbert Space-Filling Curve. - (line 76) + (line 77) | * gray-code>?: Hilbert Space-Filling Curve. - (line 74) + (line 75) | * grey: Color Names. (line 13) * grid-horizontals: Legending. (line 58) * grid-verticals: Legending. (line 54) @@ -17985,7 +18299,7 @@ Procedure and Macro Index * heap-insert!: Priority Queues. (line 19) * heap-length: Priority Queues. (line 16) * hilbert-coordinates->integer: Hilbert Space-Filling Curve. - (line 45) + (line 46) | * histograph: Character Plotting. (line 83) * home-vicinity: Vicinity. (line 51) * htm-fields: Parsing HTML. (line 58) @@ -18023,21 +18337,21 @@ Procedure and Macro Index * http:forwarding-page: HTTP and CGI. (line 26) * http:header: HTTP and CGI. (line 9) * http:serve-query: HTTP and CGI. (line 36) -* identifier=?: Syntactic Closures. (line 369) -* identifier?: Syntactic Closures. (line 334) +* identifier=?: Syntactic Closures. (line 370) +* identifier?: Syntactic Closures. (line 335) * identity: Miscellany. (line 9) * ieee-byte-collate: Byte/Number Conversions. - (line 152) + (line 153) | * ieee-byte-collate!: Byte/Number Conversions. - (line 143) + (line 144) | * ieee-byte-decollate: Byte/Number Conversions. - (line 156) + (line 157) | * ieee-byte-decollate!: Byte/Number Conversions. - (line 148) + (line 149) | * ieee-double->bytes: Byte/Number Conversions. - (line 98) + (line 99) | * ieee-float->bytes: Byte/Number Conversions. - (line 80) + (line 81) | * illuminant-map: Spectra. (line 80) * illuminant-map->XYZ: Spectra. (line 85) * implementation-vicinity: Vicinity. (line 42) @@ -18046,17 +18360,19 @@ Procedure and Macro Index * init-debug: Breakpoints. (line 9) * integer->bytes: Byte/Number Conversions. (line 29) +* integer->coordinates: Multidimensional Space-Filling Curves. + (line 48) | * integer->gray-code: Hilbert Space-Filling Curve. - (line 62) + (line 63) | * integer->hilbert-coordinates: Hilbert Space-Filling Curve. (line 30) * integer->list: Bit-Twiddling. (line 225) * integer->peano-coordinates: Peano Space-Filling Curve. (line 19) * integer-byte-collate: Byte/Number Conversions. - (line 137) + (line 138) | * integer-byte-collate!: Byte/Number Conversions. - (line 131) + (line 132) | * integer-expt: Irrational Integer Functions. (line 9) * integer-length: Bit-Twiddling. (line 98) @@ -18082,14 +18398,14 @@ Procedure and Macro Index * L*a*b*->L*C*h: Color Conversions. (line 44) * L*a*b*:DE*: Color Difference Metrics. (line 17) -* l*c*h->color: Color Spaces. (line 154) -* L*C*h->L*a*b*: Color Conversions. (line 45) -* L*C*h:DE*94: Color Difference Metrics. +* L*a*b*:DE*94: Color Difference Metrics. (line 25) +* l*c*h->color: Color Spaces. (line 158) +* L*C*h->L*a*b*: Color Conversions. (line 45) * L*u*v*->CIEXYZ: Color Conversions. (line 34) -* l*u*v*->color: Color Spaces. (line 102) -* laguerre:find-polynomial-root: Root Finding. (line 54) -* laguerre:find-root: Root Finding. (line 43) +* l*u*v*->color: Color Spaces. (line 104) +* laguerre:find-polynomial-root: Root Finding. (line 57) +* laguerre:find-root: Root Finding. (line 46) * last <1>: SRFI-1. (line 83) * last: Lists as sequences. (line 111) * last-pair: Miscellany. (line 64) @@ -18112,7 +18428,7 @@ Procedure and Macro Index * list-copy: SRFI-1. (line 24) * list-index: SRFI-1. (line 157) * list-of??: Lists as sets. (line 120) -* list-table-definition: Using Databases. (line 167) +* list-table-definition: Using Databases. (line 168) * list-tabulate: SRFI-1. (line 18) * list-tail: Rev4 Optional Procedures. (line 12) @@ -18121,7 +18437,7 @@ Procedure and Macro Index (line 77) * load->path: Module Manifests. (line 63) * load-ciexyz: Spectra. (line 40) -* load-color-dictionary: Color Names. (line 52) +* load-color-dictionary: Color Names. (line 53) * localtime: Posix Time. (line 39) * log2-binary-factors: Bit-Twiddling. (line 109) * logand: Bit-Twiddling. (line 18) @@ -18156,14 +18472,16 @@ Procedure and Macro Index * macro:load <2>: Syntactic Closures. (line 20) * macro:load <3>: Macros That Work. (line 24) * macro:load: R4RS Macros. (line 23) -* macroexpand: Defmacro. (line 31) -* macroexpand-1: Defmacro. (line 30) +* macroexpand: Defmacro. (line 32) +* macroexpand-1: Defmacro. (line 31) * macwork:eval: Macros That Work. (line 19) * macwork:expand: Macros That Work. (line 14) * macwork:load: Macros That Work. (line 25) * make-array: Arrays. (line 54) * make-base on base-table: The Base. (line 19) * make-bytes: Byte. (line 23) +* make-cell: Multidimensional Space-Filling Curves. + (line 12) | * make-color: Color Data-Type. (line 30) * make-command-server: Command Service. (line 7) * make-directory: Directories. (line 17) @@ -18195,10 +18513,10 @@ Procedure and Macro Index * make-promise: Promises. (line 9) * make-putter on base-table: Base Record Operations. (line 31) -* make-query-alist-command-server: HTTP and CGI. (line 86) +* make-query-alist-command-server: HTTP and CGI. (line 92) * make-queue: Queues. (line 13) * make-random-state: Exact Random Numbers. - (line 44) + (line 45) | * make-record-type: Records. (line 12) * make-rectangular: Irrational Real Functions. (line 93) @@ -18207,8 +18525,8 @@ Procedure and Macro Index * make-ruleset: Commutative Rings. (line 82) * make-shared-array: Arrays. (line 69) * make-sierpinski-indexer: Sierpinski Curve. (line 9) -* make-slib-color-name-db: Color Names. (line 94) -* make-syntactic-closure: Syntactic Closures. (line 177) +* make-slib-color-name-db: Color Names. (line 95) +* make-syntactic-closure: Syntactic Closures. (line 178) * make-table on base-table: Base Tables. (line 7) * make-uri: URI. (line 12) * make-vicinity: Vicinity. (line 21) @@ -18226,10 +18544,10 @@ Procedure and Macro Index * matrix->array: Matrix Algebra. (line 15) * matrix->lists: Matrix Algebra. (line 12) * matrix:difference: Matrix Algebra. (line 33) -* matrix:inverse: Matrix Algebra. (line 45) +* matrix:inverse: Matrix Algebra. (line 47) * matrix:product: Matrix Algebra. (line 36) * matrix:sum: Matrix Algebra. (line 30) -* mdbm:report: Using Databases. (line 94) +* mdbm:report: Using Databases. (line 95) * member: SRFI-1. (line 159) * member-if: Lists as sets. (line 62) * merge: Sorting. (line 62) @@ -18246,6 +18564,8 @@ Procedure and Macro Index * modular:invertable?: Modular Arithmetic. (line 44) * modular:negate: Modular Arithmetic. (line 52) * modular:normalize: Modular Arithmetic. (line 23) +* modulo: Irrational Integer Functions. + (line 29) | * mrna<-cdna: NCBI-DNA. (line 17) * must-be-first: Batch. (line 128) * must-be-last: Batch. (line 133) @@ -18255,8 +18575,8 @@ Procedure and Macro Index * ncbi:read-file: NCBI-DNA. (line 13) * nconc: Destructive list operations. (line 10) -* newton:find-integer-root: Root Finding. (line 9) -* newton:find-root: Root Finding. (line 26) +* newton:find-integer-root: Root Finding. (line 12) +* newton:find-root: Root Finding. (line 29) * ninth: SRFI-1. (line 65) * not-pair?: SRFI-1. (line 46) * notany: Lists as sets. (line 105) @@ -18282,10 +18602,10 @@ Procedure and Macro Index * open-database!: Using Databases. (line 68) * open-file <1>: Byte. (line 77) * open-file: Input/Output. (line 18) -* open-table: Using Databases. (line 107) +* open-table: Using Databases. (line 108) * open-table on base-table: Base Tables. (line 16) -* open-table on relational-database: Database Operations. (line 52) -* open-table!: Using Databases. (line 114) +* open-table on relational-database: Database Operations. (line 51) +* open-table!: Using Databases. (line 115) * operate-as: Yasos interface. (line 31) * or?: Non-List functions. (line 19) * ordered-for-each-key on base-table: Base ISAM Operations. @@ -18316,8 +18636,9 @@ Procedure and Macro Index * plot <1>: Legacy Plotting. (line 11) * plot: Character Plotting. (line 17) * plot-column: Drawing the Graph. (line 7) +* plot-text-column: Drawing the Graph. (line 59) * pnm:array-write: Portable Image Files. - (line 44) + (line 45) | * pnm:image-file->array: Portable Image Files. (line 35) * pnm:type-dimensions: Portable Image Files. @@ -18371,9 +18692,9 @@ Procedure and Macro Index * printf: Standard Formatted Output. (line 9) * process:schedule!: Multi-Processing. (line 20) -* program-arguments: System Interface. (line 22) +* program-arguments: System Interface. (line 23) * program-vicinity: Vicinity. (line 30) -* project-table on relational-database: Database Operations. (line 76) +* project-table on relational-database: Database Operations. (line 75) * proper-list?: SRFI-1. (line 38) * protein<-cdna: NCBI-DNA. (line 25) * provide: Feature. (line 58) @@ -18389,6 +18710,8 @@ Procedure and Macro Index * queue?: Queues. (line 16) * quo: Irrational Real Functions. (line 50) +* quotient: Irrational Integer Functions. + (line 27) | * random: Exact Random Numbers. (line 9) * random:exp: Inexact Random Numbers. @@ -18446,6 +18769,8 @@ Procedure and Macro Index * reduce-init: Lists as sequences. (line 61) * rem: Irrational Real Functions. (line 51) +* remainder: Irrational Integer Functions. + (line 28) | * remove <1>: SRFI-1. (line 134) * remove: Lists as sets. (line 153) * remove!: SRFI-1. (line 138) @@ -18457,17 +18782,19 @@ Procedure and Macro Index * repl:quit: Repl. (line 17) * repl:top-level: Repl. (line 11) * replace-suffix: Filenames. (line 65) -* require <1>: Catalog Creation. (line 48) +* require <1>: Catalog Creation. (line 50) * require: Require. (line 25) * require-if: Require. (line 40) * resample-array!: Array Interpolation. (line 19) -* resene: Color Names. (line 129) -* restrict-table on relational-database: Database Operations. (line 77) +* resene: Color Names. (line 130) +* restrict-table on relational-database: Database Operations. (line 76) * reverse!: SRFI-1. (line 93) * 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 202) +* round-quotient: Irrational Integer Functions. + (line 32) | * row:delete on relational-table: Single Row Operations. (line 50) * row:delete* on relational-table: Multi-Row Operations. @@ -18490,7 +18817,7 @@ Procedure and Macro Index (line 47) * rule-horizontal: Legending. (line 40) * rule-vertical: Legending. (line 32) -* saturate: Color Names. (line 109) +* saturate: Color Names. (line 110) * scanf: Standard Formatted Input. (line 13) * scanf-read-list: Standard Formatted Input. @@ -18505,18 +18832,18 @@ 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 67) -* secant:find-root: Root Finding. (line 66) +* secant:find-bracketed-root: Root Finding. (line 70) +* secant:find-root: Root Finding. (line 69) * second: SRFI-1. (line 55) * seed->random-state: Exact Random Numbers. - (line 35) + (line 36) | * set: Setters. (line 30) * set-color: Graphics Context. (line 11) * set-difference: Lists as sets. (line 42) * set-font: Graphics Context. (line 18) -* set-glyphsize: Graphics Context. (line 48) -* set-linedash: Graphics Context. (line 39) -* set-linewidth: Graphics Context. (line 34) +* set-glyphsize: Graphics Context. (line 58) +* set-linedash: Graphics Context. (line 47) +* set-linewidth: Graphics Context. (line 42) * set-margin-templates: Legending. (line 27) * Setter: Collections. (line 108) * setter: Setters. (line 22) @@ -18533,17 +18860,17 @@ Procedure and Macro Index * size <1>: Collections. (line 105) * size: Yasos interface. (line 41) * sky-color-xyy: Daylight. (line 85) -* slib:error: System. (line 45) +* slib:error: System. (line 46) * slib:eval: System. (line 30) * slib:eval-load: System. (line 35) -* slib:exit: System. (line 51) +* slib:exit: System. (line 52) * slib:in-catalog?: Require. (line 57) * slib:load: System. (line 20) * slib:load-compiled: System. (line 15) * slib:load-source: System. (line 9) * slib:report: Configuration. (line 43) * slib:report-version: Configuration. (line 36) -* slib:warn: System. (line 42) +* slib:warn: System. (line 43) * snap-range: Column Ranges. (line 16) * software-type: Configuration. (line 32) * solar-declination: Daylight. (line 21) @@ -18565,13 +18892,13 @@ Procedure and Macro Index * 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:rotation: Solid Modeling. (line 433) +* solid:scale: Solid Modeling. (line 429) * 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) +* solid:translation: Solid Modeling. (line 424) +* solidify-database: Using Databases. (line 87) * solidify-database on relational-database: Database Operations. (line 42) * some: Lists as sets. (line 73) @@ -18588,38 +18915,38 @@ Procedure and Macro Index * sprintf: Standard Formatted Output. (line 11) * sRGB->CIEXYZ: Color Conversions. (line 48) -* srgb->color: Color Spaces. (line 195) +* srgb->color: Color Spaces. (line 201) * 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:assert-token: Parsing XML. (line 631) +* ssax:complete-start-tag: Parsing XML. (line 518) +* ssax:handle-parsed-entity: Parsing XML. (line 437) * 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:make-elem-parser: Parsing XML. (line 668) +* ssax:make-parser: Parsing XML. (line 715) +* ssax:make-pi-parser: Parsing XML. (line 648) * 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:read-attributes: Parsing XML. (line 461) +* ssax:read-cdata-body: Parsing XML. (line 386) +* ssax:read-char-data: Parsing XML. (line 590) +* ssax:read-char-ref: Parsing XML. (line 416) +* ssax:read-external-id: Parsing XML. (line 554) +* ssax:read-markup-token: Parsing XML. (line 329) +* ssax:read-ncname: Parsing XML. (line 294) +* ssax:read-pi-body-as-string: Parsing XML. (line 374) +* ssax:read-qname: Parsing XML. (line 320) +* ssax:read-string: Parsing XML. (line 111) +* ssax:resolve-name: Parsing XML. (line 505) * 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:scan-misc: Parsing XML. (line 578) +* ssax:skip-internal-dtd: Parsing XML. (line 381) +* ssax:skip-pi: Parsing XML. (line 371) +* ssax:skip-s: Parsing XML. (line 286) * ssax:skip-while: Parsing XML. (line 58) -* ssax:xml->sxml: Parsing XML. (line 803) +* ssax:xml->sxml: Parsing XML. (line 804) * sscanf: Standard Formatted Input. (line 15) * stack: Trace. (line 49) @@ -18667,12 +18994,12 @@ Procedure and Macro Index * symbol-append: String-Case. (line 23) * symmetric:modulus: Modular Arithmetic. (line 13) * sync-base on base-table: The Base. (line 53) -* sync-database: Using Databases. (line 82) +* sync-database: Using Databases. (line 83) * sync-database on relational-database: Database Operations. (line 37) * syncase:eval: Syntax-Case Macros. (line 15) * syncase:expand: Syntax-Case Macros. (line 10) * syncase:load: Syntax-Case Macros. (line 21) -* syncase:sanity-check: Syntax-Case Macros. (line 67) +* syncase:sanity-check: Syntax-Case Macros. (line 68) * synclo:eval: Syntactic Closures. (line 15) * synclo:expand: Syntactic Closures. (line 10) * synclo:load: Syntactic Closures. (line 21) @@ -18681,7 +19008,7 @@ Procedure and Macro Index * system->line: Line I/O. (line 35) * table->linked-html: HTML Tables. (line 34) * table->linked-page: HTML Tables. (line 42) -* table-exists? on relational-database: Database Operations. (line 48) +* table-exists? on relational-database: Database Operations. (line 47) * table-name->filename: HTML Tables. (line 31) * take: SRFI-1. (line 71) * take!: SRFI-1. (line 72) @@ -18697,7 +19024,6 @@ Procedure and Macro Index * title-bottom: Legending. (line 12) * title-top: Legending. (line 7) * tmpnam: Input/Output. (line 65) -* tok:bump-column: Token definition. (line 61) * tok:char-group: Token definition. (line 7) * top-refs: Top-level Variable References. (line 15) @@ -18713,7 +19039,7 @@ Procedure and Macro Index * transact-file-replacement: Transactions. (line 110) * transcript-off: Transcripts. (line 10) * transcript-on: Transcripts. (line 9) -* transformer: Syntactic Closures. (line 113) +* transformer: Syntactic Closures. (line 114) * transpose: Matrix Algebra. (line 26) * truncate-up-to: Batch. (line 113) * tsort: Topological Sort. (line 12) @@ -18742,7 +19068,7 @@ Procedure and Macro Index * uri:split-fields: URI. (line 67) * uric:decode: URI. (line 81) * uric:encode: URI. (line 76) -* url->color-dictionary: Color Names. (line 77) +* url->color-dictionary: Color Names. (line 78) * user-email-address: Transactions. (line 145) * user-vicinity: Vicinity. (line 47) * values: Values. (line 9) @@ -18767,7 +19093,7 @@ Procedure and Macro Index * write-base on base-table: The Base. (line 43) * write-byte: Byte. (line 82) * write-bytes: Byte. (line 118) -* write-database: Using Databases. (line 79) +* write-database: Using Databases. (line 80) * write-database on relational-database: Database Operations. (line 26) * write-line: Line I/O. (line 29) * wt-tree/add: Basic Operations on Weight-Balanced Trees. @@ -18822,11 +19148,12 @@ Procedure and Macro Index (line 59) * wt-tree/union: Advanced Operations on Weight-Balanced Trees. (line 25) +* wt-tree/union-merge: Advanced Operations on Weight-Balanced Trees. + (line 125) | * x-axis: Legending. (line 51) -* x1: Legacy Plotting. (line 18) * xcons: SRFI-1. (line 15) * xRGB->CIEXYZ: Color Conversions. (line 51) -* xrgb->color: Color Spaces. (line 215) +* xrgb->color: Color Spaces. (line 221) * xRGB->sRGB: Color Conversions. (line 54) * xyY->XYZ: Spectra. (line 191) * xyY:normalize-colors: Spectra. (line 193) @@ -18858,7 +19185,7 @@ Variable Index * *syn-ignore-whitespace*: Ruleset Definition and Use. (line 12) * *timezone*: Time Zone. (line 111) -* atm-hec-polynomial: Cyclic Checksum. (line 115) +* atm-hec-polynomial: Cyclic Checksum. (line 116) * bottomedge: Legending. (line 18) * char-code-limit: Configuration. (line 11) * charplot:dimensions: Character Plotting. (line 9) @@ -18868,24 +19195,22 @@ Variable Index * CIEXYZ:D50: Color Conversions. (line 17) * CIEXYZ:D65: Color Conversions. (line 13) * CIEXYZ:E: Color Conversions. (line 24) -* crc-08-polynomial: Cyclic Checksum. (line 109) -* crc-10-polynomial: Cyclic Checksum. (line 98) -* crc-12-polynomial: Cyclic Checksum. (line 77) -* crc-16-polynomial: Cyclic Checksum. (line 69) -* crc-32-polynomial: Cyclic Checksum. (line 45) -* crc-ccitt-polynomial: Cyclic Checksum. (line 61) +* crc-08-polynomial: Cyclic Checksum. (line 110) +* crc-10-polynomial: Cyclic Checksum. (line 99) +* crc-12-polynomial: Cyclic Checksum. (line 78) +* crc-16-polynomial: Cyclic Checksum. (line 70) +* crc-32-polynomial: Cyclic Checksum. (line 46) +* crc-ccitt-polynomial: Cyclic Checksum. (line 62) * D50: Color Data-Type. (line 120) * D65: Color Data-Type. (line 116) * daylight?: Time Zone. (line 117) * debug:max-count: Trace. (line 24) * distribute*: Commutative Rings. (line 100) * distribute/: Commutative Rings. (line 104) -* dowcrc-polynomial: Cyclic Checksum. (line 120) +* dowcrc-polynomial: Cyclic Checksum. (line 121) * graph:dimensions: Legacy Plotting. (line 7) * graphrect: Rectangles. (line 26) * leftedge: Legending. (line 22) -* modulo: Irrational Integer Functions. - (line 29) * most-positive-fixnum: Configuration. (line 15) * nil: Miscellany. (line 61) * number-wt-type: Construction of Weight-Balanced Trees. @@ -18893,10 +19218,6 @@ Variable Index * 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) * rightedge: Legending. (line 23) * slib:form-feed: Configuration. (line 29) * slib:tab: Configuration. (line 26) @@ -18915,7 +19236,7 @@ Variable Index * tok:whitespaces: Token definition. (line 52) * topedge: Legending. (line 17) * tzname: Time Zone. (line 123) -* usb-token-polynomial: Cyclic Checksum. (line 124) +* usb-token-polynomial: Cyclic Checksum. (line 125) Concept and Feature Index ************************* @@ -18940,9 +19261,9 @@ Concept and Feature Index * array: Arrays. (line 6) * array-for-each: Array Mapping. (line 6) * association function: Association Lists. (line 17) -* Attribute: Parsing XML. (line 460) +* Attribute: Parsing XML. (line 461) * attribute-value: HTML. (line 10) -* AttValue: Parsing XML. (line 472) +* AttValue: Parsing XML. (line 473) * Auto-sharing: Using Databases. (line 25) * balanced binary trees: Weight-Balanced Trees. (line 8) @@ -18975,15 +19296,15 @@ Concept and Feature Index * cgi: HTTP and CGI. (line 6) * chapter-order: Chapter Ordering. (line 6) * charplot: Character Plotting. (line 6) -* Chroma: Color Spaces. (line 141) +* Chroma: Color Spaces. (line 145) * cie1931: Spectra. (line 32) * cie1964: Spectra. (line 27) * ciexyz: Spectra. (line 37) * CIEXYZ: Color Spaces. (line 18) -* cksum-string: Cyclic Checksum. (line 160) +* cksum-string: Cyclic Checksum. (line 161) * coerce: Type Coercion. (line 6) * collect: Collections. (line 6) -* color-database: Color Names. (line 65) +* color-database: Color Names. (line 66) * color-names: Color Names. (line 6) * command line: Command Line. (line 10) * commentfix: Rule Types. (line 35) @@ -19011,7 +19332,7 @@ Concept and Feature Index * define-record-type: Define-Record-Type. (line 6) * defmacro: Library Catalogs. (line 31) * defmacroexpand <1>: Pretty-Print. (line 88) -* defmacroexpand: Defmacro. (line 48) +* defmacroexpand: Defmacro. (line 49) * delim: Rule Types. (line 47) * dequeues: Queues. (line 10) * determinant: Matrix Algebra. (line 6) @@ -19023,15 +19344,15 @@ Concept and Feature Index (line 18) * discrete maps, using binary trees: Weight-Balanced Trees. (line 52) -* DrScheme: Installation. (line 138) +* DrScheme: Installation. (line 151) * dynamic: Dynamic Data Type. (line 6) * dynamic-wind: Dynamic-Wind. (line 6) -* e-sRGB: Color Spaces. (line 218) -* ELK: Installation. (line 134) +* e-sRGB: Color Spaces. (line 224) +* ELK: Installation. (line 147) * emacs: Transactions. (line 33) * Encapsulated-PostScript: PostScript Graphing. (line 23) * escaped: URI. (line 77) -* EUC: Extra-SLIB Packages. (line 53) +* EUC: Extra-SLIB Packages. (line 45) * Euclidean Domain: Commutative Rings. (line 67) * eval: Eval. (line 6) * exchanger: Miscellany. (line 22) @@ -19044,11 +19365,12 @@ Concept and Feature Index * filename <1>: Batch. (line 148) * filename: Filenames. (line 6) * fluid-let: Fluid-Let. (line 6) -* fold: Parsing XML. (line 400) +* fold: Parsing XML. (line 401) * form: HTML. (line 63) * format: Format. (line 6) -* Gambit-C 3.0: Installation. (line 148) +* Gambit-C 3.0: Installation. (line 161) * gamut: Color Spaces. (line 18) +* Gauche-0.9: Installation. (line 141) * generic-write: Generic-Write. (line 6) * getenv: System Interface. (line 6) * getit: URI. (line 118) @@ -19056,12 +19378,12 @@ Concept and Feature Index * getopt: Getopt. (line 6) * getopt-parameters <1>: Command Example. (line 12) * getopt-parameters: Getopt Parameter lists. - (line 6) | + (line 6) * glob: Filenames. (line 6) * Gray code: Hilbert Space-Filling Curve. - (line 52) + (line 53) | * guarded-cond-clause: Guarded COND Clause. (line 6) -* Guile: Installation. (line 157) +* Guile: Installation. (line 170) * hash: Hashing. (line 6) * hash-table: Hash Tables. (line 6) * Hilbert: Hilbert Space-Filling Curve. @@ -19071,16 +19393,16 @@ Concept and Feature Index * hilbert-fill: Hilbert Space-Filling Curve. (line 6) * HOME <1>: Vicinity. (line 51) -* HOME: Catalog Creation. (line 19) +* HOME: Catalog Creation. (line 21) * homecat: Catalog Vicinities. (line 35) * html-for-each: Parsing HTML. (line 6) * html-form: HTML. (line 6) * http: HTTP and CGI. (line 6) -* Hue: Color Spaces. (line 143) -* ICC Profile: Color Spaces. (line 191) +* Hue: Color Spaces. (line 147) +* ICC Profile: Color Spaces. (line 197) * implcat: Catalog Vicinities. (line 23) * indexed-sequential-access-method: Byte/Number Conversions. - (line 128) + (line 129) | * inexact: Feature. (line 13) * infix: Rule Types. (line 19) * Info: Top-level Variable References. @@ -19091,16 +19413,16 @@ Concept and Feature Index * intrinsic feature: Feature. (line 9) * ISAM: Indexed Sequential Access Methods. (line 6) -* Japanese: Extra-SLIB Packages. (line 53) -* JFILTER: Extra-SLIB Packages. (line 53) -* JIS: Extra-SLIB Packages. (line 53) -* Kawa: Installation. (line 154) +* Japanese: Extra-SLIB Packages. (line 45) +* JFILTER: Extra-SLIB Packages. (line 45) +* JIS: Extra-SLIB Packages. (line 45) +* Kawa: Installation. (line 167) * L*a*b*: Color Spaces. (line 68) -* L*C*h: Color Spaces. (line 135) -* L*u*v*: Color Spaces. (line 98) +* L*C*h: Color Spaces. (line 139) +* L*u*v*: Color Spaces. (line 100) * lamination: Hilbert Space-Filling Curve. - (line 88) -* Larceny: Installation. (line 125) + (line 89) | +* Larceny: Installation. (line 132) * Left Denotation, led: Nud and Led Definition. (line 13) * let-values: Binding to multiple values. @@ -19133,7 +19455,7 @@ Concept and Feature Index * minimize: Minimizing. (line 6) * minimum field width (printf): Standard Formatted Output. (line 88) -* MIT Scheme: Installation. (line 145) +* MIT Scheme: Installation. (line 158) * mkimpcat.scm: Catalog Vicinities. (line 28) * mklibcat.scm: Catalog Vicinities. (line 16) * modular: Modular Arithmetic. (line 6) @@ -19141,10 +19463,10 @@ Concept and Feature Index (line 6) * multiarg-apply: Multi-argument Apply. (line 6) -* MzScheme: Installation. (line 139) +* MzScheme: Installation. (line 152) * nary: Rule Types. (line 23) * ncbi-dma: NCBI-DNA. (line 6) -* new-catalog: Catalog Creation. (line 48) +* new-catalog: Catalog Creation. (line 50) * nofix: Rule Types. (line 11) * null: HTML Tables. (line 92) * Null Denotation, nud: Nud and Led Definition. @@ -19170,7 +19492,7 @@ Concept and Feature Index * pgm-raw: Portable Image Files. (line 26) * plain-text: HTML. (line 14) -* PLT Scheme: Installation. (line 137) +* PLT Scheme: Installation. (line 150) * pnm: Portable Image Files. (line 6) * portable bitmap graphics: Portable Image Files. @@ -19195,9 +19517,9 @@ Concept and Feature Index * priority-queue: Priority Queues. (line 6) * PRNG: Random Numbers. (line 6) * process: Multi-Processing. (line 6) -* program-arguments <1>: System Interface. (line 19) +* program-arguments <1>: System Interface. (line 20) * program-arguments: Getopt. (line 102) -* Prolog: Extra-SLIB Packages. (line 49) +* Prolog: Extra-SLIB Packages. (line 41) * promise: Promises. (line 6) * PSD: Extra-SLIB Packages. (line 26) * qp <1>: Quick Print. (line 6) @@ -19225,9 +19547,9 @@ Concept and Feature Index * relational-database: Relational Database. (line 6) * relational-system: Using Databases. (line 53) * repl <1>: Repl. (line 6) -* repl: Syntax-Case Macros. (line 61) -* resene: Color Names. (line 126) -* Resene: Color Names. (line 95) +* repl: Syntax-Case Macros. (line 62) +* resene: Color Names. (line 127) +* Resene: Color Names. (line 96) * reset: HTML. (line 95) * rev2-procedures: Rev2 Procedures. (line 6) * rev4-optional-procedures: Rev4 Optional Procedures. @@ -19239,15 +19561,16 @@ Concept and Feature Index * run-time-loadable option: Weight-Balanced Trees. (line 69) * rwb-isam: Base Table. (line 39) -* saturate: Color Names. (line 95) +* S7: Installation. (line 238) +* saturate: Color Names. (line 96) * scanf: Standard Formatted Input. (line 6) -* SCHELOG: Extra-SLIB Packages. (line 49) +* SCHELOG: Extra-SLIB Packages. (line 41) * scheme: URI. (line 99) * Scheme Request For Implementation: SRFI. (line 8) -* Scheme48: Installation. (line 175) +* Scheme48: Installation. (line 199) * schmooz: Schmooz. (line 6) -* SCM: Installation. (line 120) +* SCM: Installation. (line 127) * script: Installation. (line 37) * self-set: Commutative Rings. (line 17) * Sequence Comparison: Sequence Comparison. (line 6) @@ -19257,7 +19580,7 @@ Concept and Feature Index (line 52) * shell: Command Line. (line 12) * sierpinski: Sierpinski Curve. (line 6) -* SISC: Installation. (line 151) +* SISC: Installation. (line 164) * sitecat: Catalog Vicinities. (line 19) * sky: Daylight. (line 6) * slib: Installation. (line 37) @@ -19270,6 +19593,8 @@ Concept and Feature Index * source: Library Catalogs. (line 18) * Space-Filling: Hilbert Space-Filling Curve. (line 8) +* space-filling: Multidimensional Space-Filling Curves. + (line 6) | * sparse: MAT-File Format. (line 15) * Spectral Tristimulus Values: Spectra. (line 24) * spiff: Sequence Comparison. (line 29) @@ -19284,23 +19609,25 @@ Concept and Feature Index (line 6) * 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-39 <1>: SRFI. (line 43) +* srfi-39: Parameter Objects. (line 6) +* srfi-47: SRFI. (line 45) +* srfi-59: SRFI. (line 47) +* srfi-60 <1>: SRFI. (line 49) * srfi-60: Bit-Twiddling. (line 6) -* srfi-61 <1>: SRFI. (line 49) +* srfi-61 <1>: SRFI. (line 51) * srfi-61: Guarded COND Clause. (line 6) -* srfi-63: SRFI. (line 51) +* srfi-63: SRFI. (line 53) * srfi-8 <1>: SRFI. (line 33) * srfi-8: Binding to multiple values. (line 6) * 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-94: SRFI. (line 55) +* srfi-95 <1>: SRFI. (line 58) * srfi-95: Sorting. (line 6) -* srfi-96: SRFI. (line 58) -* sRGB: Color Spaces. (line 189) +* srfi-96: SRFI. (line 60) +* sRGB: Color Spaces. (line 195) * stdio: Standard Formatted I/O. (line 14) * string-case: String-Case. (line 6) @@ -19347,261 +19674,264 @@ Concept and Feature Index * variable references: Top-level Variable References. (line 6) * vet: Module Analysis. (line 6) -* VSCM: Installation. (line 186) +* VSCM: Installation. (line 210) * WB: Base Table. (line 34) * wb-table: Base Table. (line 32) * weight-balanced binary trees: Weight-Balanced Trees. (line 8) -* wget: Color Names. (line 81) +* wget: Color Names. (line 82) * white point: Color Data-Type. (line 107) * wild-card: Match Keys. (line 6) * with-file: With-File. (line 6) * Word: Transactions. (line 34) * wt-tree: Weight-Balanced Trees. (line 6) -* xRGB: Color Spaces. (line 204) +* xRGB: Color Spaces. (line 210) * xyY: Spectra. (line 178) * yasos: Yasos. (line 6) Tag Table: -Node: Top844 -Node: The Library System1911 -Node: Feature2578 -Ref: Feature-Footnote-14779 -Node: Require5169 -Node: Library Catalogs7582 -Node: Catalog Creation9013 -Node: Catalog Vicinities11388 -Node: Compiling Scheme14148 -Node: Module Conventions14798 -Ref: Module Conventions-Footnote-116223 -Node: Module Manifests16469 -Node: Module Semantics21941 -Node: Top-level Variable References23559 -Ref: Top-level Variable References-Footnote-125638 -Node: Module Analysis25959 -Node: Universal SLIB Procedures27064 -Node: Vicinity27679 -Node: Configuration31534 -Node: Input/Output34506 -Node: System38461 -Node: Miscellany41631 -Node: Scheme Syntax Extension Packages43534 -Node: Defmacro44472 -Node: R4RS Macros46448 -Node: Macro by Example47712 -Node: Macros That Work50610 -Node: Syntactic Closures56604 -Node: Syntax-Case Macros74132 -Node: Define-Structure78063 -Node: Define-Record-Type80039 -Node: Fluid-Let80672 -Node: Binding to multiple values81642 -Node: Guarded LET* special form82241 -Node: Guarded COND Clause82593 -Node: Yasos84378 -Node: Yasos terms85190 -Node: Yasos interface86228 -Node: Setters88324 -Node: Yasos examples90983 -Node: Textual Conversion Packages93941 -Node: Precedence Parsing94794 -Node: Precedence Parsing Overview95479 -Ref: Precedence Parsing Overview-Footnote-196884 -Node: Rule Types97109 -Node: Ruleset Definition and Use98564 -Node: Token definition100947 -Node: Nud and Led Definition103555 -Node: Grammar Rule Definition106016 -Node: Format113612 -Node: Format Interface113891 -Node: Format Specification115641 -Node: Standard Formatted I/O126586 -Node: Standard Formatted Output127174 -Node: Standard Formatted Input136632 -Node: Programs and Arguments143309 -Node: Getopt143808 -Node: Command Line150431 -Node: Parameter lists153629 -Node: Getopt Parameter lists157535 -Node: Filenames160776 -Node: Batch164722 -Node: HTML172612 -Node: HTML Tables179054 -Node: HTTP and CGI185586 -Node: Parsing HTML190135 -Node: URI192642 -Node: Parsing XML197310 -Node: Printing Scheme230196 -Node: Generic-Write230523 -Node: Object-To-String231939 -Node: Pretty-Print232358 -Node: Time and Date235343 -Node: Time Zone236400 -Node: Posix Time241142 -Node: Common-Lisp Time243310 -Node: Time Infrastructure244936 -Node: NCBI-DNA245287 -Node: Schmooz246659 -Node: Mathematical Packages250895 -Node: Bit-Twiddling251650 -Node: Modular Arithmetic260195 -Node: Irrational Integer Functions262626 -Node: Irrational Real Functions263655 -Node: Prime Numbers267259 -Node: Random Numbers268963 -Node: Exact Random Numbers269805 -Node: Inexact Random Numbers272077 -Node: Discrete Fourier Transform273911 -Node: Cyclic Checksum276346 -Node: Graphing283976 -Node: Character Plotting284171 -Node: PostScript Graphing289683 -Node: Column Ranges291462 -Node: Drawing the Graph292941 -Node: Graphics Context294036 -Node: Rectangles295855 -Node: Legending297302 -Node: Legacy Plotting299531 -Node: Example Graph300543 -Node: Solid Modeling304910 -Node: Color324419 -Node: Color Data-Type325255 -Ref: Color Data-Type-Footnote-1328905 -Node: Color Spaces329646 -Ref: Color Spaces-Footnote-1338906 -Node: Spectra339565 -Node: Color Difference Metrics348676 -Node: Color Conversions351358 -Node: Color Names353502 -Node: Daylight360438 -Node: Root Finding365127 -Node: Minimizing369007 -Ref: Minimizing-Footnote-1370431 -Node: The Limit371049 -Node: Commutative Rings375919 -Node: Matrix Algebra387330 -Node: Database Packages388861 -Node: Relational Database389144 -Node: Using Databases390011 -Node: Table Operations396517 -Node: Single Row Operations397728 -Node: Match-Keys399975 -Node: Multi-Row Operations402054 -Node: Indexed Sequential Access Methods404445 -Node: Sequential Index Operations405453 -Node: Table Administration407809 -Node: Database Interpolation408676 -Node: Embedded Commands409778 -Node: Database Extension411352 -Node: Command Intrinsics413477 -Node: Define-tables Example415039 -Node: The *commands* Table416689 -Node: Command Service418967 -Node: Command Example420929 -Node: Database Macros425482 -Node: Within-database426367 -Node: Within-database Example429274 -Node: Database Browser431061 -Node: Relational Infrastructure432137 -Node: Base Table432441 -Node: The Base434949 -Node: Base Tables438067 -Node: Base Field Types439543 -Node: Composite Keys440326 -Node: Base Record Operations442380 -Node: Match Keys444108 -Node: Aggregate Base Operations444989 -Node: Base ISAM Operations446054 -Node: Catalog Representation447372 -Node: Relational Database Objects450041 -Node: Database Operations452685 -Node: Weight-Balanced Trees456394 -Node: Construction of Weight-Balanced Trees460280 -Node: Basic Operations on Weight-Balanced Trees463746 -Node: Advanced Operations on Weight-Balanced Trees466613 -Node: Indexing Operations on Weight-Balanced Trees472654 -Node: Other Packages476495 -Node: Data Structures477024 -Node: Arrays477865 -Node: Subarrays486552 -Node: Array Mapping488794 -Node: Array Interpolation491594 -Node: Association Lists492858 -Node: Byte495134 -Node: Byte/Number Conversions502020 -Node: MAT-File Format509546 -Node: Portable Image Files510825 -Node: Collections512455 -Node: Dynamic Data Type518569 -Node: Hash Tables519848 -Node: Object522436 -Node: Priority Queues530719 -Node: Queues531574 -Node: Records532819 -Node: Sorting and Searching536329 -Node: Common List Functions537022 -Node: List construction537479 -Node: Lists as sets539194 -Node: Lists as sequences545732 -Node: Destructive list operations550959 -Node: Non-List functions553637 -Node: Tree Operations554726 -Node: Chapter Ordering556419 -Node: Sorting558066 -Node: Topological Sort561592 -Node: Hashing563300 -Node: Space-Filling Curves564317 -Node: Hilbert Space-Filling Curve564621 -Node: Peano Space-Filling Curve568511 -Node: Sierpinski Curve569617 -Node: Soundex572081 -Node: String Search573679 -Node: Sequence Comparison576252 -Node: Procedures579382 -Node: Type Coercion579910 -Node: String-Case580342 -Node: String Ports582169 -Node: Line I/O582941 -Node: Multi-Processing584990 -Node: Metric Units586108 -Node: Standards Support594387 -Node: RnRS595183 -Node: With-File596406 -Node: Transcripts596682 -Node: Rev2 Procedures597016 -Node: Rev4 Optional Procedures598749 -Node: Multi-argument / and -599218 -Node: Multi-argument Apply599628 -Node: Rationalize599965 -Node: Promises601127 -Node: Dynamic-Wind601573 -Node: Eval602841 -Node: Values606186 -Node: SRFI607001 -Node: SRFI-1608641 -Node: Session Support613148 -Node: Repl613722 -Node: Quick Print615018 -Node: Debug616324 -Node: Breakpoints617231 -Node: Trace619273 -Node: System Interface622499 -Node: Directories623552 -Node: Transactions625045 -Node: CVS631516 -Node: Extra-SLIB Packages632683 -Node: About SLIB635024 -Node: Installation635969 -Node: The SLIB script645771 -Node: Porting646270 -Ref: Porting-Footnote-1642993 -Node: Coding Guidelines647834 -Node: Copyrights650248 -Node: About this manual653617 -Node: GNU Free Documentation License654527 -Node: Index677185 +Node: Top912 +Node: The Library System2118 +Node: Feature2868 +Ref: Feature-Footnote-14794 +Node: Require5648 +Node: Library Catalogs8144 +Node: Catalog Creation9658 +Node: Catalog Vicinities12297 +Node: Compiling Scheme15140 +Node: Module Conventions15873 +Ref: Module Conventions-Footnote-116454 +Node: Module Manifests17627 +Node: Module Semantics23182 +Node: Top-level Variable References24883 +Ref: Top-level Variable References-Footnote-125881 +Node: Module Analysis27366 +Node: Universal SLIB Procedures28554 +Node: Vicinity29252 +Node: Configuration33190 +Node: Input/Output36253 +Node: System40291 +Node: Miscellany43572 +Node: Scheme Syntax Extension Packages45558 +Node: Defmacro46620 +Node: R4RS Macros48710 +Node: Macro by Example50084 +Node: Macros That Work53065 +Node: Syntactic Closures59169 +Node: Syntax-Case Macros76807 +Node: Define-Structure80848 +Node: Define-Record-Type83299 +Node: Fluid-Let84015 +Node: Parameter Objects85379 +Node: Binding to multiple values86159 +Node: Guarded LET* special form86897 +Node: Guarded COND Clause87381 +Node: Yasos89304 +Node: Yasos terms90492 +Node: Yasos interface91680 +Node: Setters93931 +Node: Yasos examples96738 +Node: Textual Conversion Packages99843 +Node: Precedence Parsing100779 +Node: Precedence Parsing Overview101547 +Ref: Precedence Parsing Overview-Footnote-198120 +Node: Rule Types103260 +Node: Ruleset Definition and Use104798 +Node: Token definition107469 +Node: Nud and Led Definition109838 +Node: Grammar Rule Definition112382 +Node: Format120061 +Node: Format Interface120423 +Node: Format Specification122099 +Node: Standard Formatted I/O133127 +Node: Standard Formatted Output133798 +Node: Standard Formatted Input143419 +Node: Programs and Arguments150179 +Node: Getopt150761 +Node: Command Line157390 +Node: Parameter lists160671 +Node: Getopt Parameter lists164660 +Node: Filenames167984 +Node: Batch171957 +Node: HTML179875 +Node: HTML Tables186400 +Node: HTTP and CGI193015 +Node: Parsing HTML198279 +Node: URI200975 +Node: Parsing XML205726 +Node: Printing Scheme238696 +Node: Generic-Write239106 +Node: Object-To-String240605 +Node: Pretty-Print241107 +Node: Time and Date244198 +Node: Time Zone245338 +Node: Posix Time250163 +Node: Common-Lisp Time252414 +Node: Time Infrastructure254123 +Node: NCBI-DNA254557 +Node: Schmooz256012 +Node: Mathematical Packages260331 +Node: Bit-Twiddling261169 +Node: Modular Arithmetic269818 +Node: Irrational Integer Functions272332 +Node: Irrational Real Functions274096 +Node: Prime Numbers278385 +Node: Random Numbers280172 +Node: Exact Random Numbers281102 +Node: Inexact Random Numbers283458 +Node: Discrete Fourier Transform285375 +Node: Cyclic Checksum287893 +Node: Graphing295607 +Node: Character Plotting295885 +Node: PostScript Graphing301480 +Node: Column Ranges303342 +Node: Drawing the Graph304904 +Node: Graphics Context308162 +Node: Rectangles310808 +Node: Legending312338 +Node: Legacy Plotting314650 +Node: Example Graph315865 +Node: Solid Modeling320315 +Node: Color339908 +Node: Color Data-Type340827 +Ref: Color Data-Type-Footnote-1331893 +Node: Color Spaces345301 +Ref: Color Spaces-Footnote-1341906 +Node: Spectra355311 +Node: Color Difference Metrics364294 +Node: Color Conversions367353 +Node: Color Names369580 +Node: Daylight376600 +Node: Root Finding381372 +Node: Minimizing385575 +Ref: Minimizing-Footnote-1373682 +Node: The Limit387700 +Node: Commutative Rings392653 +Node: Matrix Algebra404147 +Node: Database Packages405708 +Node: Relational Database406074 +Node: Using Databases407024 +Node: Table Operations413614 +Node: Single Row Operations414908 +Node: Match-Keys417238 +Node: Multi-Row Operations419400 +Node: Indexed Sequential Access Methods421874 +Node: Sequential Index Operations422865 +Node: Table Administration425304 +Node: Database Interpolation426254 +Node: Embedded Commands427439 +Node: Database Extension429096 +Node: Command Intrinsics431304 +Node: Define-tables Example432949 +Node: The *commands* Table434682 +Node: Command Service437043 +Node: Command Example439088 +Node: Database Macros443724 +Node: Within-database444692 +Node: Within-database Example447682 +Node: Database Browser449552 +Node: Relational Infrastructure450710 +Node: Base Table451097 +Node: The Base453688 +Node: Base Tables456889 +Node: Base Field Types458448 +Node: Composite Keys459314 +Node: Base Record Operations461451 +Node: Match Keys463262 +Node: Aggregate Base Operations464226 +Node: Base ISAM Operations465374 +Node: Catalog Representation466775 +Node: Relational Database Objects469527 +Node: Database Operations472254 +Node: Weight-Balanced Trees476041 +Node: Construction of Weight-Balanced Trees480010 +Node: Basic Operations on Weight-Balanced Trees483559 +Node: Advanced Operations on Weight-Balanced Trees486509 +Node: Indexing Operations on Weight-Balanced Trees496073 +Node: Other Packages499997 +Node: Data Structures500609 +Node: Arrays501533 +Node: Subarrays510303 +Node: Array Mapping512607 +Node: Array Interpolation515490 +Node: Association Lists516837 +Node: Byte519196 +Node: Byte/Number Conversions525298 +Node: MAT-File Format533005 +Node: Portable Image Files534367 +Node: Collections536081 +Node: Dynamic Data Type542277 +Node: Hash Tables543639 +Node: Object546310 +Node: Priority Queues554676 +Node: Queues555614 +Node: Records556942 +Node: Sorting and Searching560535 +Node: Common List Functions561317 +Node: List construction561857 +Node: Lists as sets563655 +Node: Lists as sequences570276 +Node: Destructive list operations575648 +Node: Non-List functions578409 +Node: Tree Operations579581 +Node: Chapter Ordering581357 +Node: Sorting583087 +Node: Topological Sort586696 +Node: Hashing588487 +Node: Space-Filling Curves589587 +Node: Multidimensional Space-Filling Curves590080 +Node: Hilbert Space-Filling Curve594720 +Node: Peano Space-Filling Curve598870 +Node: Sierpinski Curve600105 +Node: Soundex602707 +Node: String Search604388 +Node: Sequence Comparison607044 +Node: Procedures610257 +Node: Type Coercion610868 +Node: String-Case611383 +Node: String Ports613293 +Node: Line I/O614148 +Node: Multi-Processing616280 +Node: Metric Units617481 +Node: Standards Support625843 +Node: RnRS626722 +Node: With-File628028 +Node: Transcripts628387 +Node: Rev2 Procedures628804 +Node: Rev4 Optional Procedures630620 +Node: Multi-argument / and -631172 +Node: Multi-argument Apply631665 +Node: Rationalize632085 +Node: Promises633330 +Node: Dynamic-Wind633859 +Node: Eval635210 +Node: Values638638 +Node: SRFI639536 +Node: SRFI-1641307 +Node: Session Support645897 +Node: Repl646554 +Node: Quick Print647933 +Node: Debug649322 +Node: Breakpoints650312 +Node: Trace652437 +Node: System Interface655746 +Node: Directories656646 +Node: Transactions658944 +Node: CVS665064 +Node: Extra-SLIB Packages666314 +Node: About SLIB668681 +Node: Installation669633 +Node: The SLIB script680252 +Node: Porting680834 +Ref: Porting-Footnote-1652860 +Node: Compiled and Implementation-Specific Features682668 +Node: Coding Guidelines683890 +Node: Copyrights686425 +Node: About this manual689963 +Node: GNU Free Documentation License690645 +Node: Index715884 End Tag Table |