diff --git a/CHANGES b/CHANGES index f23f9d9..921a4e4 100644 --- a/CHANGES +++ b/CHANGES @@ -1,7 +1,22 @@ +04/27/98 Release 3.99.1 +----------------------- + +Mainly minor correction to 3.99.0 (installation problems principally) + +Otherwise: + * Inclusion of the Metaclass init-keywords patch from J-M Kubek + , which allows to initialize some slots of + a class when declaring it. + + * Tk widgets can be initailized at creation time, even if they + are disabled (idea from Walter C. Pelissero + + + 04/10/98 Release 3.99.0 ----------------------- -This is the pre-4.0 release. Why is is not calles 4.0? Good question. +This is the pre-4.0 release. Why is is not called 4.0? Good question. This version would have been numbered 4.0 if there was not a so long time between this release and the previous one. Since I take so long to release, I had time to add a lot of things to my "TODO list". @@ -16,7 +31,7 @@ Here are the main visible changes from previous release: * A module system has been added * Integration of the Bigloo MATCH-CASE and MATCH-LAMBDA - primitives. Furthermore, the file bigloo.stk provide + primitives. Furthermore, the file bigloo.stk provides some compatibility between STk and bigloo modules. * A simple FFI has been added. It allows to access C functions without writing C code (works only on a @@ -28,7 +43,7 @@ Here are the main visible changes from previous release: REPL are now user definable. * report-error mechanism has been enhanced a lot (work is not completely achieved). - * new-primitives: append!, mast-pair, C-string->string, + * new-primitives: append!, last-pair, C-string->string, remove-file, rename-file, temporary-file-name, ... * Numerous bug corrections * ... @@ -72,6 +87,12 @@ Here are the main visible changes from previous release: method-generic-function, method-specializers method-procedure, remove-method change-object-class + + * When a class is redefined, the instances and methods which uses it + are redefined accordingly, as in CLOS (i.e. if you add a slot in a + class, all its -- direct or indirect -- instances will have the new + slot added dynamically. + * New kind of slot allocation: "active". An active slot is a slot for which you can put a daemon before or after its reading/writing diff --git a/ChangeLog b/ChangeLog index 468df64..2f7a82e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,88 @@ +1998-04-30 Erick Gallesio + + * STk-3.99.1 Release + + * STklos/stklos.stk (ensure-class): Inclusion of the Metaclass + init-keywords patch from J-M kubek , which + allows to initialize some slots of a class when declaring it. + + * Lib/bigloo.stk (module): The compatibility function between + bigloo modules and STk modules was not updated to the current + version of modules. Bug signaled by J-M kubek + + * STklos/stklos.stk (shallow-clone): usage of + class-definition-name instead of slot-definition-name in *-clone + functions. Bug signaled by Walter C. Pelissero + + + * Tcl/tclUnixPort.h: + * Tcl/Int.h: Path correction for accessing compatibility + files. This was needed for SunOS 4.3.x. + + * Extensions/Makefile.in : Don't trap errors when linking to see + that there are problems (particularly for Solaris). + +1998-04-27 Erick Gallesio + + * Installation process has been updated. + + * STklos/Tk/Button.stklos: The variable associated to a radio + button or check button was not using the environment. + + * STklos/Tk/Text.stklos: + * STklos/Tk/Entry.stklos: + * STklos/Tk/Scale.stklos: + * STklos/Tk/Basic.stklos: New function: initialize-value-slot + which allow to initialize this slot even if the state of the + widget is disabled. Idea from Walter C. Pelissero + + + +1998-04-26 Erick Gallesio + + * Src/toplevel.c: Correction of a long standing bug which causes + background STk to take all the CPU in some circumstances. It was + hard to track + +1998-04-22 Erick Gallesio + + * Src/tcl-glue.c (STk_valid_environment): Various problems + corrected with the new :environment options which is available on + widgets now. + + * Src/port.c (STk_flush): Bug correction. Trying to flush a string + port was erroneous. Bug signalled by Walter C. Pelissero + + +Mon Apr 20 20:52:21 1998 Erick Gallesio + + * Doc/Manual/repl-display-prompt.n: New documentation file. + + * Doc/Reference/*: Documentation update. + +Mon Apr 13 12:24:19 1998 Erick Gallesio + + * Demos/Html-demos/*: Adding the English demos which were + accidentally forgotten from the previous release + + +Sun Apr 12 14:13:05 1998 Erick Gallesio + + * Help/*: Pages were not regenerated and correspond to an old + version. + + * configure.in : Various correction in the installation process + which was wrong. The spec file for RPM and the STk.prj are now + auto generated at configuration time + Fri Apr 10 09:01:17 1998 Erick Gallesio * STk-3.99.0 release Wed Apr 8 17:02:26 1998 Erick Gallesio - * Src/*.c: Correction: stderr (instead of STk_stderr) was incorrectly - used in some places. + * Src/*.c: Correction: stderr (instead of STk_stderr) was + incorrectly used in some places. * Src/Stack: Code was absolutely incorrect for machine which don't support FFI. @@ -215,7 +292,7 @@ Thu Jan 8 12:27:44 1998 Erick Gallesio Sat Jan 3 16:50:55 1998 Erick Gallesio - * STk.prj: STk.prj has been completely redefines. Now PRCS + * STk.prj: STk.prj has been completely redefined. Now PRCS versions are in sync with STk version. Thu Jan 1 13:18:22 1998 Erick Gallesio diff --git a/Demos/Html-Demos/S-scape-en.html b/Demos/Html-Demos/S-scape-en.html new file mode 100644 index 0000000..5f2bdd8 --- /dev/null +++ b/Demos/Html-Demos/S-scape-en.html @@ -0,0 +1,33 @@ + + + + S-scape: The STk Web Browser. + + + +

S-scape: The STk Web Browser.

+ + S-scape is a Web browser

+

+
+
+ Top +
+
Erick Gallesio
+ + +Last modified: Mon Apr 13 11:59:20 CEST 1998 + + + diff --git a/Demos/Html-Demos/S-scape-fr.html b/Demos/Html-Demos/S-scape-fr.html index 12cf910..7c4d2b5 100644 --- a/Demos/Html-Demos/S-scape-fr.html +++ b/Demos/Html-Demos/S-scape-fr.html @@ -19,7 +19,7 @@
  • Permet de définir des "applets" en Scheme

  • Permet la consultation de pages distantes (e.g. - http://kaolin.unice.fr/) + http://kaolin.unice.fr/STk/)
    @@ -28,7 +28,7 @@
    Erick Gallesio
    -Last modified: Mon Mar 9 21:41:18 CET 1998 +Last modified: Mon Apr 13 09:25:03 CEST 1998 diff --git a/Demos/Html-Demos/amib-en.html b/Demos/Html-Demos/amib-en.html new file mode 100644 index 0000000..e2d63e2 --- /dev/null +++ b/Demos/Html-Demos/amib-en.html @@ -0,0 +1,63 @@ + + + + Building Interfaces in STklos + + + + + + + +

    + AMIB: A + Mini + Interface + Builder

    + +
    + +
    +
      +

    + Objective: Building Graphical Interfaces interactively

    +

      +
    • Written in STklos

      +

    • Provides +
        +
      • Interactive building of GUI; +
      • Save/Restore of built interfaces.

        +

      +
    • Uses the STklos Meta Object Protocol

      +

    • Code +
        +
      • generic (adding a new widget just consists in adding a line in + the program) +
      • just a demo (less than 600 lines of code!!)

        +

      + +
    • Launch a Demo of AMIB with + +
    +
    + +
    + Top +
    +
    Erick Gallesio
    + + +Last modified: Mon Apr 13 12:00:21 CEST 1998 + + + diff --git a/Demos/Html-Demos/amib-fr.html b/Demos/Html-Demos/amib-fr.html index 23ded11..c466d5d 100644 --- a/Demos/Html-Demos/amib-fr.html +++ b/Demos/Html-Demos/amib-fr.html @@ -57,7 +57,7 @@
    Erick Gallesio
    -Last modified: Tue Mar 10 18:41:48 CET 1998 +Last modified: Mon Apr 13 09:58:25 CEST 1998 diff --git a/Demos/Html-Demos/animate.stk b/Demos/Html-Demos/animate.stk index 59907e7..2851d74 100644 --- a/Demos/Html-Demos/animate.stk +++ b/Demos/Html-Demos/animate.stk @@ -10,7 +10,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: animate.stk 1.1 Tue, 10 Mar 1998 21:43:37 +0100 eg $ +;;;; $Id: animate.stk 1.1 Tue, 10 Mar 1998 20:43:37 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 9-Mar-1998 18:51 diff --git a/Demos/Html-Demos/applet-en.html b/Demos/Html-Demos/applet-en.html new file mode 100644 index 0000000..bd257fa --- /dev/null +++ b/Demos/Html-Demos/applet-en.html @@ -0,0 +1,70 @@ + + + + Applets in STk + + + +

    Applets in STk

    +

    + + + + + S-scape allows the insertion of STk-code in a HTML page. +

    Examples: +

      +
    • Animation: + +

      +

    • Piece of embedded interface: + +

      +

    • Embedded application: + +
    + + +
    + Top +
    +
    Erick Gallesio
    + + +Last modified: Tue Mar 10 21:37:14 CET 1998 + + + diff --git a/Demos/Html-Demos/compo-en.html b/Demos/Html-Demos/compo-en.html new file mode 100644 index 0000000..0222d21 --- /dev/null +++ b/Demos/Html-Demos/compo-en.html @@ -0,0 +1,69 @@ + + + + Composite Widgets + + + + + + +

    Composite Widgets

    + + A composite widget is made by assembling several widgets (simple + or even composite widgets): + + +
    +     (define le (make <Labeled-entry> :value 50 :title "Valeur:"))
    +    
    + + + defines le as an instance of the <Labeled-entry> + class. This object, on a screen, gives: +

    +

    +

    +

    +
    +
    +
    +    
    + In fact, this widget is composed if three Tk basic widgets: a + frame, a label an an entry: +
    +
    +    
    +
    + + +

    +

    + +
    +
    +    
    +
      +
    • A demonstration of some composite widgets can be launched from here with: +
        +
      • the non-installed version of STk + (test-stk) +
      • the installed version of STk + (stk)

        +

      +
    • The complete code of the <Labeled-entry> class is approximatively 60 lines. +
    +
    +
    + Retour +
    +
    Erick Gallesio
    + + +Last modified: Mon Apr 13 12:08:18 CEST 1998 + + + diff --git a/Demos/Html-Demos/envdraw-en.html b/Demos/Html-Demos/envdraw-en.html index 28bb808..3ad8bba 100644 --- a/Demos/Html-Demos/envdraw-en.html +++ b/Demos/Html-Demos/envdraw-en.html @@ -4,15 +4,27 @@ Envdraw - -

    Envdraw

    + +

    Envdraw

    + +
    + +
    +
    +
    +
    EnvDraw is a environment diagramming package which draws environment -diagrams as taught in Abelson and Sussman's _Structure and -Interpretation of Computer Languages_. It was written as an +diagrams as taught in Abelson and Sussman's Structure and +Interpretation of Computer Languages. + +

    +It was written as an instructional tool for the CS61A course at the University of -California at Berkeley. The environment diagrammer is a metacircular +California at Berkeley. +

    +The environment diagrammer is a metacircular evaluator which draws procedures, environments, and box and pointer diagrams along with all the accompanying symbols and mutation. It includes a box and pointer diagrammer which handles circular list @@ -20,6 +32,15 @@ structures, cons cell mutation, and also will watch for modification of any symbols known to be pointing to drawn cells. +

    +Envdraw can be downloaded from the following URL: +http://kaolin.unice.fr/STk/Contribs + +


    + Top +
    +
    Erick Gallesio
    +< @@ -28,6 +49,7 @@ of any symbols known to be pointing to drawn cells.
    Erick Gallesio
    +Last modified: Mon Apr 13 12:15:49 CEST 1998 diff --git a/Demos/Html-Demos/envdraw-fr.html b/Demos/Html-Demos/envdraw-fr.html index 0726cf5..d4f5271 100644 --- a/Demos/Html-Demos/envdraw-fr.html +++ b/Demos/Html-Demos/envdraw-fr.html @@ -24,7 +24,7 @@ d'environnement tels qu'il sont pr

    Cet outil a été écrit comme un outil pédagogique pour le cours CS61A de l'Université de Berkeley (Californie). - +

    Envdraw est en fait un interprète méta-circulaire capable de dessiner des procedures, des environnement ainsi que des listes sous forme de boîtes (les listes circulaire sont gérées) @@ -33,7 +33,7 @@ modifications apport

    Envdraw peut être récupéré à l'URL suivante: -http://kaolin.unice.fr/Contribs +http://kaolin.unice.fr/STk/Contribs


    Retour @@ -41,7 +41,7 @@ Envdraw peut
    Erick Gallesio
    -Last modified: Tue Mar 10 21:24:50 CET 1998 +Last modified: Mon Apr 13 12:11:34 CEST 1998 diff --git a/Demos/Html-Demos/intro-en.html b/Demos/Html-Demos/intro-en.html new file mode 100644 index 0000000..faa8079 --- /dev/null +++ b/Demos/Html-Demos/intro-en.html @@ -0,0 +1,34 @@ + + + + STk/STklos Introduction + + + +

    STk/STklos Introduction

    +

    + + STk is a Scheme interpreter which

    +

      +
    • is able to access the Tk graphical toolkit

      +

    • eases the constrution of GUI

      +

    + STklos is the Object extension of STk

    +

      +
    • gives access to the Tk toolit as a hierarchy of objets

      +

    • eases the Tk toolkit programming

      + + +

    + A simple example written in STklos +
    +
    + Top +
    +
    Erick Gallesio
    + + +Last modified: Mon Apr 13 12:16:54 CEST 1998 + + + diff --git a/Demos/Html-Demos/main-en.html b/Demos/Html-Demos/main-en.html new file mode 100644 index 0000000..d5724ac --- /dev/null +++ b/Demos/Html-Demos/main-en.html @@ -0,0 +1,30 @@ + + + + Presentation of STk + + + +

    Presentation of STk

    + + + +
    +
    Erick Gallesio
    + + +Last modified: Mon Apr 13 09:57:17 CEST 1998 + + + diff --git a/Demos/Html-Demos/puzzle.stk b/Demos/Html-Demos/puzzle.stk index b0d0df3..4332808 100644 --- a/Demos/Html-Demos/puzzle.stk +++ b/Demos/Html-Demos/puzzle.stk @@ -10,7 +10,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: puzzle.stk 1.1 Tue, 10 Mar 1998 21:43:37 +0100 eg $ +;;;; $Id: puzzle.stk 1.1 Tue, 10 Mar 1998 20:43:37 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 9-Mar-1998 21:11 diff --git a/Demos/Html-Demos/simple-en.html b/Demos/Html-Demos/simple-en.html new file mode 100644 index 0000000..613ac5a --- /dev/null +++ b/Demos/Html-Demos/simple-en.html @@ -0,0 +1,39 @@ + + + + STklos Example + + + +

    STklos Example

    + + Launch an xterm to test this program with +
      +
    • the non-installed version of STk + (test-stk) +
    • the installed version of STk + (stk) +
    +
    +
    +      (require "Tk-classes")
    +      (define l (make <Button>
    +                      :text    "Hello, world"
    +                      :font    "10x20"
    +                      :command (lambda () (exit 0))))
    +      (pack l)
    +     
    + + Cut the 3 expressions above and Paste them in the xterm + window as soon as it appears. + +
    + Top +
    +
    Erick Gallesio
    + + +Last modified: Mon Apr 13 10:13:04 CEST 1998 + + + diff --git a/Demos/Makefile b/Demos/Makefile old mode 100644 new mode 100755 index c828174..7a014da --- a/Demos/Makefile +++ b/Demos/Makefile @@ -4,22 +4,30 @@ include ../config.make -DEMODIR=$(libdir)/demos +DEMODIR=$(libdir)/Demos what: @echo "Type make install to install demos" install: -if [ ! -d $(DEMODIR) ] ; then mkdir -p $(DEMODIR); fi - for i in *.stk *.stklos Widget/*.stklos ; \ + chmod 0755 $(DEMODIR) + for i in *.stk *.stklos Widget/*.stklos *.html; \ do \ j=`basename $$i`; \ sed -e 's=/usr/local/lib/stk=$(libdir)=' \ -e 's=/usr/local/bin=$(bindir)=' $$i > $(DEMODIR)/$$j;\ done - for i in *.stk *.stklos ; \ + for i in *.stk *.stklos *.html; \ do \ chmod 0755 $(DEMODIR)/`basename $$i`; \ done + mkdir $(DEMODIR)/Html-Demos; chmod 0755 $(DEMODIR)/Html-Demos + cp Html-Demos/*.html $(DEMODIR)/Html-Demos + chmod 0644 $(DEMODIR)/Html-Demos/*.html + mkdir $(DEMODIR)/Html-Demos/Images; chmod 0755 $(DEMODIR)/Html-Demos/Images + cp Html-Demos/Images/* $(DEMODIR)/Html-Demos/Images + chmod 0644 $(DEMODIR)/Html-Demos/Images/* + (cd $(DEMODIR)/Html-Demos; ln -s ../amib.stklos ../stklos-widgets .) install.libs: diff --git a/Demos/browse.stk b/Demos/browse.stk index bd45af6..a4da791 100755 --- a/Demos/browse.stk +++ b/Demos/browse.stk @@ -8,7 +8,7 @@ ;;;; double-clicking. ;;;; This is a new version of the demo which can be run before STk is installed ;;;; -;;;; $Id: browse.stk 1.2 Mon, 16 Feb 1998 08:28:39 +0100 eg $ +;;;; $Id: browse.stk 1.2 Mon, 16 Feb 1998 07:28:39 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 3-Aug-1993 17:33 diff --git a/Demos/browse.stklos b/Demos/browse.stklos index 3743fb3..7e73678 100755 --- a/Demos/browse.stklos +++ b/Demos/browse.stklos @@ -7,7 +7,7 @@ ;;;; directory and allows you to open files or subdirectories by ;;;; double-clicking. ;;;; -;;;; $Id: browse.stklos 1.2 Mon, 16 Feb 1998 08:28:39 +0100 eg $ +;;;; $Id: browse.stklos 1.2 Mon, 16 Feb 1998 07:28:39 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 3-Aug-1993 17:33 diff --git a/Demos/calc.stklos b/Demos/calc.stklos index 534621c..5281bfc 100755 --- a/Demos/calc.stklos +++ b/Demos/calc.stklos @@ -13,7 +13,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: calc.stklos 1.2 Mon, 16 Feb 1998 08:28:39 +0100 eg $ +;;;; $Id: calc.stklos 1.2 Mon, 16 Feb 1998 07:28:39 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 6-Apr-1995 18:11 diff --git a/Demos/filebox.stklos b/Demos/filebox.stklos index b407232..13b35fe 100755 --- a/Demos/filebox.stklos +++ b/Demos/filebox.stklos @@ -16,7 +16,7 @@ ;;;; This software is a derivative work of other copyrighted softwares; the ;;;; copyright notices of these softwares are placed in the file COPYRIGHTS ;;;; -;;;; $Id: filebox.stklos 1.2 Mon, 16 Feb 1998 08:28:39 +0100 eg $ +;;;; $Id: filebox.stklos 1.2 Mon, 16 Feb 1998 07:28:39 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@kaolin.unice.fr] ;;;; Creation date: 12-Jun-1994 11:24 diff --git a/Demos/term.stk b/Demos/term.stk index df62eb8..3869468 100755 --- a/Demos/term.stk +++ b/Demos/term.stk @@ -13,7 +13,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: term.stk 1.2 Mon, 16 Feb 1998 08:28:39 +0100 eg $ +;;;; $Id: term.stk 1.2 Mon, 16 Feb 1998 07:28:39 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 7-Oct-1995 10:39 diff --git a/Doc/Manual/Makefile b/Doc/Manual/Makefile index 0228f73..b1754e3 100644 --- a/Doc/Manual/Makefile +++ b/Doc/Manual/Makefile @@ -10,7 +10,7 @@ # # Author: Erick Gallesio [eg@unice.fr] # Creation date: 21-Oct-1994 11:25 -# Last file update: 30-Oct-1996 12:00 +# Last file update: 20-Apr-1998 21:43 include ../../config.make @@ -61,11 +61,10 @@ install.man: for i in *.n ;do \ $(CP) $$i $(MANN_DIR)/stk_$$i; \ done - ../../Src/test-stk -no -file make-link $(MANN_DIR) +# ../../Src/test-stk -no -file make-link $(MANN_DIR) clean: rm -f *~ very-clean: clean rm -f *.ps - \ No newline at end of file diff --git a/Doc/Manual/change-image.n b/Doc/Manual/change-image.n new file mode 120000 index 0000000..1756d9e --- /dev/null +++ b/Doc/Manual/change-image.n @@ -0,0 +1 @@ +make-image.n \ No newline at end of file diff --git a/Doc/Manual/find-image.n b/Doc/Manual/find-image.n new file mode 120000 index 0000000..1756d9e --- /dev/null +++ b/Doc/Manual/find-image.n @@ -0,0 +1 @@ +make-image.n \ No newline at end of file diff --git a/Doc/Manual/free-image.n b/Doc/Manual/free-image.n new file mode 120000 index 0000000..1756d9e --- /dev/null +++ b/Doc/Manual/free-image.n @@ -0,0 +1 @@ +make-image.n \ No newline at end of file diff --git a/Doc/Manual/links.stk b/Doc/Manual/links.stk deleted file mode 100644 index c307545..0000000 --- a/Doc/Manual/links.stk +++ /dev/null @@ -1,21 +0,0 @@ -;;;; -;;;; This file contains data for make-link.stk. -;;;; -;;;; Copyright © 1996-1997 Erick Gallesio - I3S-CNRS/ESSI -;;;; -;;;; Permission to use, copy, and/or distribute this software and its -;;;; documentation for any purpose and without fee is hereby granted, provided -;;;; that both the above copyright notice and this permission notice appear in -;;;; all copies and derived works. Fees for distribution or use of this -;;;; software or derived works may only be charged with express written -;;;; permission of the copyright holder. -;;;; This software is provided ``as is'' without express or implied warranty. -;;;; -;;;; Author: Erick Gallesio [eg@unice.fr] -;;;; Creation date: 30-Oct-1996 11:27 -;;;; Last file update: 17-Sep-1997 22:01 -;;;; - -(define *links* '( - ("create-image" "find-image" "change-image" "delete-image") -)) diff --git a/Doc/Manual/make-link.stk b/Doc/Manual/make-link.stk deleted file mode 100644 index 000cf3a..0000000 --- a/Doc/Manual/make-link.stk +++ /dev/null @@ -1,31 +0,0 @@ -;;;; -;;;; This script is executed for linking manual pages which are identical -;;;; Data are taken in the "links.stk" file -;;;; -;;;; Copyright © 1996 Erick Gallesio - I3S-CNRS/ESSI -;;;; -;;;; Permission to use, copy, and/or distribute this software and its -;;;; documentation for any purpose and without fee is hereby granted, provided -;;;; that both the above copyright notice and this permission notice appear in -;;;; all copies and derived works. Fees for distribution or use of this -;;;; software or derived works may only be charged with express written -;;;; permission of the copyright holder. -;;;; This software is provided ``as is'' without express or implied warranty. -;;;; -;;;; Author: Erick Gallesio [eg@unice.fr] -;;;; Creation date: 30-Oct-1996 11:27 -;;;; Last file update: 30-Oct-1996 12:32 -;;;; - -(load "links.stk") - -(define (make-link dir source destination) - (for-each (lambda (x) - (let ((cmd (format #f "cd ~A; rm -f stk_~A.n; ln stk_~A.n stk_~A.n" - dir x source x))) - (system cmd))) - destination)) - -(for-each (lambda (l) (make-link (car *argv*) (car l) (cdr l))) - *links*) -(exit 0) diff --git a/Doc/Manual/repl-display-prompt.n b/Doc/Manual/repl-display-prompt.n new file mode 100644 index 0000000..16dc2ec --- /dev/null +++ b/Doc/Manual/repl-display-prompt.n @@ -0,0 +1,45 @@ +'\" Color=Green +'\" +'\" +.so STk-man.macros +.TH repl-display-prompt n 3.99 STk "STk procedure" +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +repl-display-prompt, repl-display-result \- Display a prompt/result in +interactive mode +.SH SYNOPSIS +(\fBrepl-display-prompt \fImodule\fR) +.br +(\fBrepl-display-result \fIvalue\fR) +.BE + +.SH DESCRIPTION +.PP +\fBRepl-display-prompt\fR is called by the interactive toplevel loop +before reading a \fIsexpr\fR. This procedure is called with one parameter: +the selected module in the toplevel loop. +.LP +A simple form of this procedure could be: + +.CS +(define (repl-display-prompt module) + (let ((p (current-error-port))) + (format p "~A> " (module-name module)) + (flush p))) +.CE + + +.PP +\fBRepl-display-result\fR is called by the interactive toplevel loop +after the evaluation of a \fIsexpr\fR. This procedure is called with the +result of this evaluation as parameter. + +.LP +A simple form, mimicking the MIT Scheme way of presenting results, could be: + +.CS +(define (repl-display-result value) + (format #t "\\n;Value: ~S\\n\\n" value)) +.CE + diff --git a/Doc/Manual/repl-display-result.n b/Doc/Manual/repl-display-result.n new file mode 120000 index 0000000..30abdfa --- /dev/null +++ b/Doc/Manual/repl-display-result.n @@ -0,0 +1 @@ +repl-display-prompt.n \ No newline at end of file diff --git a/Doc/Manual/report-error.n b/Doc/Manual/report-error.n index c46c2e9..b0b5884 100644 --- a/Doc/Manual/report-error.n +++ b/Doc/Manual/report-error.n @@ -23,7 +23,7 @@ causes the error (or the empty list when there is no object to incriminate). The STk library includes a default \fBreport-error\fR procedure that posts a dialog box containing the error message and offers the user a chance to see a stack trace showing where the -error occurred and its associated environment.. +error occurred and its associated environment. .PP If an error occurs while is \fBreport-error\fR execution, the interpreter detect that the procedure is buggy and it redirect further diff --git a/Doc/Manual/stk.1 b/Doc/Manual/stk.1 index d0d534e..b45d402 100644 --- a/Doc/Manual/stk.1 +++ b/Doc/Manual/stk.1 @@ -21,7 +21,7 @@ '\" ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO '\" PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. '\" -'\" $Id: stk.1 1.1 Sat, 03 Jan 1998 13:46:25 +0100 eg $ +'\" $Id: stk.1 1.2 Mon, 20 Apr 1998 20:15:01 +0000 eg $ '\" .so STk-man.macros .TH STk 1 4.0 STk "January_1998" @@ -172,6 +172,10 @@ variable is a list of paths to try when in a load command. This variable serves to initialize the \fI*help-path*\fR Scheme variable. It must contain a list of documentation directories. This variable is used by the help procedure. +.IP "\fISTK_IMAGE_PATH\fR" 15 +This variable serves to initialize the \fI*image-path*\fR Scheme variable. It +must contain a list of images directories. This variable is used by the make-image +procedure. .SH FILES diff --git a/Doc/Manual/stk.ps b/Doc/Manual/stk.ps index aa44553..5dcf416 100644 --- a/Doc/Manual/stk.ps +++ b/Doc/Manual/stk.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.11 -%%CreationDate: Fri Apr 10 09:05:16 1998 +%%CreationDate: Mon Apr 20 10:54:40 1998 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic @@ -496,24 +496,29 @@ F .525(ariable is a list)-.25 F(of paths to try when in a load command.) BP %%EndPageSetup /F0 10/Times-Roman@0 SF 175.12(STk\(1\) January_1998 STk\(1\))72 48 R/F1 -9/Times-Bold@0 SF(FILES)72 84 Q/F2 10/Times-Italic@0 SF(./init.stk)108 -96 Q($STK_LIBRAR)108 112.8 Q(Y/STk/init.stk)-.18 E F0(When)183 124.8 Q -/F3 10/Times-Bold@0 SF(stk)2.69 E F0 .19 -(starts running, it tries to load the \214le)2.69 F F2(init.stk)2.69 E +10/Times-Italic@0 SF(STK_IMA)108 84 Q(GE_P)-.35 E -.37(AT)-.9 G(H).37 E +F0 .137(This v)183 96 R .137(ariable serv)-.25 F .137 +(es to initialize the)-.15 F F1(*ima)2.637 E -.1(ge)-.1 G(-path*).1 E F0 +.137(Scheme v)2.637 F .137(ariable. It must contain a list)-.25 F +(of images directories. This v)183 108 Q(ariable is used by the mak)-.25 +E(e-image procedure.)-.1 E/F2 9/Times-Bold@0 SF(FILES)72 148.8 Q F1 +(./init.stk)108 160.8 Q($STK_LIBRAR)108 177.6 Q(Y/STk/init.stk)-.18 E F0 +(When)183 189.6 Q/F3 10/Times-Bold@0 SF(stk)2.69 E F0 .19 +(starts running, it tries to load the \214le)2.69 F F1(init.stk)2.69 E F0 .19(in the current directory)2.69 F 2.69(.I)-.65 G 2.69(ft)-2.69 G -.19(his \214le)-2.69 F 1.581 -(is not present, it tries to load this \214le in the)183 136.8 R F3 -(STk_LIBRAR)4.082 E(Y)-.35 E F0 1.582(directory \(the v)4.082 F 1.582 -(alue of)-.25 F F3(STk_LIBRAR)183 148.8 Q(Y)-.35 E F0 .244(is automatic\ -ally computed to be in a sibling directory of the interpreter)2.745 F --.15(exe)183 160.8 S(cutable.).15 E F2(~/.stkr)108 189.6 Q(c)-.37 E F0 -(Standard)47.32 E F2(init.stk)2.979 E F0 .479 -(\214le tries to load the \214le)2.979 F F2(~/.stkr)2.979 E(c)-.37 E F0 -2.979(.T)C .48(his \214le can be used to store functions)-2.979 F .704 -(de\214nitions or v)183 201.6 R .704(ariables settings that you w)-.25 F +.19(his \214le)-2.69 F 1.582 +(is not present, it tries to load this \214le in the)183 201.6 R F3 +(STk_LIBRAR)4.081 E(Y)-.35 E F0 1.581(directory \(the v)4.081 F 1.581 +(alue of)-.25 F F3(STk_LIBRAR)183 213.6 Q(Y)-.35 E F0 .244(is automatic\ +ally computed to be in a sibling directory of the interpreter)2.744 F +-.15(exe)183 225.6 S(cutable.).15 E F1(~/.stkr)108 254.4 Q(c)-.37 E F0 +(Standard)47.32 E F1(init.stk)2.98 E F0 .48 +(\214le tries to load the \214le)2.98 F F1(~/.stkr)2.979 E(c)-.37 E F0 +2.979(.T)C .479(his \214le can be used to store functions)-2.979 F .703 +(de\214nitions or v)183 266.4 R .704(ariables settings that you w)-.25 F .704(ant to be e)-.1 F -.15(xe)-.15 G .704(cuted at each interpreter in) -.15 F -.2(vo)-.4 G(ca-).2 E(tion.)183 213.6 Q F1(SEE ALSO)72 242.4 Q F0 -(wish\(1\))108 254.4 Q 208.58(STk 4.0)72 768 R(3)222.75 E EP +.15 F -.2(vo)-.4 G(ca-).2 E(tion.)183 278.4 Q F2(SEE ALSO)72 307.2 Q F0 +(wish\(1\))108 319.2 Q 208.58(STk 4.0)72 768 R(3)222.75 E EP %%Trailer end %%EOF diff --git a/Doc/Reference/Appendix-B.tex b/Doc/Reference/Appendix-B.tex index f42ab1e..8413cd9 100644 --- a/Doc/Reference/Appendix-B.tex +++ b/Doc/Reference/Appendix-B.tex @@ -3,7 +3,7 @@ % % Author: Erick Gallesio [eg@unice.fr] % Creation date: ??-Nov-1993 ??:?? -% Last file update: 8-Jul-1996 21:52 +% Last file update: 20-Apr-1998 11:54 % \newcommand{\schglob}[1]{*#1*} @@ -16,7 +16,8 @@ implementation and the language described in {\rrrr}. {\stk} symbol syntax has been augmented to allow case significant symbols. This extension is discussed in \ref{symbolsection}. -The following symbols are defined in the global environment. +\smallskip {\stk} also defines some symbols in the global environment +which are described below: \begin{itemize} @@ -34,7 +35,7 @@ The following symbols are defined in the global environment. each loaded file is printed before its effective reading. File names are printed on the standard error stream. - \item {\tt\schglob{load-path}}\schindex{\schglob{load-path}} must +\item {\tt\schglob{load-path}}\schindex{\schglob{load-path}} must contain a list of strings. Each string is taken as a directory path name in which a file will be searched for loading. This variable can be set automatically from the {\tt STK\_LOAD\_PATH} @@ -47,13 +48,7 @@ The following symbols are defined in the global environment. file does not exist, the system will sequentially try to find the file by appending each suffix of this list. A typical value for this variable may be {\tt ("stk" "stklos" "scm" "so")}. - - \item {\tt\schglob{help-path}}\schindex{help, - getting}\schindex{\schglob{help-path}} must contain a list of - strings. Each string is taken as a directory path name in which - documentation files are searched. This variable can be set - automatically from the {\tt STK\_HELP\_PATH} shell variable. See - {\tt stk(1)} for more details. + \item {\tt\schglob{argc}}\schindex{\schglob{argc}} contains the number of arguments (0 if none), not including interpreter @@ -70,14 +65,77 @@ The following symbols are defined in the global environment. See {\tt stk(1)} for more details. \item {\tt\schglob{print-banner}}\schindex{\schglob{print-banner}}. If - {\tt\schglob{print-verbose}} is {\schfalse}, the usual copyright + {\tt\schglob{print-banner}} is {\schfalse}, the usual copyright message is not displayed when the interpreter is started. +\item {\tt\schglob{stk-library}}\schindex{\schglob{stk-library}} + contains the path name of the installation directory of the + {\stk} library. This variable can be set automatically from the + {\tt STK\_LIBRARY} shell variable. See {\tt stk(1)} for more + details. + +\end{itemize} + +The following symbols are defined only when Tk is loaded: + +\begin{itemize} + \item {\tt\schglob{root}}\schindex{\schglob{root}} designates the Tk main window (see~A-\ref{root window}). This variable is not set if the Tk toolkit is not initialized. + +\item {\tt\schglob{help-path}}\schindex{help, + getting}\schindex{\schglob{help-path}} must contain a list of + strings. Each string is taken as a directory path name in which + documentation files are searched. This variable can be set + automatically from the {\tt STK\_HELP\_PATH} shell variable. See + {\tt stk(1)} for more details. + +\item {\tt\schglob{image-path}}\schindex{\schglob{image-path}} must contain + a list of strings. Each string is taken as a directory path name in which + images are searched by the function \texttt{make-image}. This variable can be + set automatically from the {\tt STK\_IMAGE\_PATH} shell variable. See + {\tt stk(1)} and {\tt make-image(n)} for more details. + +\item {\tt\schglob{root}}\schindex{\schglob{root}} designates the Tk main + window (see~A-\ref{root window}). This variable is not set if + the Tk toolkit is not initialized. + +\item {\tt\schglob{start-withdrawn}}\schindex{\schglob{start-withdrawn}}. If + \schglob{start-withdrawn} is not false, the \schglob{root} window + is not mapped on screen until its first sub-window is packed or some + action is asked to the window manager for it. + +\item {\tt\schglob{tk-version}}\schindex{\schglob{tk-version}} is a string + which contains the version number of the Tk toolkit used by {\stk}. + +\item {\tt\schglob{tk-patch-level}}\schindex{\schglob{tk-patch-level}} is + a string which contains the version and patch level of the Tk toolkit + used by {\stk}. + \end{itemize} +Furthermore, {\stk} also defines the following procedures in the global +environment: + +\begin{itemize} +\item \ide{report-error}. This procedure is called by the error system to + display the message error. This procedure is described in + {\tt report-error(n)} + +\item \ide{repl-display-prompt}. \label{repl-display-prompt} + This procedure is called when the system + is run interactively before reading a \emph{sexpr} to evaluate to display + a prompt. This procedure is described in {\tt repl-display-prompt(n)}. + +\item \ide{repl-display-result}. This procedure is called when the system + is run interactively after the evaluation of a \emph{sexpr} to write the + result. This procedure is described in {\tt repl-display-result(n)}. + +\end{itemize} + + + \section{Types} {\stk} implements all the types defined as mandatory in {\rrrr}. However, complex diff --git a/Doc/Reference/Appendix-C.tex b/Doc/Reference/Appendix-C.tex index ffe2636..74dbe48 100644 --- a/Doc/Reference/Appendix-C.tex +++ b/Doc/Reference/Appendix-C.tex @@ -3,7 +3,7 @@ % % Author: Erick Gallesio [eg@unice.fr] % Creation date: 22-May-1994 22:13 -% Last file update: 21-Jan-1996 17:35 +% Last file update: 22-Apr-1998 11:04 % \section{Introduction} @@ -388,8 +388,8 @@ So: These rules are used to compute a linear order for a class and all its superclasses, from most specific to least specific. This order is called the -``class precedence list'' of the class. Given those two rules, we can claim -that the initial form for the {\tt x} slot of previous example is 2 since the +``class precedence list'' of the class. Given these two rules, we can claim +that the initial form for the {\tt x} slot of previous example is 1 since the class {\tt X} is placed before {\tt Y} in class precedence list of {\tt Z}. This two rules are not always enough to determine a unique order, however, but @@ -517,7 +517,7 @@ the list of applicable methods. This is done by using the special form \begin{scheme} (define-method Test((a )) (cons 'integer (next-method))) (define-method Test((a )) (cons 'number (next-method))) -(define-method Test(a) (list 'top)) +(define-method Test(a) (list 'top)) \end{scheme} With those definitions, diff --git a/Doc/Reference/Appendix-E.tex b/Doc/Reference/Appendix-E.tex index 174b94b..0a251ec 100644 --- a/Doc/Reference/Appendix-E.tex +++ b/Doc/Reference/Appendix-E.tex @@ -3,7 +3,7 @@ % % Author: Erick Gallesio [eg@unice.fr] % Creation date: 21-Dec-1997 20:09 -% Last file update: 21-Dec-1997 21:56 +% Last file update: 18-Apr-1998 13:36 % \section*{Introduction} @@ -11,11 +11,63 @@ This appendix lists the main differences\footnote{ Only the differences which affect the language or new ports are reported here. In particular, internal changes, packages written in Scheme or - performance enhancement are not discussed here.}.among the various + performance enhancement are not discussed here.} among the various recent versions of STk. Differences with older versions as well as implementation changes are described in the CHANGES file located in the main directory of the STk distribution. +\section*{Release 3.99.0} +\small{\emph{Release date: 04/10/98}} + +Changes can be classified in three categories: +\begin{itemize} +\item About Scheme + \begin{itemize} + \item A module system has been added + + \item Integration of the Bigloo \ide{match-case} and + \ide{match-lambda} primitives. Furthermore, the file \emph{bigloo.stk} + provides some compatibility between {\stk} and bigloo modules. + + \item A simple Foreign Function Interface has been added. + + \item integrates the {\rfive} \ide{values} and \ide{call-with-values} + + \item multi-line comments have been added. + + \item new file primitives: \texttt{remove-file}, \texttt{rename-file} and + \texttt{temporary-file-name}. + + \item new list primitives: \texttt{append!}, \texttt{last-pair}, + \texttt{remq}, \texttt{remv} and \texttt{remove}. + + \item \texttt{load}, \texttt{try-load} and \texttt{autoload?} can nw + be called with a module as second parameter. If this second parameter is + present, the loading is done in the environment of the given module. + \end{itemize} + +\item About Tk + \begin{itemize} + \item Integration of the Tk8.0 toolkit + \item Buttons, Checkbuttons and Radiobuttons can use a + \texttt{:variable} and \texttt{:textvariable} in a given + environment. This environment is given with the new \texttt{:environment} + option. + \end{itemize} + +\item About STklos + \begin{itemize} + \item The MOP of {\stklos} is now very similar to the CLOS's MOP. In + particular generic function has been added for controlling slot + accesses, as well as numerous introspection functions. + \item When a class is redefined, the instances and methods which uses it + are redefined accordingly, as in CLOS (i.e. if anew slot is added in a + class, all its -- direct or indirect -- instances will have the new + slot added dynamically. + \end{itemize} +\end{itemize} + + \section*{Release 3.1.1} \small{\emph{Release date: 09/26/96}} diff --git a/Doc/Reference/Reference1.tex b/Doc/Reference/Reference1.tex index 0cd2280..c947af9 100644 --- a/Doc/Reference/Reference1.tex +++ b/Doc/Reference/Reference1.tex @@ -3,7 +3,7 @@ % % Author: Erick Gallesio [eg@unice.fr] % Creation date: ??-Nov-1993 ??:?? -% Last file update: 16-Dec-1997 19:09 +% Last file update: 18-Apr-1998 14:47 % \section*{Introduction} @@ -55,7 +55,7 @@ There are three types of comments in {\stk}: \begin{enumerate} \item a semicolon (;) indicates the start of a comment. This kind of comment extends to the end of the line (as described in \rrrr). -\item multi-lines comment use the classical lisp conventions: a comment +\item multi-lines comment use the classical Lisp convention: a comment begins with \verb+#|+ and ends with \verb+|#+. \item comments can also be introduced by \sharpsign$!$. This extension is particularly useful for building {\stk} scripts. On most @@ -88,14 +88,13 @@ This kind of comment extends to the end of the line (as described in \rrrr). \item[\tt\sharpsign.] is read as the evaluation of the Scheme expression {\tt }. The evaluation is done during the \ide{read} process, when the \var{\sharpsign.} is encountered. - Evaluation is done in the global environment. + Evaluation is done in the environment of the current module. \begin{scheme} (define foo 1) \sharpsign.foo \lev 1 '(foo \sharpsign.foo \sharpsign.(+ foo foo)) \lev (foo 1 2) (let ((foo 2)) \sharpsign.foo) \lev 1 - \end{scheme} \end{description} @@ -353,7 +352,30 @@ keywords into account. On keywords, \ide{eq?} behaves like \ide{eqv?}. \proto{list?}{ obj}{procedure} \proto{list}{ \var{obj} \dotsfoo}{procedure} \proto{length}{ list}{procedure} -\proto{append}{ list \dotsfoo}{procedure} +\proto{append}{ list \dotsfoo}{procedure}} +\saut +\doc +\end{entry} + +\begin{entry}{% +\proto{append!}{ list \ldots}{procedure}} +\saut + +Returns a list consisting of the elements of the first \var{list} +followed by the elements of the other lists, as with \texttt{append}. +The differenece with \texttt{append} is that the arguments are {\em + changed} rather than {\em copied}. +\begin{scheme} + (append! '(1 2) '(3 4) '(5 6)) \lev '(1 2 3 4 5 6) + (let ((l1 '(1 2)) + (l2 '(3 4)) + (l3 '(5 6))) + (append! l1 l2 l3) + (list l1 l2 l3)) \lev ((1 2 3 4 5 6) (3 4 5 6) (5 6)) +\end{scheme} +\end{entry} + +\begin{entry}{% \proto{reverse}{ list}{procedure} \proto{list-tail}{ list \vr{k}}{procedure} \proto{list-ref}{ list \vr{k}}{procedure} @@ -387,6 +409,17 @@ have been deleted. The predicate used to test the presence of \var{obj} in \end{scheme} \end{entry} +\begin{entry}{% +\proto{last-pair}{ list}{procedure}} +\saut +Returns the last pair of \var{list}\footnote{\ide{Last-pair} was a standard +procedure in {\rthree}.}. +\begin{scheme} +(last-pair '(1 2 3)) \lev 3 +(last-pair '(1 2 . 3)) \lev (2 . 3) +\end{scheme} +\end{entry} + \begin{entry}{% \proto{list*}{ obj}{procedure}} \saut @@ -1275,15 +1308,11 @@ undefined. Otherwise, it returns the handler currently associated to \begin{entry}{% \proto{load}{ filename}{procedure} -\proto{load}{ filename environment}{procedure}} +\proto{load}{ filename module}{procedure}} \saut The first form is identical to \rrrr{}. The second one loads the -content of \var{filename} in the given \var{environment}. So, the first -form is equivalent to -\begin{scheme} -(load filename (global-environment)) -\end{scheme} +content of \var{filename} in the given \var{module} environment. \begin{note} The \var{load} primitive has been extended to allow loading of object files, though this is not implemented on all systems. @@ -1296,13 +1325,13 @@ form is equivalent to \begin{entry}{% \proto{try-load}{ filename}{procedure} -\proto{try-load}{ filename environment}{procedure}} +\proto{try-load}{ filename module}{procedure}} \saut Tries to load the file named \var{filename}. If \var{filename} exists and is readable, it is loaded, and \ide{try-load} returns {\schtrue}. Otherwise, the result of the call is {\schfalse}. The second form of \var{try-load} tries to load the content of \var{filename} -in the given \var{environment}. +in the given \var{module} environment. \end{entry} \begin{entry}{% @@ -1310,16 +1339,17 @@ in the given \var{environment}. \saut Defines \hyper{symbol}s as autoload symbols associated to file \var{filename}. -Fisrt evaluation of an autoload symbol will cause the loading of its -associated file. \var{Filename} must provide a definition for the symbol which +First evaluation of an autoload symbol will cause the loading of its +associated file in the module environment in which the autoload was done. +\var{Filename} must provide a definition for the symbol which lead to its loading, otherwise an error is signaled. \end{entry} \begin{entry}{% -\proto{autoload?}{ symbol}{procedure}} +\proto{autoload?}{ symbol module}{procedure}} \saut -Returns {\schtrue} if \var{symbol} is an autoload symbol; returns {\schfalse} -otherwise. +Returns {\schtrue} if \var{symbol} is an autoload symbol in \var{module} +environment ; returns {\schfalse} otherwise. \end{entry} \begin{entry}{% diff --git a/Doc/Reference/Reference2.tex b/Doc/Reference/Reference2.tex index 7bba9b7..87c7bb3 100644 --- a/Doc/Reference/Reference2.tex +++ b/Doc/Reference/Reference2.tex @@ -3,7 +3,7 @@ % % Author: Erick Gallesio [eg@unice.fr] % Creation date: ??-Nov-1993 ??:?? -% Last file update: 6-Apr-1998 11:25 +% Last file update: 20-Apr-1998 11:58 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -342,11 +342,11 @@ they are automatically exported. \end{entry} \begin{entry}{% -\proto{with-module}{ module \hyperi{expr} \hyperii{expr} \ldots} {syntax}} +\proto{with-module}{ name \hyperi{expr} \hyperii{expr} \ldots} {syntax}} \saut Evaluates the expressions of \hyperi{expr} \hyperii{expr} \ldots in -the \var{module} environment. \var{Module} must have been created +the environment of module \var{name}. Module \var{name} must have been created previously by a \ide{define-module}. The result of \ide{with-module} is the result of the evaluation of the last \hyper{expr}. @@ -376,6 +376,34 @@ Returns the current-module. \end{scheme} \end{entry} +\begin{entry}{% +\proto{select-module}{ name} {syntax}} +\saut + +Evaluates the expressions which follows in module \var{name} +environment. Module \var{name} must have been created previously by a +\ide{define-module}. The result of \ide{select-module} is undefined. +\ide{Select-module} is particularly useful when debugging since it +allows to place toplevel evaluation in a particular module. The +following transcript shows an usage of +\ide{select-module}\footnote{This transcript uses the default value for the + function \texttt{repl-display-prompt} (see page \pageref{repl-display-prompt}) + which displays the name of the current module in the prompt.}: + +\begin{scheme} +STk> (define foo 1) +STk> (define-module bar + (define foo 2)) +STk> foo +1 +STk> (select-module bar) +bar> foo +2 +bar> (select-module STk) +STk> +\end{scheme} +\end{entry} + \begin{entry}{% \proto{module-name}{ module} {procedure}} \saut @@ -691,9 +719,6 @@ which does not exist). \proto{glob}{ \vri{pattern} \vrii{pattern} \dotsfoo} {procedure}} \saut -%%%%%%%%%%%%%% Irgendwann h"alt Gott seine Arme auf: -%%%%%%%%%%%%%% BIS HIERHIN UND NICHT WEITER! - The code for \ide{glob} is taken from the Tcl library. It performs file name ``globbing'' in a fashion similar to the csh shell. \ide{Glob} returns a list of the filenames that match at least one of @@ -727,6 +752,29 @@ check for existence is made unless a pattern contains a ?, \etoile, or construct. \end{entry} +\begin{entry}{% +\proto{remove-file}{ string} {procedure}} +\saut +Removes the file whose path name is given in \var{string}. +The result of \ide{remove-file} is undefined. +\end{entry} + +\begin{entry}{% +\proto{rename-file}{ \vri{string} \vrii{string}} {procedure}} +\saut +Renames the file whose path-name is contained in \vri{string} in the path +name given by \vrii{string}. The result of \ide{rename-file} is undefined. +\end{entry} + +\begin{entry}{% +\proto{temporary-file-name}{ string} {procedure}} +\saut + +Generates a unique temporary file name. The value returned by +\ide{temporary-file-name} is the newly generated name of {\schfalse} +if a unique name cannot be generated. +\end{entry} + \begin{entry}{% \proto{getcwd}{} {procedure}} \saut diff --git a/Doc/Reference/manual.dvi b/Doc/Reference/manual.dvi index 601f294..cf00bcb 100644 Binary files a/Doc/Reference/manual.dvi and b/Doc/Reference/manual.dvi differ diff --git a/Doc/Reference/manual.ps b/Doc/Reference/manual.ps index c2b192e..ded079e 100644 --- a/Doc/Reference/manual.ps +++ b/Doc/Reference/manual.ps @@ -1,14 +1,14 @@ %!PS-Adobe-2.0 %%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software %%Title: manual.dvi -%%Pages: 90 +%%Pages: 105 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentPaperSizes: A4 %%EndComments %DVIPSCommandLine: dvips -t a4 -f manual.dvi %DVIPSParameters: dpi=300, comments removed -%DVIPSSource: TeX output 1998.04.10:0942 +%DVIPSSource: TeX output 1998.04.20:1201 %%BeginProcSet: tex.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 @@ -451,230 +451,311 @@ FFFC00007FFFFE00001FFFFF000001FFFF8000001FFFC0000000FFE00000003FE0000000 0FF000000007F000000003F000000001F860000001F8E0000000F8E0000000F8E0000000 F8E0000000F8F0000000F8F0000000F0F0000000F0F8000001F0FC000001E0FC000003C0 FF000007C0FF80000F80FBE0001F00F1FE00FE00E07FFFF800E01FFFE000C001FF800025 -377BB52F>115 D E /Ff 14 118 df<78FCFCFCFC78000000000078FCFCFCFC7806117D -900C>58 D<1FF0303C701EF81FF81FF81F703E007C00F000C00180018003000300030003 -00000000000000000007800FC00FC00FC00FC00780101A7E9915>63 -D<1FF000383C007C1E007C0F007C0F00380F00000F0000FF000FCF003E0F007C0F00F80F -00F80F00F80F00F817007C27E01FC3E013117F9015>97 D -I<03FC000F0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F800007800 -007800003C01801C03000F060003FC0011117F9014>I<0007E00007E00001E00001E000 -01E00001E00001E00001E00001E003F9E00F07E01C03E03C01E07801E07801E0F801E0F8 -01E0F801E0F801E0F801E07801E07801E03C01E01C03E00F0DF803F9F8151A7F9919>I< -03F0000E1C001C0E003C0700780700780780F80780F80780FFFF80F80000F80000780000 -7800003C01801C03000E060003FC0011117F9014>I<07F1C01C1EE0380EE0780FC0780F -00780F00780F00780F00380E001C1C0037F0002000003000003000003FFE001FFF801FFF -C07003C0E000E0E000E0E000E0E000E07001C03C078007FC0013197F9016>103 -D107 D109 DI<03F8000E0E003C07803803807803C07803C0F803E0F803E0F803E0F803 -E0F803E0F803E07803C07C07C03C07800E0E0003F80013117F9016>I114 -D117 D E /Fg -2 111 df<040C0000000000305898983030606464683006127E910B>105 -D<71F09A189C18981818183030303030323062606460380F0B7E8A13>110 -D E /Fh 3 108 df<0F88305860384018C008C008C008E00070007F003FE01FF003F800 -38001C000C800C800C800CC008E018D83087C00E177E9614>83 D<7FFFF8603818403808 -403808803804803804803804003800003800003800003800003800003800003800003800 -00380000380000380000380000380000380000380007FFC016177F961A>I107 D E /Fi 19 122 df<000C001C007000E001 -C0038007000E000C001C003800380030007000700070006000E000E000E0006000700070 -003000380018000C00060002000E1D779914>40 D<0100018000C0006000700030003800 -38003800380038003800380038003800380070007000E000E001C00180038007000E001C -007000E00080000D1D7D9914>I<0C1E3E1E1C00000000000070F0F8F0600710778F14> -58 D<030007800F800780070000000000000000000000000018003C003E003C001C000C -0018003000E000C0000915798F14>I<03980FFC1C78387830787078E070E070E070E070 -E0EEE0EEE1EE63EC7F7C1C380F107B8F14>97 D<03E007F00E381838383870006000E000 -E000E000E000E000E01070783FF81FE00D107A8F14>99 D<003E003E000E000E000E001C -001C039C0FFC1C78387830787078E070E070E070E070E0EEE0EEE1EE63EC7F7C1C380F17 -7B9614>I<03E007F81E1C381C301C7038E0F8FFE0FF80E000E000E000E01070783FF81F -E00E107A8F14>I<00F30003FB80070F000E0F000C0F001C0F00380E00380E00380E0038 -0E00381C00381C00383C00187C000FF80007B800003800003800007000007000C0E000E1 -C000FF80007E000011187C8F14>103 D<004000E00040000000000000000000000E003F -007380E380E380E780070007000E000E001E701C701C701CE00FC007000C187A9714> -105 D108 D<0DE3C00FF7E01F3E701E3C701E3C -701C38703C78E03870E03870E03871C070E1C070E1C070E18070E180E1C1C060C0C01410 -7E8F14>I<30F879FCFF8EFE0EFE0EFC0E3C1C381C381C3838703F703F70777076E03E60 -1C10107C8F14>I<03E007F00E38181C381C701C601CE01CE01CE018E038E070E06071C0 -3F801F000E107B8F14>I<070E000FBF800DF1801DE1C01DC1C01DC1C00381C00381C003 -81C00381C0078380078300078700078E000FFC000E70000E00000E00001C00001C00001C -00001C0000FF0000FF000012187F8F14>I<387E007CFF00EF8380EF0380EF0100EE0000 -1E00001C00001C00001C000038000038000038000038000070000030000011107B8F14> -114 D<01F807FC0C0E180E18041C000FC007F001F8001C000CE00CE00CE0387FF01FC00F -107C8F14>I<0180038003800380038007000700FFE0FFE00E000E000E000E001C001C00 -1C001C003870387038E038C01F800F000C177A9614>I<1C03003E0380770700E70700EE -0700EE07000E0E001C0E001C0E001C0E00381C00381C00183C001C7C000FF80007B80000 -380000300000700070E00070C0007380003F00001E000011187C8F14>121 -D E /Fj 6 116 df<07E100181B00200700600300C00300C00100C00100C00100E00000 +377BB52F>115 D E /Ff 15 124 df<78FCFCFCFC7800000000000078FCFCFCFC780612 +7D910D>58 D<0FF0303C601EF01FF81FF81F701F003E003C007000E001C0018001800300 +0300030003000300000000000000000007800FC00FC00FC00FC00780101D7D9C17>63 +D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07 +C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 DI<03FC000E0E001C1F003C1F00781F00780E00F80000F800 +00F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E9115 +>I<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F001 +F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F078 +01F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<03FC000F07001C03803C01C0 +7801C07801E0F801E0F801E0FFFFE0F80000F80000F800007800007800603C00601E00C0 +0F038001FC0013127F9116>I<03F0F00E1F383C0F383807307807807807807807807807 +803807003C0F001E1C0033F0003000003000003000003FFF003FFFC01FFFE01FFFF07801 +F8F00078F00078F000787000707800F01E03C007FF00151B7F9118>103 +D107 D109 DI<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F8 +00F8F800F87800F07800F03C01E01E03C00F078001FC0015127F9118>I114 D117 D123 D E /Fg 2 +111 df<06070600000000384C4C8C98181830323264643808147F930C>105 +D<30F8590C4E0C9C0C980C180C180C30183019303130316032601C100D7F8C15>110 +D E /Fh 3 108 df<07E100181B00200700600300C00300C00100C00100C00100E00000 7000007E00003FE0001FFC0003FE00003F00000700000380000380800180800180800180 C00100C00300E00200DC0C0083F000111A7D9917>83 D<7FFFFF00701C0700401C010040 1C0100C01C0180801C0080801C0080801C0080001C0000001C0000001C0000001C000000 1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000 1C0000001C0000001C0000001C000003FFE000191A7E991D>I107 DI<03F8000E0E001C07003803807001C07001C06000C0E000E0 -E000E0E000E0E000E0E000E0E000E07001C07001C03803801C07000E0E0003F80013137E -9218>111 D<1F9020704030C010C010C000E0007C007F803FC007E00070007000308030 -8030C020E0409F800C137E9211>115 D E /Fk 16 119 df<00000600001E0000780001 -E0000780001E0000380000E00003C0000F00003C0000F00000F000003C00000F000003C0 -0000E000003800001E000007800001E000007800001E00000617187D941E>60 -D62 D<000010000000300000007000000070000000F8000000B800000138 -00000238000002380000043800000C38000008380000103C0000101C0000201C0000401C -00007FFC0000801C0000801C0001001C0002001C0002000E0004000E000C000E001C000E -00FF00FFC01A1A7F991D>65 D<03FFFC000070070000700380007003C000E003C000E003 -C000E003C000E003C001C0078001C00F0001C01E0001C03C0003FFF80003803C0003801E -0003800F0007000F0007000F0007000F0007000F000E001E000E001E000E003C000E0078 -001C01E000FFFF80001A1A7E991D>I<0007E040003C18C000E005C001C003C003800180 -070001800E0001801C0001803C000100380001007800000078000000F0000000F0000000 -F0000000F0000000F0000400F0000400F0000400F0000800700010003000100038006000 -1C0080000703000001FC00001A1A7E991B>I<03FFF80000700F00007007800070038000 -E003C000E003C000E003C000E003C001C0078001C0070001C01E0001C0780003FFC00003 -8060000380300003803800070038000700380007003800070038000E0078000E0078000E -0078400E0078801C003C80FFC01F001A1A7E991D>82 D<001F080060D800803801003803 -001006001006001006001006000007000007C00003FC0001FF00007F80000FC00001C000 -01C00000C02000C02000C0600180600180600300700600CC1C0083F000151A7E9917>I< -000FC00001C00001C00001C000038000038000038000038000070000070003E700061700 -1C0E00380E00300E00700E00601C00E01C00E01C00E01C00E03900C03900E03900607900 -219A001E0E00121A7F9914>100 D<01F006081C04380470047008FFF0E000E000E000E0 -00E0046008601030600F800E107F8F12>I<0007C0000C60001CE00018C0003800003800 -00380000380000700000700007FF0000700000700000E00000E00000E00000E00000E000 -01C00001C00001C00001C00001C00001C000038000038000038000030000030000670000 -E60000CC000078000013217E9913>I<0300038003000000000000000000000000000000 -3C004E004E008E008E009C001C001C0038003800390071007100720072003C00091A7E99 -0D>105 D<703E0058C7009D03809E03809C03809C0380380700380700380700380E0070 -0E40700E40701C40701C80E00C8060070012107E8F17>110 D<30F059189E389C189C00 -9C0038003800380038007000700070007000E00060000D107E8F11>114 -D<03E006180818183818301C001FC00FE007F000700030E030E030806040C03F000D107E -8F12>I<06000E000E000E000E001C001C00FFE01C003800380038003800700070007000 -7000E080E080E100E100660038000B177E960E>I<380C4C0E4E0E8E069C069C061C0438 -0438043808700870083010382018400F800F107E8F13>118 D E -/Fl 59 122 df<60E0F0703010080507759914>18 D<183C3C1C08080810204080060B78 -990C>39 D<000400180030006000C0008001800300030006000E000C001C001800180038 -003000300070007000600060006000E000E000E000C000C000C000C000C0006000600060 -0020003000100008000E267B9B10>I<0040006000200030001000180018001800180018 -001800180018001800180018003800380030003000700070006000E000C000C001C00180 -03800300060006000C00180010002000400080000D267F9B10>I<183878380810102020 -4080050B7D830C>44 DI<3078F06005047C830C>I<000008 -0000180000180000300000300000600000600000C00000C0000180000300000300000600 -000600000C00000C0000180000300000300000600000600000C00000C000018000030000 -0300000600000600000C00000C0000180000180000300000600000600000C00000800000 -15257F9B14>I<007C000186000303000603000C03801C03801C03803803803803803803 -80700700700700700700700700E00E00E00E00E00E00E01C00E01C00E01800E030006060 -0030C0001F000011187C9714>I<000800180030007001F00E7000E000E000E000E001C0 -01C001C001C0038003800380038007000700070007000F00FFE00D187C9714>I<007C00 -0186000203000403800483800883801083801083801083801107001207000C0E00001C00 -0030000060000180000200000C00001001002001003C060067FE00C1FC0080F00011187D -9714>I<000300000380000700000700000700000E00000E00000E00001C00001C000018 -0000300000300000600000C00000C600018E00030E00021C00041C00081C00101C007FB8 -00807F80003800003800007000007000007000007000006000111F7F9714>52 -D<001E000061800180800303800603800E00001C000018000038000039F000721800740C -00780E00700E00F00E00E00E00E00E00E00E00E01C00E01C0060380060700030C0001F80 -0011187C9714>54 D<09C04017E0801FF1803C1F00300200600600400400800C00000800 -00180000300000300000700000600000E00000C00001C00001C000018000038000038000 -03800007000003000012187B9714>I<007C000186000703000E03000C03801C03803803 -80380380380380380780380700380F001817000C270007CE00000E00000C00001C000018 -00E03000E0600080C000C380003E000011187C9714>57 D<060F1E0C0000000000000000 -3078F06008107C8F0C>I<0000200000600000E00000E00001E00001F000027000027000 -047000087000087000107000107000207000407000407000803800FFF801003802003802 -0038040038040038080038180038FE01FF181A7E991D>65 D<03FFF800700E0070060070 -0700E00700E00700E00700E00701C00E01C01C01C03801C07003FFE00380780380380380 -1C07001C07001C07001C07001C0E00380E00380E00700E00E01C03C0FFFF00181A7D991B ->I<000F8200706200C01603801E07000C0E000C1C000C18000C38000830000870000070 -0000E00000E00000E00000E00000E00020E00020E00020E0004060004060008030010010 -06000C180003E000171A7A991B>I<03FFF80000700E00007007000070030000E0018000 -E0018000E0018000E001C001C001C001C001C001C001C001C001C0038003800380038003 -80038003800300070007000700070007000E0007000C000E001C000E0038000E0070000E -00E0001C038000FFFE00001A1A7D991D>I<03FFFF00700700700300700100E00100E001 -00E00100E00101C08001C08001C08001C18003FF00038100038100038100070200070004 -0700040700080E00080E00180E00100E00301C00E0FFFFE0181A7D991A>I<03FF007000 -70007000E000E000E000E001C001C001C001C0038003800380038007000700070007000E -000E000E000E001C00FF80101A7D990F>73 D<03FF0000700000700000700000E00000E0 -0000E00000E00001C00001C00001C00001C0000380000380000380000380000700000700 -100700100700200E00200E00600E00400E00C01C0380FFFF80141A7D9918>76 -D<03F8001FC00078003C000078003C000078005C0000B800B80000B800B800009C013800 -009C013800011C027000011C027000011C047000011C087000021C08E000021C10E00002 -1C10E000021C20E000041C41C000041C41C000041C81C000041C81C000080F038000080F -038000080E038000180C038000180C070000FE083FE000221A7D9922>I<03F007F80078 -00C00078008000780080009C0100009C0100009C0100008E0100010E0200010602000107 -0200010702000203840002038400020384000201C4000401C8000401C8000400E8000400 -E8000800F00008007000080070001800700018002000FE0020001D1A7D991D>I<001F80 -00706001C03003001806001C0E000C1C000C18000E38000E30000E70000E70000EE0001C -E0001CE0001CE00038E00038E00030E00070E000E0E000C06001807003003806001C1C00 -07E000171A7A991D>I<03FFF800701C00700600700700E00700E00700E00700E00701C0 -0E01C00E01C01C01C03803806003FF800380000380000700000700000700000700000E00 -000E00000E00000E00001C0000FF8000181A7D991A>I<03FFF000701C00700E00700700 -E00700E00700E00700E00701C00E01C01C01C03801C0E003FF800380C003806003807007 -00700700700700700700700E00E00E00E00E00E10E00E21C0062FF803C181A7D991C>82 -D<003F1000609001807001007003002006002006002006002006000007000007C00003F8 -0001FE00007F00000F80000380000180000180200180200180600300600300600600700C -00C8180087E000141A7D9916>I<3FFFFC381C0C201C04401C0440380480380480380480 -380400700000700000700000700000E00000E00000E00000E00001C00001C00001C00001 -C000038000038000038000038000078000FFF800161A79991B>I<7FE0FF0E00180E0010 -0E00101C00201C00201C00201C0020380040380040380040380040700080700080700080 -700080E00100E00100E00100E00200E00200E004006008006010003860000F8000181A78 -991D>I87 -D<01FF07F8007801C000380180003C0300001C0200001C0400001E0800000E1000000E20 -0000074000000780000007800000038000000380000007C0000009C0000011C0000020E0 -000040E0000080F0000100700003007000020078000C0038001C003800FF01FF001D1A7E -991D>I<007E007E00C000C000C000C00180018001800180030003000300030006000600 -060006000C000C000C000C00180018001800180030003000300030006000600060006000 -C000FC00FC000F257E9B0C>91 D<007E007E000C000C000C000C00180018001800180030 -003000300030006000600060006000C000C000C000C00180018001800180030003000300 -030006000600060006000C00FC00FC000F25819B0C>93 D<03CC0E2E181C381C301C701C -E038E038E038E038C072C072C07260F261341E180F107C8F14>97 -D<7E000E000E000E001C001C001C001C00380038003BC03C307830701870187018E038E0 -38E038E038C070C060C0E060C063801E000D1A7C9912>I<01E006180C18183830107000 -6000E000E000E000E000E008E010602030C01F000D107C8F12>I<001F80000380000380 -000380000700000700000700000700000E00000E0003CE000E2E00181C00381C00301C00 -701C00E03800E03800E03800E03800C07200C07200C0720060F2006134001E1800111A7C -9914>I<01E00E181C08380870087010FFE0E000E000E000E000E0086010602030C01F00 -0D107C8F12>I<000700000980001B80003B000038000030000070000070000070000070 -0007FF0000E00000E00000E00000E00000E00001C00001C00001C00001C00001C0000380 -00038000038000038000030000070000070000060000660000E40000CC00007000001121 -81990C>I<00F300038B800607000E07000C07001C0700380E00380E00380E00380E0030 -1C00301C00301C00183C0018780007B800003800003800007000607000E0E000C1C0007F -000011177E8F12>I<1F80000380000380000380000700000700000700000700000E0000 -0E00000E7C000F86001E07001E07001C07001C0700380E00380E00380E00381C00701C80 -701C80703880703900E01900600E00111A7E9914>I<030706000000000000384C4E8E9C -9C1C3838707272E2E4643808197C980C>I<000C000E000C000000000000000000000000 -00E001380238043804380438007000700070007000E000E000E000E001C001C001C001C0 -03806380E700CE0078000F2081980C>I<1F8003800380038007000700070007000E000E -000E0E0E131C271C431C801F003C003F8039C038E070E270E270E270E4E0646038101A7E -9912>I<1F0707070E0E0E0E1C1C1C1C3838383870707070E4E4E4E4E830081A7D990A>I< -307C1E00598663009E0783809E0703809C0703809C070380380E0700380E0700380E0700 -380E0E00701C0E40701C0E40701C1C40701C1C80E0380C80601807001A107C8F1F>I<30 -7C005986009E07009E07009C07009C0700380E00380E00380E00381C00701C80701C8070 -3880703900E01900600E0011107C8F16>I<01F006180C0C180E300E700E600EE00EE00E -E00CE01CE018E030606030C01F000F107C8F14>I<030F000590C009E0C009C06009C060 -09C0600380E00380E00380E00380E00701C00701800703800703000E8E000E78000E0000 -0E00001C00001C00001C00001C0000FF00001317808F14>I<03C20E2E181C381C301C70 -1CE038E038E038E038C070C070C07060F061E01EE000E000E001C001C001C001C01FF00F -177C8F12>I<30F05D189E389C189C009C0038003800380038007000700070007000E000 -60000D107C8F10>I<03E004300830187018601C001F801FC00FE000E00060E060E06080 -C041803E000C107D8F10>I<06000E000E000E000E001C001C00FFC01C00380038003800 -38007000700070007000E100E100E100E200E40038000A177C960D>I<38064C074E0E8E -0E9C0E9C0E1C1C381C381C381C7039703970393079389A0F0C10107C8F15>I<38184C1C -4E1C8E0C9C0C9C0C1C08380838083810701070107020304018C00F000E107C8F12>I<38 -0C104C0E384E1C388E1C189C1C189C1C181C381038381038381038381070702070702070 -704030704018B8800F0F0015107C8F19>I<38064C074E0E8E0E9C0E9C0E1C1C381C381C -381C703870387038307838F00F700070006060E0E1C0C18047003C0010177C8F13>121 -D E /Fm 6 106 df0 D<03C00FF01FF83FFC7FFE7FFE -FFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 +03801C03C01C03E0FF87F815137F9218>107 D E /Fi 19 122 df<000E001E007800F0 +01C00380070007000E001C001C003800380070007000E000E000E000E000E000E000E000 +E000E000E000E000E0007000700038001C000E0006000F21769C16>40 +D<00C000E0007000700038001C001C001C001C000E000E000E000E000E000E001C001C00 +1C001C003800380070007000E001C001C0038007000E001C007800F000C0000F217C9C16 +>I<060F1F1E0C000000000000000070F0F8F0600812769116>58 +D<00C001E003E003C00180000000000000000000000000000000000C001E001E001E000E +000E001C003C007800F00040000B18799116>I<03C807FC0FFC1C7C3878383870387038 +E070E070E070E0F3E0E7E1E7E3E77FFE3F7C1C3810127A9116>97 +D<00F803FC07FE0F0E1C1E380E70007000E000E000E000E000E000F002700F3FFE1FFC0F +F010127A9116>99 D<003E007F003F000E000E000E000E03DC07FC0FFC1C7C3878383870 +387038E070E070E070E0F3E0E7E1E7E3E77FFE3F7C1C3810197A9816>I<00F803FC07FE +0F0E1C0E380E701E7FFCFFF8FFE0E000E000E000F002780F3FFE1FFC0FF010127A9116> +I<001E20007F7000FFF001E1F003C1E00381E00700E00700E00E01C00E01C00E01C00E03 +C00E03800E0780071F8007FF8003FF0001E700000700000700000E00000E00300E00783C +00FFF8007FF0003FC000141B7E9116>103 D<006000F000F0006000000000000000000F +001F803F8071C07380E380E3800700070007000E000E301C701C701CE01FE00FC007000C +1A799916>105 D<7F00FF807F8007000700070007000E000E000E000E001C001C001C00 +1C00380038003800386070E070E070E07FC03F800F000B19789816>108 +D<06F0F00FF9F80FFFFC0F9F9C1F1F1C1E1E1C1C1C1C1C1C1C3C3C383838383838383838 +70707070707070707060707070E0E07060603016127E9116>I<1C3C003EFE007FFF007F +C700EF8700EF0700EF07000E07001E0E001C0E001C0E001C1CC0381DC0381DC03839C038 +1F80701F00300E0012127C9116>I<01E007F00FF81E1C3C1C381E700E700EE01CE01CE0 +1CE038E038E07071E07FC03F801E000F127A9116>I<03878007CFC00FFFE00EF8E01CF0 +F01CF0701CE07000E07001C0E001C0E001C0E001C1C003C1C003C38003C78003FF00077E +000738000700000700000E00000E00000E00000E00007F8000FFC0007F8000141B7F9116 +>I<1C1F003E7F807FFFC077E1E0E7C0E0E781E0E781E00700C00F00000E00000E00000E +00001C00001C00001C00001C000038000018000013127B9116>114 +D<00FC0001FE0003FF000707800E07000E06000E000007F00003FC0000FE000007000007 +00700700F00700E01E00FFFC007FF8001FE00011127C9116>I<004000E000E001C001C0 +01C001C07FFCFFFC7FFC038007000700070007000E000E000E000E0C1C1C1C1C1C381FF0 +0FE007C00E197A9816>I<0E00801F01C03F81C07381C0738380E38380E703800703800E +07000E07000E07000E0F000E0E000E1E000E3E000FFE0007FC0003DC00001C00001C0000 +380038780078700071E0007FC0003F80001E0000121B7C9116>121 +D E /Fj 2 84 df<03FFF80000700F00007007800070038000E003C000E003C000E003C0 +00E003C001C0078001C0070001C01E0001C0780003FFC000038060000380300003803800 +070038000700380007003800070038000E0078000E0078000E0078400E0078801C003C80 +FFC01F001A1A7E991D>82 D<001F080060D8008038010038030010060010060010060010 +06000007000007C00003FC0001FF00007F80000FC00001C00001C00000C02000C02000C0 +600180600180600300700600CC1C0083F000151A7E9917>I E /Fk +6 116 df<03F0400C0CC01002C03001C06000C0E000C0E00040E00040E00040F00000F8 +00007E00007FE0003FFC001FFF0007FF80007F800007C00003E00001E00000E08000E080 +00E08000E0C000C0C000C0E00180D00300CE060081F800131E7D9C19>83 +D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F00 +20000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F80 +0003FFFC001B1C7D9B21>I107 DI<01F800070E000C03001C03803801C07801E07000E0F000F0F000 +F0F000F0F000F0F000F0F000F0F000F07000E07801E03801C01C03801E0780070E0001F8 +0014157E941A>111 D<1F1030F06030C030C010C010E000E0007E003FC01FE003F00078 +00380018801880188010C030F0608F800D157E9413>115 D E /Fl +16 119 df<000001800000078000001E00000078000001E00000078000000E0000003800 +0000F0000003C000000F0000003C000000F0000000F00000003C0000000F00000003C000 +0000F0000000380000000E0000000780000001E0000000780000001E0000000780000001 +80191A7D9620>60 D62 D<00000C0000000C0000001C0000001C0000003C0000005C +0000005C0000009E0000008E0000010E0000020E0000020E0000040E0000040E0000080E +0000100E0000100E0000200700003FFF0000400700008007000080070001000700010007 +000200070004000700040007001C000780FF803FF01C1D7F9C1F>65 +D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000F0007000 +F0007001E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C003 +C0038003C0038003C0038003C0038003C0070007800700070007000E0007001C000E0078 +00FFFFC0001C1C7E9B1F>I<0001F808000E061800380138006000F001C0007003800070 +070000300F0000200E0000201C0000203C0000203C000000780000007800000078000000 +F0000000F0000000F0000000F0000000F0000100F0000100F00001007000020070000200 +30000400380008001C0010000E0060000701800000FE00001D1E7E9C1E>I<01FFFE0000 +3C03C0003800E0003800F00038007000380070007000F0007000F0007000F0007001E000 +E001C000E0078000E01E0000FFF00001C0380001C00C0001C00E0001C00E0003800E0003 +800E0003800E0003800E0007001E0007001E0807001E0807001E100F000F10FFE00F2000 +0003C01D1D7E9B20>82 D<000FC100303300400F00800601800603000603000606000406 +000407000007000007800003F00001FF0000FFC0003FE00003E00000F000007000003000 +00302000302000306000606000606000C0600080F00300CC060083F800181E7E9C19>I< +0007E00000E00000E00001C00001C00001C00001C000038000038000038000038001E700 +0717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E01C00E01C00E03880 +E03880E038806078803199001E0E00131D7E9C16>100 D<01F007080C08180438083008 +70307FC0E000E000E000E000E000E0046008601030600F800E127E9113>I<0001E00006 +30000E78000EF0001C60001C00001C00001C00001C0000380000380003FFC00038000038 +0000700000700000700000700000700000E00000E00000E00000E00000E00001C00001C0 +0001C00001C00001C000018000038000038000630000F30000F60000E400007800001525 +7E9C14>I<01C003C003C001800000000000000000000000001C00270047004700870087 +000E000E001C001C001C003800388038807080710032001C000A1C7E9B0E>105 +D<3C1F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C03801C07 +00380710380710380E10380E2070064030038014127E9119>110 +D<3C3C4E424687470F8E1E8E0C0E000E001C001C001C001C003800380038003800700030 +0010127E9113>114 D<01F0060C0C040C0E180C1C001F000FE00FF003F80038201C7018 +F018F010803060601F800F127E9113>I<00C001C001C001C00380038003800380FFF007 +00070007000E000E000E000E001C001C001C001C00382038203840384018800F000C1A80 +990F>I<1C03270747074703870187010E010E011C021C021C021C041804180818081C10 +0C2007C010127E9114>118 D E /Fm 7 58 df<0C001C00EC000C000C000C000C000C00 +0C000C000C000C000C000C000C000C000C000C00FFC00A137D9211>49 +D<1F0060C06060F070F030603000700070006000C001C00180020004000810101020207F +E0FFE00C137E9211>I<0FC030707038703870380038003000E00FC0007000380018001C +601CF01CF018E03860701FC00E137F9211>I<006000E000E00160026006600C60086010 +6020606060C060FFFC0060006000600060006003FC0E137F9211>I<60607FC07F804400 +4000400040004F0070C040E0006000700070E070E070E06040E021C01F000C137E9211> +I<0FC0107020186018601870183C303F600F800FE031F06078C01CC00CC00CC00C601830 +300FC00E137F9211>56 D<0F00308060404060C020C030C030C0304030607030B00F3000 +3000200060E040E08041003E000C137E9211>I E /Fn 60 122 df18 D<183C3C3C0404080810204080060C779C0D>39 +D<00030006000800180030006000C000C0018003000300060006000C000C001C00180018 +00380030003000700070006000600060006000E000E000E000E000E00060006000600060 +00600020003000100008000800102A7B9E11>I<001000100008000C0004000600060006 +00060006000700070007000700070006000600060006000E000E000C000C001C00180018 +0038003000300060006000C000C001800300030006000C00180010006000C000102A809E +11>I<183878380808101020404080050C7D830D>44 DI<30 +78F06005047C830D>I<00000200000600000600000C00000C0000180000300000300000 +600000600000C00000C0000180000180000300000600000600000C00000C000018000018 +0000300000300000600000C00000C0000180000180000300000300000600000C00000C00 +00180000180000300000300000600000600000C0000080000017297F9E15>I<003E0000 +E1800181C00300C00700C00600C00E00E00C00E01C00C01C00C01801C03801C03801C038 +01C0700380700380700380700380600700E00700E00600E00E00E00E00E00C00E0180060 +380060700030C0001F0000131D7C9B15>I<0004000C00180038007807B8007000700070 +007000E000E000E000E001C001C001C001C0038003800380038007000700070007000F00 +FFF00E1C7B9B15>I<003E000041800080C00100C00200E00440E00440E00840E00840E0 +0840E01081C01081C01103800E0300000600000C00001800006000008000030000040000 +0800401000802000802001007F070043FE0081FC00807800131D7D9B15>I<0001800001 +C0000380000380000380000300000700000700000600000E00000C00001C000018000018 +0000300000300000600000400000C600018E00010E00020E00061C000C1C00181C003F1C +0040F800803F8000380000380000700000700000700000700000E00000600012247E9B15 +>52 D<000F8000386000602000C0E00180E00300000600000E00000C00001C00001CF800 +3904003A06003C0300780300780300700380700300600700E00700E00700E00600E00E00 +E00C00601C0060180020300030C0000F8000131D7C9B15>54 D<09C0400FE0801FE1801C +6100302600201A00600400400C0080080080180000300000300000600000600000C00000 +C00001C0000180000380000300000700000700000700000E00000E00000E00001C00001C +0000180000121D799B15>I<001F000060C000C060018060030030030030060060070060 +0700C00780C003C10003E60001FC0000780001BC00061E000C0F00180700300380200380 +600180600180C00300C00300C006006004006008003830000FC000141D7D9B15>I<003E +0000E1000181800300C00600C00E00C00C00C01C00C01C00C01C01C03801C03801C03801 +C03803C0180380180780080B800C330003C700000700000E00000C00001C00001800E030 +00E0600080C000C180003E0000121D7C9B15>I<060F0F06000000000000000000003078 +F06008127C910D>I<0000180000001800000038000000380000007800000078000000B8 +00000138000001380000023C0000021C0000041C00000C1C0000081C0000101C0000101C +0000201C0000201C00007FFC0000C01C0000801C0001001C0001001E0002000E0002000E +0004000E000C000E001C001E00FF00FFC01A1D7E9C1F>65 D<01FFFF00003C0380003801 +C0003800E0003800E0003800E0007000E0007001E0007001E0007003C000E0038000E00F +0000E01E0000FFFC0001C00E0001C0070001C0078001C007800380078003800780038007 +800380078007000F0007000E0007001E0007003C000E00F000FFFFC0001B1C7E9B1D>I< +0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000801E000080 +1C0000803C0000803C000000780000007800000078000000F0000000F0000000F0000000 +F0000000F0000400F0000400F0000400F000080070000800700010003800200018004000 +0C0180000706000001F800001B1E7A9C1E>I<01FFFF00003C03C0003800E0003800E000 +380070003800700070007800700038007000380070007800E0007800E0007800E0007800 +E0007801C000F001C000F001C000F001C000E0038001E0038001C0038003C00380038007 +00070007000E0007001C00070038000E00E000FFFF80001D1C7E9B1F>I<01FFFFF0003C +00F0003800300038002000380020003800200070002000700020007008200070080000E0 +100000E0100000E0300000FFF00001C0200001C0200001C0200001C02000038040800380 +00800380008003800100070001000700030007000200070006000E003C00FFFFFC001C1C +7E9B1C>I<03FF0078007000700070007000E000E000E000E001C001C001C001C0038003 +800380038007000700070007000E000E000E000E001E00FFC0101C7D9B10>73 +D<01FFC0003C0000380000380000380000380000700000700000700000700000E00000E0 +0000E00000E00001C00001C00001C00001C0000380020380020380020380040700040700 +0C0700180700380E00F0FFFFF0171C7E9B1A>76 D<01FE0001FE003E0001E0002E0003C0 +002E0005C0002E0005C0002E0009C0004E000B80004E001380004E002380004700238000 +870047000087004700008700870000870107000107010E000107020E000107040E000107 +040E000207081C000203881C000203901C000203A01C000403A038000403C038000403C0 +38000C038038001C03007800FF8307FF00271C7E9B25>I<01FC00FF80001C001C00002E +001800002E001000002E0010000027001000004700200000430020000043802000004380 +20000081C040000081C040000081C040000080E040000100E08000010070800001007080 +00010070800002003900000200390000020039000002001D000004001E000004000E0000 +04000E00000C000E00001C00040000FF80040000211C7E9B1F>I<0007F000001C1C0000 +700E0000E0070001C0038003800380070003800E0003C01E0003C01C0003C03C0003C03C +0003C0780003C0780003C0780003C0F0000780F0000780F0000780F0000F00F0000F00F0 +000E00F0001E00F0003C0070003800700070007800E0003801C0001C0380000E0E000003 +F800001A1E7A9C20>I<01FFFE00003C0380003801C0003800E0003800E0003800E00070 +01E0007001E0007001E0007001C000E003C000E0038000E0070000E01C0001FFF00001C0 +000001C0000001C000000380000003800000038000000380000007000000070000000700 +0000070000000F000000FFE000001B1C7E9B1C>I<01FFFE00003C0780003801C0003801 +E0003800E0003800E0007001E0007001E0007001E0007003C000E0038000E0070000E01C +0000FFE00001C0300001C0180001C01C0001C01C0003801C0003801C0003801C0003801C +0007003C0007003C2007003C2007003C200F003C40FFE01E8000000F001B1D7E9B1E>82 +D<000F8400304C00403C0080180100180300180300180600100600100600000700000700 +0003E00003FC0001FF00007F800007C00001C00001C00000C00000C02000C02000C06001 +80600180600300600200F00400CC180083E000161E7D9C17>I<1FFFFFC01C0701C0300E +00C0200E0080600E0080400E0080401C0080801C0080801C0080001C0000003800000038 +000000380000003800000070000000700000007000000070000000E0000000E0000000E0 +000000E0000001C0000001C0000001C0000001C0000003C000007FFE00001A1C799B1E> +I<7FF03FE00F0007000E0006000E0004000E0004000E0004001C0008001C0008001C0008 +001C00080038001000380010003800100038001000700020007000200070002000700020 +00E0004000E0004000E0004000E0008000E0008000E00100006002000060040000300800 +001830000007C000001B1D789B1F>I87 D<01FF81FE003E0078001C00 +60001C00C0001E0080000E0100000F02000007040000070800000790000003A0000003E0 +000001C0000001C0000001E0000002E0000004E0000008F0000010700000207000006038 +0000C0380000803C0001001C0002001C0006001E001E001E00FF007FC01F1C7E9B1F>I< +003F80007F0000600000600000600000C00000C00000C00000C000018000018000018000 +0180000300000300000300000300000600000600000600000600000C00000C00000C0000 +0C0000180000180000180000180000300000300000300000300000600000600000600000 +600000C00000C00000FE0000FE000011297E9E0D>91 D<003F80007F0000030000030000 +0300000600000600000600000600000C00000C00000C00000C0000180000180000180000 +180000300000300000300000300000600000600000600000600000C00000C00000C00000 +C000018000018000018000018000030000030000030000030000060000060000FE0000FE +00001129819E0D>93 D<01E307170C0F180F380E300E700E700EE01CE01CE01CE01CE039 +E039E0396079319A1E0C10127C9115>97 D<3F00070007000E000E000E000E001C001C00 +1C001C0039E03A183C0C380C700C700E700E700EE01CE01CE01CE018E038E030E06060C0 +31801E000F1D7C9C13>I<00F803040E041C0E181C300070007000E000E000E000E000E0 +00E0046008601030600F800F127C9113>I<0007E00000E00000E00001C00001C00001C0 +0001C000038000038000038000038001E7000717000C0F00180F00380E00300E00700E00 +700E00E01C00E01C00E01C00E01C00E03900E03900E03900607900319A001E0C00131D7C +9C15>I<00F807040C0418023804300470087FF0E000E000E000E000E000600460083010 +30600F800F127C9113>I<0003C0000670000C70001C60001C00001C0000380000380000 +380000380000380003FF8000700000700000700000700000700000E00000E00000E00000 +E00000E00001C00001C00001C00001C00001C00003800003800003800003000003000007 +0000C60000E60000CC00007800001425819C0D>I<0078C001C5C00303C00603C00E0380 +0C03801C03801C0380380700380700380700380700380E00380E00380E00181E000C7C00 +079C00001C00001C00003800003800C03000E07000C1C0007F0000121A7E9113>I<0FC0 +0001C00001C0000380000380000380000380000700000700000700000700000E3E000EC3 +000F03800E03801E03801C03801C03801C0380380700380700380700380E00700E40700E +40701C40701C80E00C80600700121D7E9C15>I<01800380010000000000000000000000 +000000001C002600470047008E008E000E001C001C001C00380038007100710071007200 +72003C00091C7C9B0D>I<00030007000300000000000000000000000000000078008C01 +0C020C021C041C001C001C0038003800380038007000700070007000E000E000E000E001 +C001C0C180E300C60078001024819B0D>I<0FC00001C00001C000038000038000038000 +0380000700000700000700000700000E07800E08800E11C00E21C01C41801C80001D0000 +1E00003FC00038E000387000387000707100707100707100707200E03200601C00121D7E +9C13>I<1F800380038007000700070007000E000E000E000E001C001C001C001C003800 +3800380038007000700070007000E200E200E200E40064003800091D7D9C0B>I<1C1E07 +80266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C0701C01C0701 +C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01C01D127C +9122>I<383E004CC3004D03804E03809E03809C03801C03801C03803807003807003807 +00380E00700E40700E40701C40701C80E00C8060070012127C9117>I<00F800030C000E +06001C0300180300300300700380700380E00700E00700E00700E00E00E00E00E01C0060 +180060300030E0000F800011127C9115>I<03878004C86004D03004E03009C03009C038 +01C03801C0380380700380700380700380600700E00700C00701800783000E86000E7800 +0E00000E00001C00001C00001C00001C0000380000FF0000151A809115>I<01E107130C +0F180F380E300E700E700EE01CE01CE01CE01CE038E038E038607831F01E700070007000 +E000E000E000E001C00FF8101A7C9113>I<1C3C2642468747078E068E000E000E001C00 +1C001C001C0038003800380038007000300010127C9112>I<01F006080C080C1C18181C +001F001FC00FF007F0007800386030E030C030806060C01F000E127D9111>I<03000700 +070007000E000E000E000E00FFE01C001C001C0038003800380038007000700070007000 +E080E080E100E100660038000B1A7C990E>I<1C01802E03804E03804E03808E07008E07 +001C07001C0700380E00380E00380E00380E00301C80301C80301C80383C80184D000F86 +0011127C9116>I<1C062E0E4E064E068E028E021C021C02380438043804380830083008 +3010382018400F800F127C9113>I<1E01832703874703874703838707018707010E0701 +0E07011C0E021C0E021C0E021C0E04180C04181C04181C081C1E080C263007C3C018127C +911C>I<1C01802E03804E03804E03808E07008E07001C07001C0700380E00380E00380E +00380E00301C00301C00301C00383C001878000FB800003800003000007000E06000E0C0 +008180004300003C0000111A7C9114>121 D E /Fo 6 106 df0 D<03F0000FFC001FFE003FFF007FFF807FFF80FFFFC0FFFFC0FFFFC0FFFFC0 +FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC0003F00012127E9317>15 +D<000F0038006000E001C001C001C001C001C001C001C001C001C001C001C001C001C001 +C001C0038007001E00F8001E000700038001C001C001C001C001C001C001C001C001C001 +C001C001C001C001C001C000E000600038000F102D7DA117>102 +DI<0020006000C000C000C0 +01800180030003000300060006000C000C0018001800180030003000600060006000C000 +C000600060006000300030001800180018000C000C000600060003000300030001800180 +00C000C000C0006000200B2E7CA112>II E /Fp 9 108 df0 +D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E +9115>15 D<00000030000000001800000000180000000018000000000C000000000C0000 +000006000000000300000000038000000000C0FFFFFFFFF8FFFFFFFFF800000000C00000 +000380000000030000000006000000000C000000000C0000000018000000001800000000 +1800000000300025167E942A>33 D<000003000000000180000000018000000000C00000 +0000E0000000006000FFFFFFF000FFFFFFFC000000000E00000000038000000001E00000 +00007800000000E0000000038000000007000000000C00FFFFFFF800FFFFFFF000000000 +6000000000C000000000C00000000180000000018000000003000025187E952A>41 D<003C00E001C00180038003800380038003800380038003800380038003800380038003 0007001C00F0001C00070003000380038003800380038003800380038003800380038003 800380018001C000E0003C0E297D9E15>102 DII E /Fn 9 108 df0 D<07801FE03FF07FF87FF8FFFC -FFFCFFFCFFFCFFFCFFFC7FF87FF83FF01FE007800E107E9013>15 -D<00000180000000018000000000C000000000C000000000600000000060000000003000 -00000018000000000C00FFFFFFFF80FFFFFFFF800000000C000000001800000000300000 -000060000000006000000000C000000000C0000000018000000001800021147E9226>33 -D<000018000000000C000000000C0000000006000000000700000000030000FFFFFFC000 -FFFFFFE00000000038000000001E0000000007800000000E0000000038000000007000FF -FFFFC000FFFFFF800000000300000000060000000006000000000C000000000C00000000 -18000021167E9326>41 D<003C00E001C003800380038003800380038003800380038003 -8003800380038007001E00F8001E00070003800380038003800380038003800380038003 -8003800380038001C000E0003C0E257E9B13>102 DI<0080018003 -0003000300060006000C000C000C0018001800180030003000600060006000C000C00060 -0060006000300030001800180018000C000C000C00060006000300030003000180008009 -267D9B0F>II<8040C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 -C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 -C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C080400A267C9B13>107 -D E /Fo 45 122 df<60F0F0F0F0F0F0F0F0F0F0700000000060F0F0600414799312>33 -D<0100030003000F803FE073704338C338C338C31073007F003FC00FE003F003384318E3 -18E318E33073603FC00F800300030001000D1A7E9612>36 D<60F0F878181818303060C0 -80050C799312>39 D<0180038006000C0018003800300070007000E000E000E000E000E0 -00E000E000700070003000380018000C0006000380018009197B9612>I<80C06030181C -0C0E0E070707070707070E0E0C1C183060C08008197C9612>I<070007000700E738FFF8 -7FF01FC01FC07FF0FFF8E7380700070007000D0E7E9012>I<0380038003800380038003 -80FFFEFFFEFFFE0380038003800380038003800F0F7F9112>I45 D<60F0F0600404798312>I<0018003800380070007000E000E001C001C001C003 -800380070007000E000E001C001C001C003800380070007000E000E000C0000D1A7E9612 ->I<07C00FE01C703838701C701CE00EE00EE00EE00EE00EE00EE00EE01E701C701C3838 -1C700FE007C00F147F9312>I<060006000E001E00FE00EE000E000E000E000E000E000E -000E000E000E000E000E000E00FFE0FFE00B147D9312>I<0F803FC070E0E070E038E038 -403800380030007000E000C00180030006000C00183830387FF87FF80D147E9312>I<0F -C03FF07838701C201C001C0038007007E007F00038001C000E000E400EE00EE01C78383F -F00FC00F147F9312>I<00F001F00370037006700E700C701C70387038707070E070FFFE -FFFE007000700070007003FE03FE0F147F9312>I<60F0F06000000000000060F0F06004 -0E798D12>58 D<60F0F06000000000000060F0F070303060C0800413798D12>I<001800 -7800F801E007C00F801E003C00F800F000F8003C001E000F8007C001E000F8007800180D -137E9312>I62 D<7FFEFFFEE38EE38EE38E03800380038003800380 -038003800380038003800380038003800FE00FE00F147F9312>84 -D86 D<1FC0003FF000383800101C00001C0007FC003FFC00781C -00E01C00E01C00E01C00703C003FFF801FCF80110E7F8D12>97 DI<07F01FF8383870106000E000E000E000E0006000703838381FF007E00D0E7E8D12>I< -00F800F8003800380038003807B81FF8387870386038E038E038E038E038603870783878 -1FFE0FBE0F147F9312>I<07801FE0387070706038E038FFF8FFF8E0006000703838381F -F007C00D0E7E8D12>I<007E00FF01C70382038003807FFEFFFE03800380038003800380 -038003800380038003803FF83FF81014809312>I<0F9E1FFF38E7707070707070707038 -E03FC03F8070003FE03FF83FFC701EE00EE00EE00E600C783C1FF00FE010167F8D12>I< -F800F800380038003800380039E03FF03E383C3838383838383838383838383838383838 -FE3EFE3E0F147F9312>I<06000F000F0006000000000000007F007F0007000700070007 -00070007000700070007000700FFF0FFF00C157D9412>I107 -DIII<0F803FE038E07070E038E038 -E038E038E038F078707038E03FE00F800D0E7E8D12>II< -079C1FFC387C703C601CE01CE01CE01CE01C601C703C387C1FFC079C001C001C001C001C -001C007F007F10157F8D12>II<1FF03FF06070C070E0007F003FE00FF000786018E018F030 -FFE0DFC00D0E7E8D12>I<06000E000E000E007FF8FFF80E000E000E000E000E000E000E -000E1C0E1C0E1C07F801E00E127F9112>IIII<7C7C7C7C1CF00EE00FC007C00380078007C00EE01E -F01C70FC7EFC7E0F0E7F8D12>II -E /Fp 21 119 df<000180000180000380000380000780000780000B8000138000138000 -21C00021C00041C00081C00081C00101C001FFC00201C00201C00401C00801C00801C018 -01E0FE07F815177E961A>65 D<03FE0000E00000E00000E00000E00001C00001C00001C0 -0001C0000380000380000380000380000700000700200700200700400E00400E00C00E00 -800E01801C0780FFFF0013177E9616>76 D<03FFE000E03800E01C00E01C00E01C01C01C -01C01C01C01C01C0380380700381C003FF000381800700C00700E00700E00700E00E01C0 -0E01C00E01C20E01C21C00C4FF807817177E961A>82 D<007C4001828003018006018006 -01800C01000C01000E00000E00000FC00007F80003FC00007C00000E00000E0000060020 -0600400C00400C00600800601000D8600087C00012177D9614>I<03900C701870303030 -60606060606060C0C0C0C840C841C862D01C700D0E7C8D12>97 D<07C00C6030E020E060 -00C000C000C00080008000C020C04061803E000B0E7C8D10>99 D<003E000C000C000C00 -0C001800180018001803B00C70187030303060606060606060C0C0C0C840C841C862D01C -700F177C9612>I<07801840302060206040FF80C000C000C000C000C020C04061803E00 -0B0E7C8D10>I<01C4063C0C1C181C1818301830183018203020302030307011E00E6000 -60006060C0E0C0C3807E000E147E8D10>103 D<1F0006000600060006000C000C000C00 -0C0019E01A301C10181030303030303030306060606460C460C8C048C0700E177D9612> -I<030706000000000000182C4C4C8C18181830326264243808177D960B>I<3E0C0C0C0C -181818183030303060606060C0C8C8C8D06007177D9609>108 D<30783C00498CC6004E -0502004C0602009C0E0600180C0600180C0600180C060030180C0030180C803018188030 -1818806030090060300E00190E7D8D1D>I<3078498C4E044C049C0C180C180C180C3018 -3019303130316012601C100E7D8D14>I<078018C0304060606060C060C060C06080C080 -C08180C10046003C000B0E7B8D12>I<0C3812C41306130626060606060606060C0C0C0C -0C180C101A2019C018001800300030003000FC000F147F8D12>I<30F04B184E384C3098 -001800180018003000300030003000600060000D0E7D8D0F>114 -D<07800C4018E018E038001E001F8007C000C060C0E0C0C180C3003E000B0E7D8D0F>I< -060006000C000C000C000C00FF8018001800180030003000300030006000610061006200 -6400380009147D930C>I<38042C0C4C0C4C0C8C18181818181818303030323032307218 -B40F1C0F0E7D8D13>I<38102C184C184C188C1018101810181030203020304030401880 -0F000D0E7D8D10>I E /Fq 66 122 df<00FCF807839C0E079C1C07081C07001C07001C -07001C07001C0700FFFFE01C07001C07001C07001C07001C07001C07001C07001C07001C -07001C07001C07001C07007F1FE01617809615>11 D<00FC000782000E07001C07001C02 -001C00001C00001C00001C0000FFFF001C07001C07001C07001C07001C07001C07001C07 -001C07001C07001C07001C07001C07007F1FC01217809614>I<60C0F1E0F1E070E01020 -102020402040408040800B0A7F9612>34 D<60F0F070101020204040040A7D960A>39 -D<0102040C1818303070606060E0E0E0E0E0E0E0E0E0E060606070303018180C04020108 -227D980E>I<8040203018180C0C0E060606070707070707070707070606060E0C0C1818 -3020408008227E980E>I<60F0F070101020204040040A7D830A>44 -DI<60F0F06004047D830A>I<07C018303018701C600C600CE00E -E00EE00EE00EE00EE00EE00EE00EE00E600C600C701C30181C7007C00F157F9412>48 -D<06000E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E -000E000E00FFE00B157D9412>I<0F8030E040708030C038E03840380038007000700060 -00C00180030006000C08080810183FF07FF0FFF00D157E9412>I<0FE030306018701C70 -1C001C00180038006007E000300018000C000E000EE00EE00EC00C401830300FE00F157F -9412>I<00300030007000F001F001700270047008701870107020704070C070FFFE0070 -007000700070007003FE0F157F9412>I<60307FE07FC0440040004000400040004F8070 -E040700030003800384038E038E0388030406020C01F000D157E9412>I<01F00608080C -181C301C70006000E000E3E0EC30F018F00CE00EE00EE00E600E600E300C3018183007C0 -0F157F9412>I<07E018302018600C600C700C78183E101F6007C00FF018F8607C601EC0 -0EC006C006C004600C38300FE00F157F9412>56 D<07C0183030186018E00CE00CE00EE0 -0EE00E601E301E186E0F8E000E000C001C70187018603020E01F800F157F9412>I<60F0 -F06000000000000060F0F060040E7D8D0A>I<00FC000303000C00C01000202078102184 -104302084701C88601C48E01C48E01C48E01C48E01C48E01C48601C44701C44303C42184 -C82078701000000C001C0300F000FF0016177E961B>64 D66 -D<00FC100383300E00B01C0070380030300030700010600010E00010E00000E00000E000 -00E00000E00000E000106000107000103000203800201C00400E008003830000FC001417 -7E9619>II70 D<007E080381980600580C003818001830001870000870 -0008E00008E00000E00000E00000E00000E003FEE000387000387000383000381800380C -00380600380380D8007F0817177E961C>III<0FF800E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000 -E000E0E0E0E0E0C1C061801F000D177E9612>I76 DII<00FC000303000E01C01C00E038007030 -0030700038600018E0001CE0001CE0001CE0001CE0001CE0001CE0001C70003870003830 -00303800701C00E00E01C003030000FC0016177E961B>II<0FC4302C601C400C -C004C004C004E00070007F003FE00FF801FC001C000E0006800680068006C004E008D810 -87E00F177E9614>83 D<7FFFF86038184038084038088038048038048038040038000038 -000038000038000038000038000038000038000038000038000038000038000038000038 -0000380003FF8016177F9619>II87 -DI91 D<204020404080408081008100E1C0F1E0F1E060C00B0A7B9612> -II<3FC0706070302038003803F81E3830387038E039E039E07970FF1F1E100E7F -8D12>97 DI<07F01838303870106000E000E000E000E000600070083008183007 -C00D0E7F8D10>I<003E00000E00000E00000E00000E00000E00000E00000E00000E0007 -CE001C3E00300E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E0018 -2E0007CF8011177F9614>I<0FC0186030307038E018FFF8E000E000E000600070083010 -183007C00D0E7F8D10>I<03E006700E701C201C001C001C001C001C00FF801C001C001C -001C001C001C001C001C001C001C001C001C007F800C1780960B>I<0F9E18E330607070 -70707070306018C02F80200060003FE03FF83FFC600EC006C006C006600C38380FE01015 -7F8D12>II<307878300000000000F8383838383838383838383838FE07177F96 -0A>I<0300078007800300000000000000000000001F8003800380038003800380038003 -80038003800380038003800380038003804380E300E7007C00091D82960B>IIIII<07C018303018600C600CE00EE00EE00EE00EE00E701C301818 -3007C00F0E7F8D12>II<07C2001C2600381E00700E00600E00E00E00E00E00E00E00E00E00600E0070 -0E00301E001C2E0007CE00000E00000E00000E00000E00000E00003F8011147F8D13>I< -F9E03A703C703820380038003800380038003800380038003800FF000C0E7F8D0E>I<1F -4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<0800 -08000800180018003800FFC0380038003800380038003800380038403840384038401C80 -0F000A147F930E>IIIIII E /Fr 10 58 df<1F00318060C04040C060C060C060C060C060C060C0 -60C060404060C031801F000B107F8F0F>48 D<187898181818181818181818181818FF08 -107D8F0F>I<1F00618040C08060C0600060006000C00180030006000C00102020207FC0 -FFC00B107F8F0F>I<1F00218060C060C000C0008001001F00008000400060C060C06080 -4060801F000B107F8F0F>I<01800180038005800D801980118021804180C180FFE00180 -0180018001800FE00B107F8F0F>I<20C03F802E002000200020002F0030802040006000 -600060C06080C061801F000B107F8F0F>I<0780184030C060C06000C000CF00F080E040 -C060C060C060406060C030801F000B107F8F0F>I<40007FF07FE0804080400080010002 -0002000600040004000C000C000C000C000C000C117F900F>I<1F00318060C060C060C0 -31803F000E00338061C0C060C060C060C04060C01F000B107F8F0F>I<1F00318060C0C0 -40C060C060C06040E021E01E600060004060C0608063001E000B107F8F0F>I -E /Fs 84 125 df<00FE7C0381C60603CE0E03841C03801C03801C03801C03801C03801C +10>I<8010C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C0 +30C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C0 +30C030C030C030C030C030C03080100C2A7C9E15>107 D E /Fq +46 122 df<60F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F0600417789614>33 +D<00800180018007E01FF039BC619CC18EC18EC18EE18471807F801FE00FF001F8019C01 +8E4186E186E186E186718C39B81FF00FC00180018000800F1D7E9914>36 +D<60F0F878181818303060C080050C789614>39 D<0180038006000C001C001800380070 +0070007000E000E000E000E000E000E000E000E000E000700070007000380018001C000C +00060003800180091D799914>I<80C0603038181C0E0E0E0707070707070707070E0E0E +1C18383060C080081D7C9914>I<038003800380638CF39E7FFC3FF80FE00FE03FF87FFC +F39E638C0380038003800F107E9214>I<01C00001C00001C00001C00001C00001C00001 +C000FFFF80FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00011117F93 +14>I45 D<70F8F8F8700505798414>I<0006000E000E001C +001C003800380070007000E000E001C001C0038003800380070007000E000E001C001C00 +3800380070007000E000E000C0000F1D7E9914>I<07C00FE01C7038383018701C701CE0 +0EE00EE00EE00EE00EE00EE00EE00EE00E701C701C383838381C700FE007C00F177E9614 +>I<0300030007000F003F00F70047000700070007000700070007000700070007000700 +07000700070007007FF07FF00C177C9614>I<0FC01FF03838701CE00EE00EE00E400E00 +0E001C001C00380030007000E001C0030006000C00180E300E7FFE7FFE0F177E9614>I< +0FC01FF03838701C701C201C001C0018003800700FE00FF00038001C000E000E400EE00E +E00E701C78383FF00FC00F177E9614>I<00780000F80001B80001B80003380003380006 +38000E38000C38001C3800383800303800703800E03800FFFF80FFFF8000380000380000 +380000380000380001FF0001FF0011177F9614>I<70F8F8F87000000000000070F8F8F8 +700510798F14>58 D<70F8F8F87000000000000060F0F8F878183070E0800515798F14> +I<0006001E003E00F801F003C00F801F003C00F800F000F8003C001F000F8003C001F000 +F8003E001E00060F157E9514>I62 +D76 D<7FFF80FFFF80E1C380E1C380E1C380E1C3 +8001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C0000FF8000FF80011177F9614>84 D86 +D<1FC0007FF000707800201800001C00001C0007FC001FFC003C1C00701C00E01C00E01C +00E01C00707C003FFF800F8F8011107E8F14>97 DI<03F80FFE1C0E3804700060 +00E000E000E000E00060007000380E1C1E0FFC03F00F107E8F14>I<007E00007E00000E +00000E00000E00000E00000E0007CE000FFE001C3E00301E00700E00E00E00E00E00E00E +00E00E00E00E00E00E00700E00301E00383E001FEFC007CFC012177F9614>I<07E00FF0 +1C38301C700CE00EE00EFFFEFFFEE00060007000380E1C1E0FFC03F00F107E8F14>I<00 +FC01FE038E07040700070007007FFEFFFE07000700070007000700070007000700070007 +0007000700FFF8FFF80F177F9614>I<07CF001FFF80383B80301800701C00701C00701C +003018003838003FF00037C0007000007000003FF8001FFC003FFE00700F00E00380E003 +80E00380E003807007003C1E001FFC0007F00011197F8F14>II<06000F000F00 +06000000000000000000FF00FF0007000700070007000700070007000700070007000700 +0700FFF8FFF80D187C9714>I107 DI< +FB8E00FFDF003CF3803CF38038E38038E38038E38038E38038E38038E38038E38038E380 +38E38038E380FEFBE0FE79E01310808F14>II<07C01FF03C78701C701CE00EE00EE00EE00EE00EE00E701C783C3C781FF007C00F10 +7E8F14>II<03E7000FF7001C1F00300F00700F00E00700E00700E00700 +E00700E00700E00700700F00300F001C3F000FF70007C700000700000700000700000700 +000700000700003FE0003FE013187F8F14>II<0FD83FF86038C038C038F0007F803FF007F8001C6006E006F006F81CFFF8CFE00F10 +7E8F14>I<06000E000E000E000E007FFCFFFC0E000E000E000E000E000E000E000E000E +0E0E0E0E0E0E1C07F801F00F157F9414>I +III<7E3F007E3F001E3C000E780007700007E00003E00001C00003C00003E000077000 +0E78000E38001C1C00FE3F80FE3F8011107F8F14>II +E /Fr 21 119 df<0000200000600000E00000E00001E00001F000027000027000047000 +087000087000107000107000207000407000407000803800FFF801003802003802003804 +0038040038080038180038FE01FF181A7E991D>65 D<03FF0000700000700000700000E0 +0000E00000E00000E00001C00001C00001C00001C0000380000380000380000380000700 +000700100700100700200E00200E00600E00400E00C01C0380FFFF80141A7D9918>76 +D<03FFF000701C00700E00700700E00700E00700E00700E00701C00E01C01C01C03801C0 +E003FF800380C00380600380700700700700700700700700700E00E00E00E00E00E10E00 +E21C0062FF803C181A7D991C>82 D<003F10006090018070010070030020060020060020 +06002006000007000007C00003F80001FE00007F00000F80000380000180000180200180 +200180600300600300600600700C00C8180087E000141A7D9916>I<03CC0E2E181C381C +301C701CE038E038E038E038C072C072C07260F261341E180F107C8F14>97 +D<01E006180C181838301070006000E000E000E000E000E008E010602030C01F000D107C +8F12>99 D<001F80000380000380000380000700000700000700000700000E00000E0003 +CE000E2E00181C00381C00301C00701C00E03800E03800E03800E03800C07200C07200C0 +720060F2006134001E1800111A7C9914>I<01E00E181C08380870087010FFE0E000E000 +E000E000E0086010602030C01F000D107C8F12>I<00F300038B800607000E07000C0700 +1C0700380E00380E00380E00380E00301C00301C00301C00183C0018780007B800003800 +003800007000607000E0E000C1C0007F000011177E8F12>103 D<1F8000038000038000 +0380000700000700000700000700000E00000E00000E7C000F86001E07001E07001C0700 +1C0700380E00380E00380E00381C00701C80701C80703880703900E01900600E00111A7E +9914>I<030706000000000000384C4E8E9C9C1C3838707272E2E4643808197C980C>I<1F +0707070E0E0E0E1C1C1C1C3838383870707070E4E4E4E4E830081A7D990A>108 +D<307C1E00598663009E0783809E0703809C0703809C070380380E0700380E0700380E07 +00380E0E00701C0E40701C0E40701C1C40701C1C80E0380C80601807001A107C8F1F>I< +307C005986009E07009E07009C07009C0700380E00380E00380E00381C00701C80701C80 +703880703900E01900600E0011107C8F16>I<01F006180C0C180E300E700E600EE00EE0 +0EE00CE01CE018E030606030C01F000F107C8F14>I<030F000590C009E0C009C06009C0 +6009C0600380E00380E00380E00380E00701C00701800703800703000E8E000E78000E00 +000E00001C00001C00001C00001C0000FF00001317808F14>I<30F05D189E389C189C00 +9C0038003800380038007000700070007000E00060000D107C8F10>114 +D<03E004300830187018601C001F801FC00FE000E00060E060E06080C041803E000C107D +8F10>I<06000E000E000E000E001C001C00FFC01C003800380038003800700070007000 +7000E100E100E100E200E40038000A177C960D>I<38064C074E0E8E0E9C0E9C0E1C1C38 +1C381C381C7039703970393079389A0F0C10107C8F15>I<38184C1C4E1C8E0C9C0C9C0C +1C08380838083810701070107020304018C00F000E107C8F12>I +E /Fs 67 122 df<00FE7C0381C60603CE0E03841C03801C03801C03801C03801C03801C 0380FFFFF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C 03801C03801C03801C0380FF8FF0171A809916>11 D<00FE000381000601800E03801C01 001C00001C00001C00001C00001C0000FFFF801C03801C03801C03801C03801C03801C03 -801C03801C03801C03801C03801C03801C03801C03801C0380FF8FF0141A809915>I<00 -7E1F8001C170400703C060060380E00E0380400E0380000E0380000E0380000E0380000E -038000FFFFFFE00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E -0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E07F8FE3FC1E1A809920 ->14 D18 D<1C1C3C7060C0800607789913>I<60F0F0F0 -F0F0F060606060606060606060200000000060F0F060041A7D990B>33 -D<60C0F1E0F9F068D008100810081010201020204040800C0B7F9913>I<60F0F8680808 -0810102040050B7D990B>39 D<00800100020004000C0008001800300030003000600060 -0060006000E000E000E000E000E000E000E000E000E000E0006000600060006000300030 -003000180008000C00040002000100008009267D9B0F>I<800040002000100018000800 -0C0006000600060003000300030003000380038003800380038003800380038003800380 -03000300030003000600060006000C0008001800100020004000800009267E9B0F>I<60 -F0F07010101020204040040B7D830B>44 DI<60F0F06004047D -830B>I<0004000C00180018001800300030003000600060006000C000C000C001800180 -01800300030003000600060006000C000C000C0018001800180030003000300060006000 -6000C000C0000E257E9B13>I<07E01C38381C300C700E60066006E007E007E007E007E0 -07E007E007E007E007E00760066006700E300C381C1C3807E010187F9713>I<03000700 -FF0007000700070007000700070007000700070007000700070007000700070007000700 -0700070007007FF80D187D9713>I<0F80106020304038803CC01CE01C401C003C003800 -380070006000C001800100020004040804100430083FF87FF8FFF80E187E9713>I<07E0 -1838201C601E700E201E001E001C001C0038007007E00038001C000E000F000FE00FE00F -C00F400E601C183807E010187F9713>I<001800180038007800F800B801380238023804 -3808381838103820384038C038FFFF00380038003800380038003803FF10187F9713>I< -30183FF03FE03F80200020002000200020002FC03060203000380018001C001C401CE01C -E01C80184038403030E00F800E187E9713>I<01F807040C06180E300E300070006000E0 -00E3E0E418E80CF00EE006E007E007E007600760077006300E180C0C3807E010187F9713 ->I<40007FFF7FFE7FFE4004800880108010002000400040008001800100030003000700 -060006000E000E000E000E000E00040010197E9813>I<07E01818300C20066006600670 -06780C3E181F3007C003E00CF8307C601E600FC007C003C003C00360022004181807E010 -187F9713>I<07E01C303018700C600EE006E006E007E007E0076007700F3017182707C7 -00070006000E000C700C7018603030600F8010187F9713>I<60F0F06000000000000000 -0060F0F06004107D8F0B>I<60F0F060000000000000000060F0F0701010102020404004 -177D8F0B>I61 D<1FC020604030C038E038E0380038007000E0 -018001000300020002000200020002000200000000000000000006000F000F0006000D1A -7E9912>63 D<000C0000000C0000000C0000001E0000001E0000002F0000002700000027 -00000043800000438000004380000081C0000081C0000181E0000100E0000100E00003FF -F000020070000200700004003800040038000400380008001C0008001C003C001E00FF00 -FFC01A1A7F991D>65 DI<003F0201C0C603002E0E001E1C -000E1C0006380006780002700002700002F00000F00000F00000F00000F00000F0000070 -00027000027800023800041C00041C00080E000803003001C0C0003F00171A7E991C>I< -FFFF80000E00E0000E0070000E0038000E001C000E000E000E000E000E0007000E000700 -0E0007800E0007800E0007800E0007800E0007800E0007800E0007800E0007800E000700 -0E0007000E000F000E000E000E001C000E001C000E0078000E00E000FFFF8000191A7F99 -1D>III<003F020001C0C6 -0003002E000E001E001C000E001C00060038000600780002007000020070000200F00000 -00F0000000F0000000F0000000F0000000F001FFC070000E0070000E0078000E0038000E -001C000E001C000E000E000E000300160001C06600003F82001A1A7E991E>III<0FFE007000700070007000700070 -00700070007000700070007000700070007000700070007000704070E070E07040E061C0 -1F000F1A7E9914>IIIII<007F000001 -C1C000070070000E0038001C001C003C001E0038000E0078000F0070000700F0000780F0 -000780F0000780F0000780F0000780F0000780F0000780F000078078000F0078000F0038 -000E003C001E001C001C000E0038000700700001C1C000007F0000191A7E991E>II<007F000001C1C000070070000E0038001C001C003C001E0038 -000E0078000F0070000700F0000780F0000780F0000780F0000780F0000780F0000780F0 -000780F00007807000070078000F0038000E003C1C1E001C221C000E4138000741F00001 -E1C000007F80800000C0800000C0800000E18000007F0000007F0000003E0000001C0019 -217E991E>II<0FC21836200E6006C006C002C002C002E00070007E003FE01FF803 -FC007E000E00070003800380038003C002C006E004D81887E0101A7E9915>I<7FFFFF00 -701C0700401C0100401C0100C01C0180801C0080801C0080801C0080001C0000001C0000 -001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000 -001C0000001C0000001C0000001C0000001C0000001C000003FFE000191A7F991C>IIII -II91 D<2040204040804080810081008100E1C0F1E0F1E060C00B -0B7A9913>II<1FC000387000383800101C00001C00001C0003FC001E -1C00381C00701C00E01C00E01C80E01C80E03C80705F801F8F0011107F8F13>97 -DI<07F81C1C381C70087000E000E000E000E000E000E000 -7000700438081C1807E00E107F8F11>I<003F0000070000070000070000070000070000 -070000070000070000070003E7000C1700180F00300700700700E00700E00700E00700E0 -0700E00700E00700600700700700380F001C370007C7E0131A7F9915>I<07C01C303018 -7018600CE00CFFFCE000E000E000E0006000700438081C1807E00E107F8F11>I<01F007 -180E381C101C001C001C001C001C001C00FFC01C001C001C001C001C001C001C001C001C -001C001C001C001C001C00FF800D1A80990C>I<0FCF0018718030300070380070380070 -38007038003030001860002FC0006000006000007000003FF0003FFC001FFE00600F00C0 -0300C00300C00300C00300600600381C0007E00011187F8F13>II<183C3C18000000000000FC1C1C1C1C1C1C1C1C1C1C1C1C1C1CFF081A80990A>I< -018003C003C001800000000000000000000000000FC001C001C001C001C001C001C001C0 -01C001C001C001C001C001C001C001C001C001C001C041C0E180E3007E000A2182990C> -II -II< -FC7C001D87001E03801E03801C03801C03801C03801C03801C03801C03801C03801C0380 -1C03801C03801C0380FF9FF01410808F15>I<07E01C38300C700E6006E007E007E007E0 -07E007E0076006700E381C1C3807E010107F8F13>II<03E1000C1300180B0030 -0F00700700E00700E00700E00700E00700E00700E00700700700700700380F001C370007 -C700000700000700000700000700000700000700003FE013177F8F14>II<1F2060 -E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F>I< -0800080008000800180018003800FFC03800380038003800380038003800380038203820 -3820382018201C4007800B177F960F>II< -FF0F803C07001C06001C04001C04000E08000E080007100007100007100003A00003A000 -01C00001C00001C00000800011107F8F14>II -IIIII -E /Ft 89 127 df<60F87E3F0708057C9614>18 D<60F0F0F0F0F0F0F0F0F0F0F0F0F060 -0000000060F0F0600417789614>33 DI<071C00071C00071C00071C00071C00FFFF80FFFF807FFF800E3800 -0E38000E38000E38000E38000E38000E38007FFF80FFFF80FFFF801C70001C70001C7000 -1C70001C700011177F9614>I<00800180018007E01FF039BC619CC18EC18EC18EE18471 -807F801FE00FF001F8019C018E4186E186E186E186718C39B81FF00FC00180018000800F -1D7E9914>I<3806007C0E006C0E00EE1C00EE1C00EE3800EE38006C38007C7000387000 -00700000E00000E00001C00001C00001C000038000038000070000070E00071F000E1B00 -0E3B800E3B801C3B801C3B80381B00381F00180E00111D7F9914>I<60F0F87818181830 -3060C080050C789614>39 D<0180038006000C001C0018003800700070007000E000E000 -E000E000E000E000E000E000E000700070007000380018001C000C00060003800180091D -799914>I<80C0603038181C0E0E0E0707070707070707070E0E0E1C18383060C080081D -7C9914>I<038003800380638CF39E7FFC3FF80FE00FE03FF87FFCF39E638C0380038003 -800F107E9214>I<01C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FF -FF8001C00001C00001C00001C00001C00001C00001C00011117F9314>I<70F8FCFC7C0C -1830E0C0060A798414>II<70F8F8F8700505798414>I<00 -06000E000E001C001C003800380070007000E000E001C001C0038003800380070007000E -000E001C001C003800380070007000E000E000C0000F1D7E9914>I<07C00FE01C703838 -3018701C701CE00EE00EE00EE00EE00EE00EE00EE00EE00E701C701C383838381C700FE0 -07C00F177E9614>I<0300030007000F003F00F700470007000700070007000700070007 -0007000700070007000700070007007FF07FF00C177C9614>I<0FC01FF03838701CE00E -E00EE00E400E000E001C001C00380030007000E001C0030006000C00180E300E7FFE7FFE -0F177E9614>I<0FC01FF03838701C701C201C001C0018003800700FE00FF00038001C00 -0E000E400EE00EE00E701C78383FF00FC00F177E9614>I<00780000F80001B80001B800 -0338000338000638000E38000C38001C3800383800303800703800E03800FFFF80FFFF80 -00380000380000380000380000380001FF0001FF0011177F9614>I<7FFC7FFC70007000 -7000700070007000700077C07FF07838601C000C000E000E400EE00EE01C601C78783FF0 -0FC00F177E9614>I<01F007F80E1C1C1C381C300070007000E000E7C0EFF0F838F01CF0 -0CE00EE00E600E700E700C381C1C380FF007C00F177E9614>II<0FE03FF8783C701CE00EE00EE00EE00E701C1EF003801FF0383870 -1CE00EE00EE00EE00EF01E701C38381FF007C00F177E9614>I<07C01FE038307038601C -E01CE00CE00EE00E601E701E383E1FEE07CE000E001C001C001C7038703070E03FC01F00 -0F177E9614>I<70F8F8F87000000000000070F8F8F8700510798F14>I<70F8F8F8700000 -0000000060F0F8F878183070E0800515798F14>I<0006001E003E00F801F003C00F801F -003C00F800F000F8003C001F000F8003C001F000F8003E001E00060F157E9514>III<1FE03FF8701CE00EE00E400E003C007000E001C003800380038003 -800300000000000000000003000780078003000F177E9614>I<01E007F00E38181C38FC -71FC731E771EEE0EEE0EEE0EEE0EEE0EEE0EEE0E771C731871F038E018060E1E07F801F0 -0F177E9614>I<01C00003E00003E0000360000360000770000770000770000770000630 -000E38000E38000E38000E38001C1C001FFC001FFC001C1C001C1C00380E00380E00FE3F -80FE3F8011177F9614>II<01F18007FF800E1F -801C0780380780700380700380700380E00000E00000E00000E00000E00000E00000E000 -007003807003807003803807001C07000E0E0007FC0001F00011177F9614>II< -FFFF00FFFF003807003807003807003807003800003800003838003838003FF8003FF800 -383800383800380000380000380000380380380380380380380380FFFF80FFFF8011177F -9614>II<03C60FFE1C3E181E381E700E700E600EE000E000E000E000E07FE07F -E00E600E700E700E381E181E1C3E0FFE03CE10177F9614>III<07FC07FC00700070007000700070007000700070007000700070 -00700070007000700070E070E070F0E07FC01F000E177D9614>IIIII<1FF07FFC783C701CE00EE00EE00EE00E -E00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00E701C783C7FFC1FF00F177E9614> -II<1FF07FFC783C701CE00EE00EE00EE00EE00E -E00EE00EE00EE00EE00EE00EE00EE00EE38EE1CE71DC78FC7FFC1FF000780038003C001C -001E0F1C7E9614>II<0FCC1FFC307C603CE01CE01CE01CE00070007E003FE00F -F001F8001C001E000E600EE00EE00EF01CF838FFF0C7E00F177E9614>I<7FFF80FFFF80 -E1C380E1C380E1C380E1C38001C00001C00001C00001C00001C00001C00001C00001C000 -01C00001C00001C00001C00001C00001C00001C0000FF8000FF80011177F9614>II87 D<7E3E007E3E001C3C001E38000E78000F700007700007E00003E00003C0 -0001C00003C00003E00003E0000770000770000E78000E38001C3C001C1C003C1E00FE3F -80FE3F8011177F9614>II<7FFEFFFEE01CE01CE038E038007000E000E001C001 -C00380070007000E000E001C00380E380E700E700EFFFEFFFE0F177E9614>IIII<04001F007FC0F1E0E0E00B057C9614>I<1FC0007FF000707800 -201800001C00001C0007FC001FFC003C1C00701C00E01C00E01C00E01C00707C003FFF80 -0F8F8011107E8F14>97 DI<03F80FFE1C0E380470006000E000E000E000E00060 -007000380E1C1E0FFC03F00F107E8F14>I<007E00007E00000E00000E00000E00000E00 -000E0007CE000FFE001C3E00301E00700E00E00E00E00E00E00E00E00E00E00E00E00E00 -700E00301E00383E001FEFC007CFC012177F9614>I<07E00FF01C38301C700CE00EE00E -FFFEFFFEE00060007000380E1C1E0FFC03F00F107E8F14>I<00FC01FE038E0704070007 -0007007FFEFFFE070007000700070007000700070007000700070007000700FFF8FFF80F -177F9614>I<07CF001FFF80383B80301800701C00701C00701C003018003838003FF000 -37C0007000007000003FF8001FFC003FFE00700F00E00380E00380E00380E00380700700 -3C1E001FFC0007F00011197F8F14>II<06000F000F0006000000000000000000 -FF00FF00070007000700070007000700070007000700070007000700FFF8FFF80D187C97 -14>I<006000F000F0006000000000000000001FF01FF000700070007000700070007000 -700070007000700070007000700070007000700070007040E0E0C07F803F000C207E9714 ->IIIII<07C01FF03C78701C701CE0 -0EE00EE00EE00EE00EE00E701C783C3C781FF007C00F107E8F14>II<03 -E7000FF7001C1F00300F00700F00E00700E00700E00700E00700E00700E00700700F0030 -0F001C3F000FF70007C700000700000700000700000700000700000700003FE0003FE013 -187F8F14>II<0FD83FF86038C038C038F0 -007F803FF007F8001C6006E006F006F81CFFF8CFE00F107E8F14>I<06000E000E000E00 -0E007FFCFFFC0E000E000E000E000E000E000E000E000E0E0E0E0E0E0E1C07F801F00F15 -7F9414>IIII<7E3F007E3F001E3C000E -780007700007E00003E00001C00003C00003E0000770000E78000E38001C1C00FE3F80FE -3F8011107F8F14>II<3FFF7FFF700E701C7038007000E001C003800700 -0E001C0738077007FFFFFFFF10107F8F14>I124 D<1C103F38E7E041C00D047D9614>126 -D E /Fu 82 127 df18 D<60F0F0F0F0F0F0F0F0F0F0F0F0F0 -F0F0600000000060F0F0600419779816>33 DI<038700038700038700038700038700038700FFFFE0FFFFE0 -7FFFE0070E00070E00070E000E1C000E1C000E1C000E1C007FFFE0FFFFE0FFFFE01C3800 -1C38001C38001C38001C38001C380013197F9816>I<00C00001C00001C00001C00007F0 -001FFC003FFE007DCF0071C780E1C380E1C780E1C780F1C30079C0003FC0001FF00007FC -0001FE0001CF0001C70061C380F1C380F1C380E1C38071C70079DF003FFE001FF80007E0 -0001C00001C00000C00011207E9C16>I<30787C3C1C1C1C1C3878F0E040060D789816> -39 D<00E001E0038007000E001C001C0038003800700070007000E000E000E000E000E0 -00E000E000E000E000700070007000380038001C001C000E000700038001E000E00B217A -9C16>II<0380038003800380E38EF39EFFFE3FF80FE00FE03FF8FFFEF39EE38E038003 -80038003800F127D9516>I<00E00000E00000E00000E00000E00000E00000E00000E000 -FFFFE0FFFFE0FFFFE000E00000E00000E00000E00000E00000E00000E00000E00013137F -9516>I<387C7E7E3E0E1E1C78F060070B798416>I -I<70F8F8F8700505788416>I<000180000380000380000700000700000E00000E00001C -00001C0000380000380000700000700000E00000E00001C00001C0000380000380000700 -000700000E00000E00001C00001C0000380000380000700000700000E00000E00000C000 -0011207E9C16>I<03E0000FF8001FFC001E3C00380E00780F00700700700700E00380E0 -0380E00380E00380E00380E00380E00380E00380F00780700700700700780F003C1E001E -3C001FFC000FF80003E00011197E9816>I<0300070007000F001F00FF00FF00E7000700 -0700070007000700070007000700070007000700070007000700FFF8FFF8FFF80D197B98 -16>I<07E0001FF8003FFC00783E00E00700F00780F00380600380000380000380000700 -000700000E00001C0000380000700000E00001C0000380000F00001E03803803807FFF80 -FFFF807FFF8011197E9816>I<007C0000FC0000DC0001DC00039C00039C00071C000F1C -000E1C001E1C003C1C00381C00781C00F01C00FFFFE0FFFFE0FFFFE0001C00001C00001C -00001C00001C0001FFC001FFC001FFC013197F9816>52 D<03E0000FF8001FFC003C1E00 -700E00700700E00700E00780E00380E00380E00780700780780F803FFF801FFB800FE380 -000700000700300700780E00781C00707C003FF8001FE0000F800011197E9816>57 -D<70F8F8F870000000000000000070F8F8F8700512789116>I<000180000780001F8000 -3E0000F80001F00007C0000F80003E0000FC0000F00000FC00003E00000F800007C00001 -F00000F800003E00001F8000078000018011157E9616>60 DII<0FF0003FFE007FFF00 -F00F80F00380F00380600780001F00003E0000780000F00001C00001C00001C00001C000 -01C00001800000000000000000000000000001800003C00003C00001800011197E9816> -I<00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C00071C -00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007E0FC0FF1F -E07E0FC013197F9816>65 D<7FF800FFFE007FFF001C07001C07801C03801C03801C0380 -1C03801C07001FFF001FFE001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C0 -1C03C01C07807FFF80FFFF007FFC0012197F9816>I<01F18007FB800FFF801F0F803C07 -80380380700380700380F00000E00000E00000E00000E00000E00000E00000E00000F000 -007003807003803803803C07001F0F000FFE0007FC0001F00011197E9816>I<7FF800FF -FE007FFF001C0F001C07801C03C01C01C01C01C01C01E01C00E01C00E01C00E01C00E01C -00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F807FFF00FFFE007FF80013 -19809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C00001C1C00 -1C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00E01C00E0 -7FFFE0FFFFE07FFFE013197F9816>I<7FFFE0FFFFE07FFFE01C00E01C00E01C00E01C00 -E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00 -001C00001C00001C00007F8000FFC0007F800013197F9816>I<01F18007FB800FFF801F -0F803C0780380380700380700380F00000E00000E00000E00000E00000E01FC0E01FE0E0 -1FC0F003807003807007803807803C07801E0F800FFF8007FB8001F38013197F9816>I< -7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC0 -1FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF8 -7F07F01519809816>I<7FFCFFFE7FFC0380038003800380038003800380038003800380 -0380038003800380038003800380038003807FFCFFFE7FFC0F197D9816>I<7F0FE0FF8F -F07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0001CE0001DF0001FF0001FF8 -001F38001E1C001C1C001C0E001C0E001C07001C07001C03807F07E0FF8FF07F07E01419 -809816>75 DI<60 +C0F1E0F9F068D008100810081010201020204040800C0B7F9913>34 +D<60F0F86808080810102040050B7D990B>39 D<00800100020004000C00080018003000 +300030006000600060006000E000E000E000E000E000E000E000E000E000E00060006000 +60006000300030003000180008000C00040002000100008009267D9B0F>I<8000400020 +001000180008000C00060006000600030003000300030003800380038003800380038003 +8003800380038003000300030003000600060006000C0008001800100020004000800009 +267E9B0F>I<60F0F07010101020204040040B7D830B>44 DI<60 +F0F06004047D830B>I<07E01C38381C300C700E60066006E007E007E007E007E007E007 +E007E007E007E00760066006700E300C381C1C3807E010187F9713>48 +D<03000700FF000700070007000700070007000700070007000700070007000700070007 +00070007000700070007007FF80D187D9713>I<0F80106020304038803CC01CE01C401C +003C003800380070006000C001800100020004040804100430083FF87FF8FFF80E187E97 +13>I<07E01838201C601E700E201E001E001C001C0038007007E00038001C000E000F00 +0FE00FE00FC00F400E601C183807E010187F9713>I<001800180038007800F800B80138 +02380238043808381838103820384038C038FFFF00380038003800380038003803FF1018 +7F9713>I<30183FF03FE03F80200020002000200020002FC03060203000380018001C00 +1C401CE01CE01C80184038403030E00F800E187E9713>I<01F807040C06180E300E3000 +70006000E000E3E0E418E80CF00EE006E007E007E007600760077006300E180C0C3807E0 +10187F9713>I<40007FFF7FFE7FFE400480088010801000200040004000800180010003 +0003000700060006000E000E000E000E000E00040010197E9813>I<07E01818300C2006 +600660067006780C3E181F3007C003E00CF8307C601E600FC007C003C003C00360022004 +181807E010187F9713>I<07E01C303018700C600EE006E006E007E007E0076007700F30 +17182707C700070006000E000C700C7018603030600F8010187F9713>I<60F0F0600000 +00000000000060F0F06004107D8F0B>I<007F00000180C0000600300008000800100004 +00203E020020E1020041C081004380710083807080870070808700708087007080870070 +808700708087007080838070804380708041C0F10020E13100203E1E0010000000080000 +000600038001803E00007FE000191A7E991E>64 D66 +D<003F0201C0C603002E0E001E1C000E1C0006380006780002700002700002F00000F000 +00F00000F00000F00000F000007000027000027800023800041C00041C00080E00080300 +3001C0C0003F00171A7E991C>II70 +D<003F020001C0C60003002E000E001E001C000E001C0006003800060078000200700002 +0070000200F0000000F0000000F0000000F0000000F0000000F001FFC070000E0070000E +0078000E0038000E001C000E001C000E000E000E000300160001C06600003F82001A1A7E +991E>III<0FFE00700070 +007000700070007000700070007000700070007000700070007000700070007000704070 +E070E07040E061C01F000F1A7E9914>I76 +DII<007F000001C1C000070070000E0038001C001C003C001E0038000E0078 +000F0070000700F0000780F0000780F0000780F0000780F0000780F0000780F0000780F0 +00078078000F0078000F0038000E003C001E001C001C000E0038000700700001C1C00000 +7F0000191A7E991E>II<0FC21836200E6006C006C002C0 +02C002E00070007E003FE01FF803FC007E000E00070003800380038003C002C006E004D8 +1887E0101A7E9915>83 D<7FFFFF00701C0700401C0100401C0100C01C0180801C008080 +1C0080801C0080001C0000001C0000001C0000001C0000001C0000001C0000001C000000 +1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000 +1C000003FFE000191A7F991C>II87 DI91 D<20402040408040808100810081 +00E1C0F1E0F1E060C00B0B7A9913>II<1FC000387000383800101C00 +001C00001C0003FC001E1C00381C00701C00E01C00E01C80E01C80E03C80705F801F8F00 +11107F8F13>97 DI<07F81C1C381C70087000E000E000E0 +00E000E000E0007000700438081C1807E00E107F8F11>I<003F00000700000700000700 +00070000070000070000070000070000070003E7000C1700180F00300700700700E00700 +E00700E00700E00700E00700E00700600700700700380F001C370007C7E0131A7F9915> +I<07C01C3030187018600CE00CFFFCE000E000E000E0006000700438081C1807E00E107F +8F11>I<01F007180E381C101C001C001C001C001C001C00FFC01C001C001C001C001C00 +1C001C001C001C001C001C001C001C001C00FF800D1A80990C>I<0FCF00187180303000 +7038007038007038007038003030001860002FC0006000006000007000003FF0003FFC00 +1FFE00600F00C00300C00300C00300C00300600600381C0007E00011187F8F13>II<183C3C18000000000000FC1C1C1C1C1C1C1C1C1C1C1C1C1C1C +FF081A80990A>I<018003C003C001800000000000000000000000000FC001C001C001C0 +01C001C001C001C001C001C001C001C001C001C001C001C001C001C001C041C0E180E300 +7E000A2182990C>IIIII<07E01C38300C700E60 +06E007E007E007E007E007E0076006700E381C1C3807E010107F8F13>II<03E1 +000C1300180B00300F00700700E00700E00700E00700E00700E00700E007007007007007 +00380F001C370007C700000700000700000700000700000700000700003FE013177F8F14 +>II<1F2060E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F +800C107F8F0F>I<0800080008000800180018003800FFC0380038003800380038003800 +38003800382038203820382018201C4007800B177F960F>IIIIII E /Ft 8 56 df<1F00318060C04040C060C060C060C060 +C060C060C060C060404060C031801F000B107F8F0F>48 D<187898181818181818181818 +181818FF08107D8F0F>I<1F00618040C08060C0600060006000C00180030006000C0010 +2020207FC0FFC00B107F8F0F>I<1F00218060C060C000C0008001001F00008000400060 +C060C060804060801F000B107F8F0F>I<01800180038005800D801980118021804180C1 +80FFE001800180018001800FE00B107F8F0F>I<20C03F802E002000200020002F003080 +2040006000600060C06080C061801F000B107F8F0F>I<0780184030C060C06000C000CF +00F080E040C060C060C060406060C030801F000B107F8F0F>I<40007FF07FE080408040 +00800100020002000600040004000C000C000C000C000C000C117F900F>I +E /Fu 84 125 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703C0 +0E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C0 +0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 +7F87F8151D809C17>I<003F07E00001C09C18000380F018000701F03C000E01E03C000E +00E018000E00E000000E00E000000E00E000000E00E000000E00E00000FFFFFFFC000E00 +E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0 +1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C +000E00E01C007FC7FCFF80211D809C23>14 D18 +D<0E0E1E3870E0800707779C15>I<60F0F0F0F0F0F0F060606060606060606060606060 +000000000060F0F060041E7C9D0C>33 D<6060F0F0F8F868680808080808081010101020 +20404080800D0C7F9C15>I<60F0F8680808081010204080050C7C9C0C>39 +D<00800100020006000C000C00180018003000300030006000600060006000E000E000E0 +00E000E000E000E000E000E000E000E000E0006000600060006000300030003000180018 +000C000C000600020001000080092A7C9E10>I<8000400020003000180018000C000C00 +060006000600030003000300030003800380038003800380038003800380038003800380 +038003000300030003000600060006000C000C00180018003000200040008000092A7E9E +10>I<60F0F0701010101020204080040C7C830C>44 DI<60F0F0 +6004047C830C>I<00010003000600060006000C000C000C001800180018003000300030 +0060006000C000C000C0018001800180030003000300060006000C000C000C0018001800 +1800300030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C70 +0E60066006E007E007E007E007E007E007E007E007E007E007E007E007E0076006600670 +0E300C300C18180C3007E0101D7E9B15>I<010007003F00C70007000700070007000700 +070007000700070007000700070007000700070007000700070007000700070007000700 +FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E00 +1C001C00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I< +07E01830201C201C781E780E781E381E001C001C00180030006007C00030001C001C000E +000F000F700FF80FF80FF80FF00E401C201C183007C0101D7E9B15>I<000C00000C0000 +1C00003C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C0010 +1C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C0000 +1C0001FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02C30 +3018301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D +7E9B15>I<00F0030C04040C0E181E301E300C700070006000E3E0E430E818F00CF00EE0 +06E007E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000 +007FFF807FFF007FFF004002008004008004008008000010000010000020000060000040 +0000C00000C00001C0000180000180000380000380000380000380000780000780000780 +00078000078000078000030000111D7E9B15>I<03E00C301008200C2006600660067006 +70067C0C3E183FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004 +300C1C1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E0 +07E0076007700F300F18170C2707C700060006000E300C780C78187018203010C00F8010 +1D7E9B15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000 +000000000000000060F0F0701010101020204080041A7C910C>I61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C000 +8001800100010001000100010001000000000000000000000003000780078003000F1D7E +9C14>63 D<000600000006000000060000000F0000000F0000000F000000178000001780 +000037C0000023C0000023C0000043E0000041E0000041E0000080F0000080F0000080F0 +00010078000100780001FFF80002003C0002003C0002003C0004001E0004001E000C001F +000C000F001E001F00FF00FFF01C1D7F9C1F>65 DI<001F8080 +00E0618001801980070007800E0003801C0003801C000180380001807800008078000080 +70000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000 +700000807800008078000080380000801C0001001C0001000E0002000700040001800800 +00E03000001FC000191E7E9C1E>IIII<001F808000E06180 +01801980070007800E0003801C0003801C00018038000180780000807800008070000080 +F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F8070000780 +7800078078000780380007801C0007801C0007800E00078007000B800180118000E06080 +001F80001C1E7E9C21>III<07FF80007C00003C00003C00003C00003C00003C00003C +00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C +00003C00703C00F83C00F83C00F8380070780040700030E0000F8000111D7F9B15>IIIII<003F800000E0E0000380380007001C000E000E001C0007003C00078038 +000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F0 +0001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E +000E0007001C000380380000E0E000003F80001B1E7E9C20>II<003F800000E0E0000380380007001C000E000E001C0007003C0007 +8038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001 +E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0E07801C1107 +000E208E0007205C0003A0780000F0E020003FE0200000602000003060000038E000003F +C000003FC000001F8000000F001B257E9C20>II<07 +E0801C1980300580300380600180E00180E00080E00080E00080F00000F800007C00007F +C0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001C0C0 +0180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F00C0 +400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F0000 +000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 +000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>III +III91 +D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>II<1FC000307000783800781C00301C00001C00001C0001FC000F1C0038 +1C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 +DI<03F80C0C181E301E700C6000E0 +00E000E000E000E000E00060007002300218040C1803E00F127F9112>I<001F80000380 +00038000038000038000038000038000038000038000038000038003F3800E0B80180780 +300380700380600380E00380E00380E00380E00380E00380E00380600380700380300380 +1807800E1B8003E3F0141D7F9C17>I<07E00C301818300C700E6006E006FFFEE000E000 +E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E +000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E +000E000E000E007FE00F1D809C0D>I<00038007C4C01C78C0383880301800701C00701C +00701C00701C003018003838001C700027C0002000002000003000003FF8001FFF001FFF +802003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>II<18003C003C00180000000000000000 +00000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000000000000000000000 +07E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E060E0F0C0F1C061803E000B25839C0D>IIIII<03F0000E1C00180600300300700380600180E001 +C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F0001212 +7F9115>II<03E0800E1980180580380780700380700380 +E00380E00380E00380E00380E00380E003807003807003803807801807800E1B8003E380 +000380000380000380000380000380000380000380001FF0141A7F9116>II<1F9020704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D060 +8FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C +001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIIIII<7FFC70386038407040F040E041C003C003 +8007000F040E041C043C0C380870087038FFF80E127F9112>III E /Fv 89 127 df18 +D<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F0600419779816>33 +DI<038700038700 +038700038700038700038700FFFFE0FFFFE07FFFE0070E00070E00070E000E1C000E1C00 +0E1C000E1C007FFFE0FFFFE0FFFFE01C38001C38001C38001C38001C38001C380013197F +9816>I<00C00001C00001C00001C00007F0001FFC003FFE007DCF0071C780E1C380E1C7 +80E1C780F1C30079C0003FC0001FF00007FC0001FE0001CF0001C70061C380F1C380F1C3 +80E1C38071C70079DF003FFE001FF80007E00001C00001C00000C00011207E9C16>I<38 +01807C03807C0380EE0700EE0700EE0E00EE0E00EE0E00EE1C007C1C007C380038380000 +700000700000700000E00000E00001C00001C00001C0000380000383800707C00707C00E +0EE00E0EE00E0EE01C0EE01C0EE03807C03807C018038013207F9C16>I<30787C3C1C1C +1C1C3878F0E040060D789816>39 D<00E001E0038007000E001C001C0038003800700070 +007000E000E000E000E000E000E000E000E000E000700070007000380038001C001C000E +000700038001E000E00B217A9C16>II<0380038003800380E38EF39EFFFE3FF80FE00F +E03FF8FFFEF39EE38E03800380038003800F127D9516>I<00E00000E00000E00000E000 +00E00000E00000E00000E000FFFFE0FFFFE0FFFFE000E00000E00000E00000E00000E000 +00E00000E00000E00013137F9516>I<387C7E7E3E0E1E1C78F060070B798416>II<70F8F8F8700505788416>I<000180000380000380000700 +000700000E00000E00001C00001C0000380000380000700000700000E00000E00001C000 +01C0000380000380000700000700000E00000E00001C00001C0000380000380000700000 +700000E00000E00000C0000011207E9C16>I<03E0000FF8001FFC001E3C00380E00780F +00700700700700E00380E00380E00380E00380E00380E00380E00380E00380F007807007 +00700700780F003C1E001E3C001FFC000FF80003E00011197E9816>I<0300070007000F +001F00FF00FF00E700070007000700070007000700070007000700070007000700070007 +00FFF8FFF8FFF80D197B9816>I<07E0001FF8003FFC00783E00E00700F00780F0038060 +0380000380000380000700000700000E00001C0000380000700000E00001C0000380000F +00001E03803803807FFF80FFFF807FFF8011197E9816>I<07E0001FF8003FFC00781E00 +780700300700000700000700000E00003E0007FC0007F00007FC00001E00000700000300 +000380000380600380F00380E00700781E003FFC001FF80007E00011197E9816>I<007C +0000FC0000DC0001DC00039C00039C00071C000F1C000E1C001E1C003C1C00381C00781C +00F01C00FFFFE0FFFFE0FFFFE0001C00001C00001C00001C00001C0001FFC001FFC001FF +C013197F9816>I<3FFE007FFE007FFE0070000070000070000070000070000070000070 +000077F0007FFC007FFE00780F00300700000380000380600380F00380F00380E0070078 +1E003FFC001FF80007E00011197E9816>I<00F80003FC0007FE000F07001C0F00380F00 +780600700000700000E3F800EFFC00FFFE00F80F00F00700F00380E00380E00380700380 +7003807007803807003C1E001FFC000FF80003E00011197E9816>II<07F0001FFC003FFE007C1F00F00780E00380E00380E003807007007C1F001F +FC0007F0001FFC003C1E00700700F00780E00380E00380E00380F007807007007C1F003F +FE001FFC0007F00011197E9816>I<03E0000FF8001FFC003C1E00700E00700700E00700 +E00780E00380E00380E00780700780780F803FFF801FFB800FE380000700000700300700 +780E00781C00707C003FF8001FE0000F800011197E9816>I<70F8F8F870000000000000 +000070F8F8F8700512789116>I<387C7C7C38000000000000000038787C7C3C1C1C3870 +F0400618799116>I<000180000780001F80003E0000F80001F00007C0000F80003E0000 +FC0000F00000FC00003E00000F800007C00001F00000F800003E00001F80000780000180 +11157E9616>III<0FF0003FFE007FFF00F00F80F00380F00380600780001F00003E00 +00780000F00001C00001C00001C00001C00001C000018000000000000000000000000000 +01800003C00003C00001800011197E9816>I<00F80003FC0007FE000F07001C3B8038FF +8079FF8073C7C07383C0E701C0E701C0E701C0E701C0E701C0E701C0E701C073838073C7 +8079FF0038FE001C38000F03C007FFC003FF0000FC0012197E9816>I<00E00001F00001 +F00001B00001B00003B80003B80003B800031800071C00071C00071C00071C00071C000E +0E000E0E000FFE000FFE001FFF001C07001C07001C07007E0FC0FF1FE07E0FC013197F98 +16>I<7FF800FFFE007FFF001C07001C07801C03801C03801C03801C03801C07001FFF00 +1FFE001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C03C01C07807FFF80 +FFFF007FFC0012197F9816>I<01F18007FB800FFF801F0F803C07803803807003807003 +80F00000E00000E00000E00000E00000E00000E00000E00000F000007003807003803803 +803C07001F0F000FFE0007FC0001F00011197E9816>I<7FF800FFFE007FFF001C0F001C +07801C03C01C01C01C01C01C01E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C +00E01C01C01C01C01C03C01C07801C0F807FFF00FFFE007FF8001319809816>I<7FFFC0 +FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C00001C1C001C1C001FFC001FFC00 +1FFC001C1C001C1C001C00001C00E01C00E01C00E01C00E01C00E07FFFE0FFFFE07FFFE0 +13197F9816>I<7FFFE0FFFFE07FFFE01C00E01C00E01C00E01C00E01C00001C00001C1C +001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00001C00001C00001C00 +007F8000FFC0007F800013197F9816>I<01F18007FB800FFF801F0F803C078038038070 +0380700380F00000E00000E00000E00000E00000E01FC0E01FE0E01FC0F0038070038070 +07803807803C07801E0F800FFF8007FB8001F38013197F9816>I<7F07F0FF8FF87F07F0 +1C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C0 +1C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F01519809816> +I<7FFCFFFE7FFC0380038003800380038003800380038003800380038003800380038003 +8003800380038003807FFCFFFE7FFC0F197D9816>I<01FF0003FF8001FF00001C00001C +00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C +00001C00001C00601C00F01C00F038007FF8007FF0001FC00011197E9816>I<7F0FE0FF +8FF07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0001CE0001DF0001FF0001F +F8001F38001E1C001C1C001C0E001C0E001C07001C07001C03807F07E0FF8FF07F07E014 +19809816>III<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C0 1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C00E03800E0380070700 -07FF0003FE0000F8001519809816>II<7E03F0FF07F87E03F038 -00E03800E03800E03800E01C01C01C01C01C01C01C71C01CF9C01CF9C01CD9C01CD9C00C -D9800CD9800CD9800DDD800D8D800D8D800D8D80078F00078F000707001519809816>I< -7F1F807F3FC07F1F800E1E000E1C00071C0007380003B80003F00001F00001E00000E000 -01E00001F00003F00003B80007B800071C000F1C000E0E000E0E001C07007E0FC0FF1FE0 -7E0FC013197F9816>II<7FFF80FFFF80FFFF80E00700E00F00E0 -1E00E01C00003C0000780000700000F00001E00001C00003C0000780000700000F00001E -03801C03803C0380780380700380FFFF80FFFF80FFFF8011197E9816>IIII<03000F803FE0FDF8F07840100D -067C9816>I<081C3C7870E0E0E0E0F0F87830060D789B16>96 D<1FE0003FF0007FF800 -783C00300E00000E00000E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E00 -7FFFE03FE7E00F83E013127E9116>II<03F80FFC1FFE3C1E780C -7000E000E000E000E000E000F000700778073E0E1FFC0FF803F010127D9116>I<003F00 -003F00003F0000070000070000070000070003C7000FF7001FFF003C1F00780F00700700 -E00700E00700E00700E00700E00700E00700700F00780F003C1F001FFFE00FF7E007C7E0 -13197F9816>I<03F0000FFC001FFE003C0F00780700700380E00380FFFF80FFFF80FFFF -80E00000E000007003807803803E07801FFF0007FE0001F80011127E9116>I<001E0000 -7F0001FF8001C7800383000380000380007FFF00FFFF00FFFF0003800003800003800003 -80000380000380000380000380000380000380000380000380007FFC00FFFE007FFC0011 -197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00380E001C1C00 -0FF8001FF0001BE0003800001800001FFC001FFF003FFF807003C0E000E0E000E0E000E0 -E000E07001C07C07C03FFF800FFE0003F800131C7F9116>II<03 -000780078003000000000000000000FF80FF80FF80038003800380038003800380038003 -800380038003800380FFFCFFFEFFFC0F1A7C9916>I<0030007800780030000000000000 -00000FF81FF80FF800380038003800380038003800380038003800380038003800380038 -003800380038003800386070F0F0FFE07FC03F800D237E9916>I<7E0000FE00007E0000 -0E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF000 -0FF0000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCFF07F87F01419809816> -I<7FC000FFC0007FC00001C00001C00001C00001C00001C00001C00001C00001C00001C0 -0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF00FFFF -807FFF0011197E9816>II< -FC7800FDFC00FFFE001F0F001E07001C07001C07001C07001C07001C07001C07001C0700 -1C07001C07001C0700FF8FE0FF9FE0FF8FE013127F9116>I<03E0000FF8001FFC003C1E -00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC -000FF80003E00011127E9116>II<03E3800FF380 -1FFB803E0F80780780700780E00380E00380E00380E00380E00380E00380700780780780 -3C1F801FFB800FF38003E380000380000380000380000380000380000380001FF0003FF8 -001FF0151B7F9116>I<7F0FC0FF3FE07F7FE007F04007C0000780000780000700000700 -000700000700000700000700000700000700007FFC00FFFC007FFC0013127F9116>I<0F -EC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F -127D9116>I<0300000700000700000700000700007FFF00FFFF00FFFF00070000070000 -07000007000007000007000007000007010007038007038007038007870003FE0001FC00 -00F80011177F9616>II<7F -1FC0FF9FE07F1FC01C07001C07000E0E000E0E000E0E00071C00071C00071C00071C0003 -B80003B80003B80001F00001F00000E00013127F9116>II<7F1FC07F3FC07F1FC00F1E00073C0003B80003F00001F0 -0000E00001E00001F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F9116 ->I<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C00071C00039C0003 -9C0003980001B80001B80000F00000F00000F00000E00000E00000E00001C00079C0007B -C0007F80007F00003C0000131B7F9116>I<3FFFC07FFFC07FFFC0700780700F00701E00 -003C0000780001F00003E0000780000F00001E01C03C01C07801C0FFFFC0FFFFC0FFFFC0 -12127F9116>I124 D<1C303F78FFF8F7E061C00D057C9816>126 -D E /Fv 3 108 df<007F004003FFE0C00780F0C00E0019C01C0007C0380003C0780001 +07FF0003FE0000F8001519809816>I<7E03F0FF07F87E03F03800E03800E03800E03800 +E01C01C01C01C01C01C01C71C01CF9C01CF9C01CD9C01CD9C00CD9800CD9800CD9800DDD +800D8D800D8D800D8D80078F00078F000707001519809816>87 D<7F1F807F3FC07F1F80 +0E1E000E1C00071C0007380003B80003F00001F00001E00000E00001E00001F00003F000 +03B80007B800071C000F1C000E0E000E0E001C07007E0FC0FF1FE07E0FC013197F9816> +II<7FFF80FFFF80FFFF80E00700E00F00E01E00E01C00003C0000 +780000700000F00001E00001C00003C0000780000700000F00001E03801C03803C038078 +0380700380FFFF80FFFF80FFFF8011197E9816>IIII<03000F803FE0FDF8F07840100D067C9816>I<1FE0003F +F0007FF800783C00300E00000E00000E0003FE001FFE003E0E00700E00E00E00E00E00E0 +0E00783E007FFFE03FE7E00F83E013127E9116>97 DI<03F80FFC +1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1FFC0FF803F010127D91 +16>I<003F00003F00003F0000070000070000070000070003C7000FF7001FFF003C1F00 +780F00700700E00700E00700E00700E00700E00700E00700700F00780F003C1F001FFFE0 +0FF7E007C7E013197F9816>I<03F0000FFC001FFE003C0F00780700700380E00380FFFF +80FFFF80FFFF80E00000E000007003807803803E07801FFF0007FE0001F80011127E9116 +>I<001E00007F0001FF8001C7800383000380000380007FFF00FFFF00FFFF0003800003 +80000380000380000380000380000380000380000380000380000380000380007FFC00FF +FE007FFC0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00 +380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807003C0E000E0 +E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>II<03000780078003000000000000000000FF80FF80FF80038003800380038003 +800380038003800380038003800380FFFCFFFEFFFC0F1A7C9916>I<0030007800780030 +00000000000000000FF81FF80FF800380038003800380038003800380038003800380038 +003800380038003800380038003800386070F0F0FFE07FC03F800D237E9916>I<7E0000 +FE00007E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C00 +0E78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCFF07F87F0 +1419809816>I<7FC000FFC0007FC00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +007FFF00FFFF807FFF0011197E9816>III<03E0000FF8 +001FFC003C1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F +003C1E001FFC000FF80003E00011127E9116>II< +03E3800FF3801FFB803E0F80780780700780E00380E00380E00380E00380E00380E00380 +7007807807803C1F801FFB800FF38003E380000380000380000380000380000380000380 +001FF0003FF8001FF0151B7F9116>I<7F0FC0FF3FE07F7FE007F04007C0000780000780 +000700000700000700000700000700000700000700000700007FFC00FFFC007FFC001312 +7F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00EF81EFF +FCFFF8C7E00F127D9116>I<0300000700000700000700000700007FFF00FFFF00FFFF00 +070000070000070000070000070000070000070000070100070380070380070380078700 +03FE0001FC0000F80011177F9616>II<7F1FC0FF9FE07F1FC01C07001C07000E0E000E0E000E0E00071C00071C0007 +1C00071C0003B80003B80003B80001F00001F00000E00013127F9116>II<7F1FC07F3FC07F1FC00F1E00073C0003B8 +0003F00001F00000E00001E00001F00003B800073C00071C000E0E007F1FC0FF3FE07F1F +C013127F9116>I<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C0007 +1C00039C00039C0003980001B80001B80000F00000F00000F00000E00000E00000E00001 +C00079C0007BC0007F80007F00003C0000131B7F9116>I<3FFFC07FFFC07FFFC0700780 +700F00701E00003C0000780001F00003E0000780000F00001E01C03C01C07801C0FFFFC0 +FFFFC0FFFFC012127F9116>I124 D<1C303F78FFF8F7E061C00D057C9816>126 +D E /Fw 82 127 df18 +D<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070F8F8F870051C779B18>33 +D<4010E038F078E038E038E038E038E038E038E038E038E038E03860300D0E7B9C18>I< +030600078F00078F00078F00078F00078F00078F007FFFC0FFFFE0FFFFE07FFFC00F1E00 +0F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC01E3C001E3C001E3C00 +1E3C001E3C001E3C000C1800131C7E9B18>I<00C00001C00001C00001C00003F0000FFC +003FFE007DCF0071C700E1C380E1C780E1C780E1C780F1C00079C0003FC0001FE0000FF8 +0001FC0001DE0001CF0001C70061C380F1C380F1C380E1C380E1C70071C70079DE003FFE +001FF80007E00001C00001C00001C00000C00011247D9F18>I<387C7C7E3E0E0E0E1C1C +38F8F0C0070E789B18>39 D<007000F001E003C007800F001E001C003800380070007000 +70007000E000E000E000E000E000E000E000E0007000700070007000380038001C001E00 +0F00078003C001F000F000700C24799F18>I<6000F00078003C001E000F000780038001 +C001C000E000E000E000E00070007000700070007000700070007000E000E000E000E001 +C001C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001 +C00041C100F1C780FDDF807FFF001FFC0007F00007F0001FFC007FFF00FDDF80F1C78041 +C10001C00001C00001C00001C00011147D9718>I<00600000F00000F00000F00000F000 +00F00000F00000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F000 +00F00000F00000600013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF +C0FFFFE0FFFFE07FFFC013047E8F18>I<3078FCFC78300606778518>I<00030000078000 +0780000F80000F00001F00001E00001E00003E00003C00007C0000780000780000F80000 +F00001F00001E00003E00003C00003C00007C0000780000F80000F00000F00001F00001E +00003E00003C00003C00007C0000780000F80000F00000F0000060000011247D9F18>I< +01F00007FC000FFE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0 +E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C0700 +1F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB8043 +8003800380038003800380038003800380038003800380038003800380038003807FFCFF +FE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000 +E00000E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E0 +0007C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<001F00003F0000 +770000770000E70001E70001C7000387000787000707000E07001E07003C070038070078 +0700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007FF000 +7FF0007FF0151C7F9B18>52 D<03F0000FFC001FFE003C0F00780780700380E001C0E001 +C0E001C0E001E0E001E07001E07803E03C0FE01FFFE00FFEE003F0E00000E00001C00001 +C00001C0300380780780780F00783E003FFC001FF00007C000131C7E9B18>57 +D<3078FCFC783000000000000000003078FCFC78300614779318>I<0000C00003E00007 +E0001FC0003F8000FE0001FC0007F0000FE0003F80007F0000FC0000FC00007F00003F80 +000FE00007F00001FC0000FE00003F80001FC00007E00003E00000C013187E9918>60 +D<7FFFC0FFFFE0FFFFE07FFFC00000000000000000000000007FFFC0FFFFE0FFFFE07FFF +C0130C7E9318>I<600000F80000FC00007F00003F80000FE00007F00001FC0000FE0000 +3F80001FC00007E00007E0001FC0003F8000FE0001FC0007F0000FE0003F80007F0000FC +0000F8000060000013187E9918>I<0FF0003FFC007FFF00700F00F00380F00380600780 +000F00003E00007C0001F00001E00003C00003C00003C00003C00003C000038000000000 +00000000000000000000000003800007C00007C00007C000038000111C7D9B18>I<0070 +0000F80000F80000D80000D80001DC0001DC0001DC00018C00038E00038E00038E00038E +000707000707000707000707000707000FFF800FFF800FFF800E03801C01C01C01C01C01 +C07F07F0FF07F87F07F0151C7F9B18>65 D<7FFC00FFFF007FFF801C03C01C01C01C00E0 +1C00E01C00E01C00E01C01E01C01C01C07C01FFF801FFF001FFFC01C03C01C00E01C00F0 +1C00701C00701C00701C00701C00F01C00E01C03E07FFFC0FFFF807FFE00141C7F9B18> +I<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000E0700000E00000E000 +00E00000E00000E00000E00000E00000E000007000007000E07000E03800E03C00E01E01 +C00F07C007FF8003FE0000F800131C7E9B18>I<7FF800FFFE007FFF001C0F801C03C01C +03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C00701C +00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B +18>III<01F1C003FDC00FFFC01F0FC01C03C03803C03801C07001C07001C0700000E0 +0000E00000E00000E00000E00000E00FF0E01FF0E00FF07001C07001C07003C03803C038 +03C01C07C01F0FC00FFFC003FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F01C01C0 +1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C0 +1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0 +151C7F9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C0007FFF00FFFF807FFF00111C7D9B18>I<7F07F0FF87F87F07F01C +03C01C07801C07001C0E001C1E001C3C001C38001C70001CF0001DF0001DF0001FB8001F +B8001F1C001E1C001C0E001C0E001C07001C07001C03801C03801C01C07F03F0FF87F87F +03F0151C7F9B18>75 DII<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C0 +1CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C0 +1C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18>I<0FFE003FFF +807FFFC07803C07001C0F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000 +E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07C07C07FFF +C03FFF800FFE00131C7E9B18>II<0FFE00 +3FFF807FFFC07803C07001C0F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0 +E000E0E000E0E000E0E000E0E000E0E000E0E000E0E070E0E070E0F079E07039C0783FC0 +7FFFC03FFF800FFE00000F000007800007800003C00001C00001C013227E9B18>I<7FF8 +00FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF +001FFE001FFE001C0F001C07001C03801C03801C03801C03801C03801C039C1C039C1C03 +9C7F01F8FF81F87F00F0161C7F9B18>I<03F1C01FFFC03FFFC07C0FC07003C0E001C0E0 +01C0E001C0E000007000007800003F00001FF00007FE0000FF00000F800003C00001C000 +00E00000E06000E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I< +7FFFF8FFFFF8FFFFF8E07038E07038E07038E07038007000007000007000007000007000 +007000007000007000007000007000007000007000007000007000007000007000007000 +00700007FF0007FF0007FF00151C7F9B18>IIII<7F0FE07F9FE07F0FE00E07000F0700070E00078E00039C0003DC0001F80001F8 +0000F80000F00000700000F00000F80001FC0001DC00039E00038E00070F000707000E07 +800E03801E03C07F07F0FF07F87F07F0151C7F9B18>II<3FFFE07FFFE07FFFE07001C07003C0700780700700000F00001E00001C00 +003C0000780000700000F00001E00001C00003C0000780000700000F00001E00E01C00E0 +3C00E07800E07000E0FFFFE0FFFFE0FFFFE0131C7E9B18>II<600000F0 +0000F00000F800007800007C00003C00003C00003E00001E00001F00000F00000F00000F +800007800007C00003C00003C00003E00001E00001F00000F00000F80000780000780000 +7C00003C00003E00001E00001E00001F00000F00000F8000078000078000030011247D9F +18>II<018007C01FF07EFCF83EE00E0F067C9B18>I<061E3E387070E0E0 +E0F8FC7C7C38070E789E18>96 D<0FF0001FFC003FFE003C0F0018070000038000038000 +FF8007FF801FFF807F0380780380E00380E00380E00380F00780780F803FFFF81FFDF807 +F0F815147E9318>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E00 +0EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E0038 +0F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF +803E0780380300700000700000E00000E00000E00000E00000E00000E000007000007001 +C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F80003F80001F8000038000 +038000038000038000038003E3800FFB801FFF803C1F80380F80700780700380E00380E0 +0380E00380E00380E00380E00380700780700780380F803C1F801FFFF00FFBF803E3F015 +1C7E9B18>I<01F00007FC001FFE003E0F00380780700380700380E001C0E001C0FFFFC0 +FFFFC0FFFFC0E000007000007001C03801C03E07C01FFF8007FF0001F80012147D9318> +I<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80FFFF81E1E301C0E0038 +07003807003807003807003807001C0E001E1E001FFC001FF80039E0003800001C00001F +FE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800F07E03F01FFFC00F +FF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E00000E00000E00000E0000 +0E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E0 +0E00E00E00E00E00E00E00E00E00E07FC7FCFFE7FE7FC7FC171C809B18>I<038007C007 +C007C0038000000000000000007FC0FFC07FC001C001C001C001C001C001C001C001C001 +C001C001C001C001C001C0FFFFFFFFFFFF101D7C9C18>I<0038007C007C007C00380000 +0000000000000FFC0FFC0FFC001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C6038F078FFF07FE03F800E277E9C18> +I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3FF00E3FF00E3FF00E07 +800E0F000E1E000E3C000E78000EF0000FF8000FFC000F9C000F0E000E0F000E07000E03 +800E03C07FC7F8FFC7F87FC7F8151C7F9B18>III<7E3E +00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00 +E00E00E00E00E00E00E00E00E07FC7FCFFE7FE7FC7FC1714809318>I<01F0000FFE001F +FF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C078 +03C03C07803E0F801FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1E0 +0F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80E0 +0FC1E00FFFC00EFF800E3E000E00000E00000E00000E00000E00000E00000E00007FC000 +FFE0007FC000151E809318>I<01F38007FB801FFF803E1F80380F80700780700780E003 +80E00380E00380E00380E00380E00380700780700780380F803C1F801FFF800FFB8003E3 +80000380000380000380000380000380000380000380001FF0003FF8001FF0151E7E9318 +>II<07F700 +3FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC0003FE00001F00600780 +E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318>I<0180000380000380 +000380000380007FFFC0FFFFC0FFFFC00380000380000380000380000380000380000380 +000380000380000380400380E00380E00380E001C1C001FFC000FF80003E0013197F9818 +>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E +00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC1714809318>I<7F8FF0 +FF8FF87F8FF01C01C00E03800E03800E0380070700070700070700078F00038E00038E00 +038E0001DC0001DC0001DC0000F80000F80000700015147F9318>II<7F8FF07F9FF07F8FF00F070007 +8E00039E0001DC0001F80000F80000700000F00000F80001DC00039E00038E000707000E +07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E03800E0380 +070380070700070700038700038700038E0001CE0001CE0001CC0000CC0000DC00007800 +00780000780000700000700000700000F00000E00079E0007BC0007F80003F00001E0000 +151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E00003C0000F8 +0001F00003C0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F9318 +>I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 +F0600424769F18>124 D<060C1F1E3FBEFBF8F1F060C00F067C9B18>126 +D E /Fx 3 108 df<007F004003FFE0C00780F0C00E0019C01C0007C0380003C0780001 C0700001C0F00000C0F00000C0F00000C0F0000040F8000040F80000407C0000007E0000 007F8000003FF000001FFF80000FFFF00007FFFC0001FFFE00003FFF000003FF8000003F C000000FE0000003E0000003F0000001F0800001F0800000F0800000F0800000F0C00000 @@ -1361,7 +1552,7 @@ F0C00000E0E00000E0E00001E0F00001C0F8000380E6000700C3E01E00C0FFF800801FE0 000F0030000F0040000F0080000F0100000F0300000F0780000F0BC0000F13E0000F21E0 000F40F0000F8078000F0078000F003C000F001E000F001E000F000F000F0007800F0007 C00F0003C00F0001E00F0003F0FFF007FEFFF007FE1F1F7D9E26>107 -D E /Fw 45 122 df<0001FF0000001FFFC000007F81E00000FC01E00001F807F00003F8 +D E /Fy 46 122 df<0001FF0000001FFFC000007F81E00000FC01E00001F807F00003F8 07F00007F007F00007F007F00007F007F00007F007F00007F001C00007F000000007F000 000007F000000007F03FF800FFFFFFF800FFFFFFF800FFFFFFF80007F003F80007F003F8 0007F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F800 @@ -1399,235 +1590,250 @@ FE0000FFFF0001FC078003F00FC007C01FC00F801FC01F801FC01F001FC03F000F803F00 00007E0000007E0000007E000000FE020000FE1FF000FE3FFC00FE603E00FE801F00FF80 1F80FF000FC0FF000FC0FE000FE0FE000FE0FE000FE0FE000FE07E000FE07E000FE07E00 0FE07E000FE03E000FE03F000FC01F000FC01F001F800F801F0007E07E0003FFFC0001FF -F800003FC0001B277DA622>I<00000780000000000780000000000FC0000000000FC000 -0000000FC0000000001FE0000000001FE0000000003FF0000000003FF0000000003FF000 -00000077F80000000077F800000000F7FC00000000E3FC00000000E3FC00000001C1FE00 -000001C1FE00000003C1FF0000000380FF0000000380FF00000007007F80000007007F80 -00000F007FC000000E003FC000000E003FC000001C001FE000001C001FE000003FFFFFF0 -00003FFFFFF000003FFFFFF00000700007F80000700007F80000F00007FC0000E00003FC -0001E00003FE0001C00001FE0001C00001FE0003C00001FF00FFFE003FFFFCFFFE003FFF -FCFFFE003FFFFC2E297EA833>65 DI<00007FE0030007FFFC07001FFFFF0F007FF00F9F00FF0001FF -01FC0000FF03F800007F07F000003F0FE000001F1FC000001F1FC000000F3F8000000F3F -800000077F800000077F800000077F00000000FF00000000FF00000000FF00000000FF00 -000000FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F8000 -00007F800000073F800000073F800000071FC00000071FC000000E0FE000000E07F00000 -1C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000007FF000 -28297CA831>I69 D<00007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000FF0001FF0001FC -0000FF0003F800007F0007F000003F000FE000001F001FC000001F001FC000000F003F80 -00000F003F80000007007F80000007007F80000007007F0000000000FF0000000000FF00 -00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00 -00000000FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F800000FF003F80 -0000FF001FC00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF0001FC -0000FF0000FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D29 -7CA835>71 DI<007F800001FFF00007FFF8000FC0FC001F803E003F001F +007E001F807E001F807E000F80FE000FC0FE000FC0FE000FC0FE000FE0FE000FE0FE000F +E0FE000FE0FE000FE07E001FE07E001FE03F003FE01F002FE00F80CFE007FF8FE001FF0F +E000080FE000000FC000000FC000000FC000001F803E001F807F001F807F003F007F003E +007F007E007E00FC003E03F8001FFFE0000FFF800001FE00001B277DA622>57 +D<00000780000000000780000000000FC0000000000FC0000000000FC0000000001FE000 +0000001FE0000000003FF0000000003FF0000000003FF00000000077F80000000077F800 +000000F7FC00000000E3FC00000000E3FC00000001C1FE00000001C1FE00000003C1FF00 +00000380FF0000000380FF00000007007F80000007007F8000000F007FC000000E003FC0 +00000E003FC000001C001FE000001C001FE000003FFFFFF000003FFFFFF000003FFFFFF0 +0000700007F80000700007F80000F00007FC0000E00003FC0001E00003FE0001C00001FE +0001C00001FE0003C00001FF00FFFE003FFFFCFFFE003FFFFCFFFE003FFFFC2E297EA833 +>65 DI<00 +007FE0030007FFFC07001FFFFF0F007FF00F9F00FF0001FF01FC0000FF03F800007F07F0 +00003F0FE000001F1FC000001F1FC000000F3F8000000F3F800000077F800000077F8000 +00077F00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000 +00FF00000000FF00000000FF000000007F000000007F800000007F800000073F80000007 +3F800000071FC00000071FC000000E0FE000000E07F000001C03F800003C01FC00007800 +FF0001F0007FF007C0001FFFFF800007FFFE0000007FF00028297CA831>I69 +D<00007FE003000007FFFC0700001FFFFF0F00007FF00F9F0000FF0001FF0001FC0000FF +0003F800007F0007F000003F000FE000001F001FC000001F001FC000000F003F8000000F +003F80000007007F80000007007F80000007007F0000000000FF0000000000FF00000000 +00FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000 +00FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F800000FF003F800000FF +001FC00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF0001FC0000FF +0000FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D297CA835 +>71 D73 -D73 D76 -D<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F80007E00003F00003F0 -0007E00001F8000FE00001FC001FC00000FE001FC00000FE003F8000007F003F8000007F -007F8000007F807F0000003F807F0000003F807F0000003F80FF0000003FC0FF0000003F -C0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003F -C0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000007F803F8000007F -003F8000007F001FC00000FE001FC00000FE000FE00001FC0007F00003F80003F80007F0 -0001FC000FE00000FE001FC000003FC0FF0000000FFFFC00000000FFC000002A297CA833 ->79 DI82 -D<00FF806003FFF0E00FFFF8E01F80FDE03F001FE03E0007E07C0003E07C0003E0FC0001 -E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFC00007FFFE0003FFFF8 -001FFFFE001FFFFF0007FFFF8003FFFFC000FFFFC0000FFFE000007FE000001FF000000F -F0000007F0E00003F0E00003F0E00003F0E00003F0F00003E0F00003E0F80007E0FC0007 -C0FF000F80FFE03F80E3FFFE00E1FFFC00C01FF0001C297CA825>I<7FFFFFFFFF807FFF -FFFFFF807FFFFFFFFF807F807F807F807C007F800F8078007F80078078007F8007807000 -7F800380F0007F8003C0F0007F8003C0E0007F8001C0E0007F8001C0E0007F8001C0E000 -7F8001C0E0007F8001C000007F80000000007F80000000007F80000000007F8000000000 -7F80000000007F80000000007F80000000007F80000000007F80000000007F8000000000 -7F80000000007F80000000007F80000000007F80000000007F80000000007F8000000000 -7F80000000007F80000000007F80000000007F80000000007F80000000007F80000000FF -FFFFC00000FFFFFFC00000FFFFFFC0002A287EA72F>I<03FF80000FFFF0001F01FC003F -80FE003F807F003F803F003F803F801F003F8000003F8000003F8000003F8000003F8000 -3FFF8001FC3F800FE03F801F803F803F003F807E003F80FC003F80FC003F80FC003F80FC -003F80FC005F807E00DF803F839FFC1FFE0FFC03FC03FC1E1B7E9A21>97 -DI<003FF000 -01FFFC0003F03E000FC07F001F807F003F007F003F007F007F003E007E0000007E000000 -FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007E000000 -7F0000003F0003803F8003801F8007000FE00E0003F83C0001FFF800003FC000191B7E9A -1E>I<00007FF000007FF000007FF0000007F0000007F0000007F0000007F0000007F000 -0007F0000007F0000007F0000007F0000007F0000007F0000007F0003F87F001FFF7F007 -F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E0007F07E0007F0FE0007F0FE -0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F07E0007F07E0007F03F -0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF007F87FF202A7EA925>I<003F -C00001FFF00003E07C000F803E001F801F001F001F003F000F807E000F807E000FC07E00 -0FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000FE000000FE0000007E0000007E00 -00007F0000003F0001C01F0001C00F80038007C0070003F01E0000FFFC00003FE0001A1B -7E9A1F>I<0007F8003FFC007E3E01FC7F03F87F03F07F07F07F07F03E07F00007F00007 -F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007 -F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007 -F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00FF80F003FF -E3F80FC1FE1C1F007C7C3F007E7C3E003E107E003F007E003F007E003F007E003F007E00 -3F007E003F003E003E003F007E001F007C000FC1F8000BFFE00018FF8000180000003800 -0000380000003C0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFFF01FFFFFF03C00 -07F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F07C0001F03F0007E00FC0 -1F8007FFFF00007FF0001E287E9A22>I76 D<0000FFC00000000FFFFC000000 +3F807F000000FE001FC00001F80007E00003F00003F00007E00001F8000FE00001FC001F +C00000FE001FC00000FE003F8000007F003F8000007F007F8000007F807F0000003F807F +0000003F807F0000003F80FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF +0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC07F +0000003F807F8000007F807F8000007F803F8000007F003F8000007F001FC00000FE001F +C00000FE000FE00001FC0007F00003F80003F80007F00001FC000FE00000FE001FC00000 +3FC0FF0000000FFFFC00000000FFC000002A297CA833>79 DI82 D<00FF806003FFF0E00FFFF8E01F +80FDE03F001FE03E0007E07C0003E07C0003E0FC0001E0FC0001E0FC0000E0FE0000E0FE +0000E0FF000000FFC000007FFC00007FFFE0003FFFF8001FFFFE001FFFFF0007FFFF8003 +FFFFC000FFFFC0000FFFE000007FE000001FF000000FF0000007F0E00003F0E00003F0E0 +0003F0E00003F0F00003E0F00003E0F80007E0FC0007C0FF000F80FFE03F80E3FFFE00E1 +FFFC00C01FF0001C297CA825>I<7FFFFFFFFF807FFFFFFFFF807FFFFFFFFF807F807F80 +7F807C007F800F8078007F80078078007F80078070007F800380F0007F8003C0F0007F80 +03C0E0007F8001C0E0007F8001C0E0007F8001C0E0007F8001C0E0007F8001C000007F80 +000000007F80000000007F80000000007F80000000007F80000000007F80000000007F80 +000000007F80000000007F80000000007F80000000007F80000000007F80000000007F80 +000000007F80000000007F80000000007F80000000007F80000000007F80000000007F80 +000000007F80000000007F80000000007F80000000FFFFFFC00000FFFFFFC00000FFFFFF +C0002A287EA72F>I<03FF80000FFFF0001F01FC003F80FE003F807F003F803F003F803F +801F003F8000003F8000003F8000003F8000003F80003FFF8001FC3F800FE03F801F803F +803F003F807E003F80FC003F80FC003F80FC003F80FC003F80FC005F807E00DF803F839F +FC1FFE0FFC03FC03FC1E1B7E9A21>97 DI<07000F801FC03FE03FE03FE01FC00F800700000000000000 -0000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 -0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7EAA12>II<003FF00001FFFC0003F03E000FC07F001F807F003F007F00 +3F007F007F003E007E0000007E000000FE000000FE000000FE000000FE000000FE000000 +FE000000FE0000007E0000007E0000007F0000003F0003803F8003801F8007000FE00E00 +03F83C0001FFF800003FC000191B7E9A1E>I<00007FF000007FF000007FF0000007F000 +0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 +0007F0000007F0003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E +0007F07E0007F07E0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE +0007F0FE0007F07E0007F07E0007F03F0007F03F0007F01F800FF00FC01FF007E07FFF01 +FFE7FF007F87FF202A7EA925>I<003FC00001FFF00003E07C000F803E001F801F001F00 +1F003F000F807E000F807E000FC07E000FC0FE0007C0FE0007C0FFFFFFC0FFFFFFC0FE00 +0000FE000000FE0000007E0000007E0000007F0000003F0001C01F0001C00F80038007C0 +070003F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F8003FFC007E3E01FC7F03F87F +03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0 +FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000 +07F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF80 +7FFF80182A7EA915>I<00FF80F003FFE3F80FC1FE1C1F007C7C3F007E7C3E003E107E00 +3F007E003F007E003F007E003F007E003F007E003F003E003E003F007E001F007C000FC1 +F8000BFFE00018FF80001800000038000000380000003C0000003FFFF8003FFFFF001FFF +FFC00FFFFFE007FFFFF01FFFFFF03C0007F07C0001F8F80000F8F80000F8F80000F8F800 +00F87C0001F07C0001F03F0007E00FC01F8007FFFF00007FF0001E287E9A22>I107 -DII< -FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807F00FD007F00FD007F00FE007F0 -0FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0 -0FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF -201B7D9A25>I<003FE00001FFFC0003F07E000FC01F801F800FC03F0007E03F0007E07E -0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE -0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC00FC01F8007F07F0001 -FFFC00003FE0001D1B7E9A22>II114 D<03FE300FFFF03E03F07800F07000F0F00070F00070 -F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800FFF80007FC0000FCE0007C -E0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF00161B7E9A1B>I<00E00000E0 -0000E00000E00001E00001E00001E00003E00003E00007E0000FE0001FFFE0FFFFE0FFFF -E00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0 -000FE0000FE0700FE0700FE0700FE0700FE0700FE0700FE07007F0E003F0C001FF80007F -0014267FA51A>IIIII -I E /Fx 22 123 df<60F0F06004047C830C>58 D<000001800000078000001E00000078 -000001E00000078000000E00000038000000F0000003C000000F0000003C000000F00000 -00F00000003C0000000F00000003C0000000F0000000380000000E0000000780000001E0 -000000780000001E000000078000000180191A7D9620>60 D62 -D<01FFFE00003C03C0003800E0003800F00038007000380070007000F0007000F0007000 -F0007001E000E001C000E0078000E01E0000FFF00001C0380001C00C0001C00E0001C00E -0003800E0003800E0003800E0003800E0007001E0007001E0807001E0807001E100F000F -10FFE00F20000003C01D1D7E9B20>82 D<000FC100303300400F00800601800603000603 -000606000406000407000007000007800003F00001FF0000FFC0003FE00003E00000F000 -00700000300000302000302000306000606000606000C0600080F00300CC060083F80018 -1E7E9C19>I<01E3000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00 -E01C00E01C00E03880E03880E038806078803199001E0E0011127E9116>97 -D<3F00070007000E000E000E000E001C001C001C001C0039E03A303C1838187018701C70 -1C701CE038E038E038E030E070E060E0C061C023001E000E1D7E9C12>I<01F007080C08 -18043808300870307FC0E000E000E000E000E000E0046008601030600F800E127E9113> -101 D<0038C000C5C00183C00303C00703800603800E03800E03801C07001C07001C0700 -1C07001C0E001C0E001C0E000C1E00047C00039C00001C00001C00003800603800F03000 -F07000E0C0007F0000121A809114>103 D<01C003C003C0018000000000000000000000 -00001C00270047004700870087000E000E001C001C001C00380038803880708071003200 -1C000A1C7E9B0E>105 D<0007000F000F00060000000000000000000000000078009C01 -0C020C021C041C001C001C0038003800380038007000700070007000E000E000E000E001 -C061C0F180F300E6007C001024809B11>I<0FC00001C00001C000038000038000038000 -0380000700000700000700000700000E07000E08800E11C00E23C01C47801C83001D0000 -1E00003FC00038E000387000387000707100707100707100707200E03200601C00121D7E -9C16>I<3C1F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C03 -801C0700380710380710380E10380E2070064030038014127E9119>110 -D<00F800030C000E06001C0300180300300300700380700380E00700E00700E00700E00E -00E00E00E01C0060180060300030E0000F800011127E9114>I<07878009C86008D03008 -E03011C03011C03801C03801C0380380700380700380700380600700E00700C007018007 -83000E86000E78000E00000E00001C00001C00001C00001C00003C0000FF0000151A8191 -15>I<01C206260C1E181E381C301C701C701CE038E038E038E038E070E070E07060F023 -E01CE000E000E001C001C001C001C003801FF00F1A7E9113>I<3C3C4E424687470F8E1E -8E0C0E000E001C001C001C001C0038003800380038007000300010127E9113>I<01F006 -0C0C040C0E180C1C001F000FE00FF003F80038201C7018F018F010803060601F800F127E -9113>I<00C001C001C001C00380038003800380FFF00700070007000E000E000E000E00 -1C001C001C001C00382038203840384018800F000C1A80990F>I<07878008C84010F0C0 -20F1E020E3C040E18000E00000E00001C00001C00001C00001C000638080F38080F38100 -E5810084C60078780013127E9118>120 D<1C00C02701C04701C04701C0870380870380 -0E03800E03801C07001C07001C07001C0700180E00180E00180E001C1E000C3C0007DC00 -001C00001800603800F03000F06000E0C0004180003E0000121A7E9114>I<038107C10F -F6081C10080010002000400080010002000400080410043C1867F843F081E010127E9113 ->I E /Fy 8 58 df<0F0030C0606060604020C030C030C030C030C030C030C030C030C0 -3040206060606030C00F000C137E9211>48 D<0C001C00EC000C000C000C000C000C000C -000C000C000C000C000C000C000C000C000C00FFC00A137D9211>I<1F0060C06060F070 -F030603000700070006000C001C00180020004000810101020207FE0FFE00C137E9211> -I<0FC030707038703870380038003000E00FC0007000380018001C601CF01CF018E03860 -701FC00E137F9211>I<006000E000E00160026006600C600860106020606060C060FFFC -0060006000600060006003FC0E137F9211>I<60607FC07F8044004000400040004F0070 -C040E0006000700070E070E070E06040E021C01F000C137E9211>I<0FC0107020186018 -601870183C303F600F800FE031F06078C01CC00CC00CC00C601830300FC00E137F9211> -56 D<0F00308060404060C020C030C030C0304030607030B00F30003000200060E040E0 -8041003E000C137E9211>I E /Fz 6 116 df<03F0400C0CC01002C03001C06000C0E000 -C0E00040E00040E00040F00000F800007E00007FE0003FFC001FFF0007FF80007F800007 -C00003E00001E00000E08000E08000E08000E0C000C0C000C0E00180D00300CE060081F8 -00131E7D9C19>83 D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F00 -20800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F00 -00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 -00000F0000001F800003FFFC001B1C7D9B21>I107 DI<01F800070E000C03001C03803801C07801E0 -7000E0F000F0F000F0F000F0F000F0F000F0F000F0F000F07000E07801E03801C01C0380 -1E0780070E0001F80014157E941A>111 D<1F1030F06030C030C010C010E000E0007E00 -3FC01FE003F0007800380018801880188010C030F0608F800D157E9413>115 -D E /FA 36 122 df<0000001FFF8000FFC000000003FFFFF01FFFF00000001FFFFFF87F +000FE000000FE000000FE000000FE000000FE000000FE07E000FE1FF800FE30FC00FE40F +E00FE807E00FF807F00FF007F00FF007F00FE007F00FE007F00FE007F00FE007F00FE007 +F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007 +F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA925>I<07000F801FC03FE0 +3FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0FFE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +FFFEFFFEFFFE0F2B7EAA12>I107 DIII<003FE00001FFFC0003F07E000FC01F801F800FC0 +3F0007E03F0007E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8 +FE0003F8FE0003F8FE0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC0 +0FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>II114 D<03FE300FFFF03E03F07800F0 +7000F0F00070F00070F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800FFF8 +0007FC0000FCE0007CE0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF00161B7E +9A1B>I<00E00000E00000E00000E00001E00001E00001E00003E00003E00007E0000FE0 +001FFFE0FFFFE0FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0 +000FE0000FE0000FE0000FE0000FE0700FE0700FE0700FE0700FE0700FE0700FE07007F0 +E003F0C001FF80007F0014267FA51A>IIIIII E /Fz 22 123 df<70F8F8F87005057C840D>58 +D<000000C0000003C000000F0000001C00000070000001E00000078000001E0000007800 +0001E00000038000000E0000003C000000F0000000F00000003C0000000E000000038000 +0001E0000000780000001E0000000780000001E0000000700000001C0000000F00000003 +C0000000C01A1C7C9823>60 D62 D<01FFFF80001E00F0001E00 +38001E001C001E001C003C001E003C001E003C001E003C001E0078003C0078003C007800 +78007800F000F001C000F0070000FFF80000F00E0001E0070001E0078001E0038001E003 +C003C0078003C0078003C0078003C0078007800F0007800F0207800F0207800F040F8007 +04FFF80308000001F01F207E9E23>82 D<0003F040000C08C0003005800060038000C003 +8001C00180018001000380010003800100038001000380000003C0000003E0000003FC00 +0001FFC00000FFF000007FF800001FF8000001FC0000007C0000003C0000001C0000001C +0020001C0020001C00200018006000380060003000600070007000E000E8018000C60300 +0081FC00001A217E9F1C>I<00F1800389C00707800E03801C03803C0380380700780700 +780700780700F00E00F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F0780 +14147E9318>97 D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C +3A0E3C0E380F380F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F00 +10207E9F14>I<007C018207010E011C013C013802780C7BF07C00F000F000F000F00070 +0070017002300418380FC010147E9315>101 D<001E3000713800E0F001C07003807007 +80700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03801E03800E07800E +0B8006170001E700000700000700000E00000E00300E00781C00F038006070003FC00015 +1D809316>103 D<00E001E001E000C000000000000000000000000000000E0013002380 +4380438043808700070007000E000E001C001C001C20384038403840388019000E000B1F +7E9E10>105 D<0000C00001E00001E00001C00000000000000000000000000000000000 +00000000001E00002300004380008380010380010380020700000700000700000700000E +00000E00000E00000E00001C00001C00001C00001C000038000038000038000038000070 +0000700030700078E000F1C0006380003E00001328819E13>I<01E0000FE00001C00001 +C00001C00001C0000380000380000380000380000700000700000701E00706100E08700E +10F00E20F00E20601C40001D80001E00001FC000387000383800383800381C2070384070 +3840703840701880E01880600F0014207E9F18>I<1E07802318C023A06043C070438070 +4380708700E00700E00700E00700E00E01C00E01C00E01C00E03821C03841C07041C0708 +1C03083803101801E017147E931B>110 D<007C0001C3000301800E01C01E01C01C01E0 +3C01E07801E07801E07801E0F003C0F003C0F003C0F00780F00700700F00700E00301800 +18700007C00013147E9316>I<03C1E004621804741C08781C08701E08701E10E01E00E0 +1E00E01E00E01E01C03C01C03C01C03C01C0380380780380700380E003C1C0072380071E +000700000700000E00000E00000E00000E00001C00001C0000FFC000171D819317>I<00 +F0400388C00705800E03801C03803C0380380700780700780700780700F00E00F00E00F0 +0E00F00E00F01C00F01C00703C00705C0030B8000F380000380000380000700000700000 +700000700000E00000E0000FFC00121D7E9314>I<1C1E00262100474380478780470780 +4703008E00000E00000E00000E00001C00001C00001C00001C0000380000380000380000 +38000070000030000011147E9315>I<00FC000303000600800C01800C03800C03000E00 +000F80000FF80007FC0001FE00001F00000700700700F00600F00600E004004008002030 +001FC00011147E9315>I<018001C0038003800380038007000700FFF807000E000E000E +000E001C001C001C001C003800380038003810702070207040708031001E000D1C7F9B10 +>I<03C1C00C62201034701038F02038F020386040700000700000700000700000E00000 +E00000E00000E02061C040F1C040F1C080E2C080446300383C0014147E931A>120 +D<1E00602300702300E04380E04300E04700E08701C00E01C00E01C00E01C01C03801C03 +801C03801C03801C07001807001C07001C0F000C3E0003CE00000E00000E00001C00F018 +00F03800E07000C0600041C0003F0000141D7E9316>I<01C02003F04007F8C00C1F8008 +010000020000040000080000100000600000C0000100000200000400800801001003003F +060063FE0040FC0080700013147E9315>I E /FA 8 56 df<07C018303018701C600C60 +0CE00EE00EE00EE00EE00EE00EE00EE00EE00E600C600C701C30181C7007C00F157F9412 +>48 D<06000E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E +000E000E000E00FFE00B157D9412>I<0F8030E040708030C038E0384038003800700070 +006000C00180030006000C08080810183FF07FF0FFF00D157E9412>I<0FE03030601870 +1C701C001C00180038006007E000300018000C000E000EE00EE00EC00C401830300FE00F +157F9412>I<00300030007000F001F001700270047008701870107020704070C070FFFE +0070007000700070007003FE0F157F9412>I<60307FE07FC0440040004000400040004F +8070E040700030003800384038E038E0388030406020C01F000D157E9412>I<01F00608 +080C181C301C70006000E000E3E0EC30F018F00CE00EE00EE00E600E600E300C30181830 +07C00F157F9412>I<40007FFE7FFC7FF8C0088010802000400080008001000300030002 +00060006000E000E000E000E000E0004000F167E9512>I E /FB +6 116 df<03F0200C0C601803E03000E06000E0600060E00060E00020E00020E00020F0 +0000F800007C00007F80003FFC001FFF0007FF8001FFC0000FE00003E00001E00000F000 +0070800070800070800070800070C00060C000E0E000C0F80180C6030081FC0014217C9F +1C>83 D<7FFFFFF878078078600780184007800840078008C007800C8007800480078004 +800780048007800400078000000780000007800000078000000780000007800000078000 +000780000007800000078000000780000007800000078000000780000007800000078000 +000780000007800000078000000FC00003FFFF001E1F7D9E24>I107 +DI<00FE000383800E00E01C00703C007838003878003C70001CF0001EF0001EF0 +001EF0001EF0001EF0001EF0001E70001C78003C3800383C00781C00700E00E003838000 +FE0017177E961D>111 D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801 +FC001C000E0006800680068006C004E008D81087E00F177E9615>115 +D E /FC 36 122 df<0000001FFF8000FFC000000003FFFFF01FFFF00000001FFFFFF87F FFFC0000007FF801FFFFC0FE000001FFC0003FFF01FF000007FF0000FFFC03FF00000FFC 0001FFF807FF80001FF80001FFF807FF80003FF80003FFF007FF80003FF00003FFF007FF 80007FF00003FFE007FF80007FE00003FFE003FF0000FFE00001FFE001FE0000FFE00001 @@ -2104,477 +2310,552 @@ F00000000007FFE00000000007FFE00000000007FFE00000000003FFC00000000003FFC0 000000F8000000000000F0000000000001F00000001F0001E00000003F8003E00000007F C003C0000000FFE007C0000000FFE00780000000FFE00F80000000FFE01F00000000FFE0 1E000000007FC07C000000007F80F8000000003F03F0000000001FFFE00000000007FF80 -0000000001FC000000000038427EAD3D>I E /FB 49 123 df<0000FE00000301800006 -0180000C0380001C0180001C0000001800000038000000380000003800000038000003FF -FE0000700E0000700E0000700E0000701C0000701C0000E01C0000E01C0000E0380000E0 -380000E0380001C0380001C0720001C0720001C0720001C0720003803400038018000380 -0000030000000300000007000000C6000000E6000000CC000000780000001925819C17> -12 D<183C3C3C0404080810204080060C779C0D>39 D<00030006000800180030006000 -C000C0018003000300060006000C000C001C001800180038003000300070007000600060 -0060006000E000E000E000E000E000600060006000600060002000300010000800080010 -2A7B9E11>I<001000100008000C00040006000600060006000600070007000700070007 -0006000600060006000E000E000C000C001C001800180038003000300060006000C000C0 -01800300030006000C00180010006000C000102A809E11>I -45 D<3078F06005047C830D>I<00000200000600000600000C00000C0000180000300000 -300000600000600000C00000C0000180000180000300000600000600000C00000C000018 -0000180000300000300000600000C00000C0000180000180000300000300000600000C00 -000C0000180000180000300000300000600000600000C0000080000017297F9E15>I<01 -E006180808100C100C200C400C401C8018E038E0F0C1E003C007800F001C003800308030 -8031001E000000000000000000000030007800F00060000E1E789D15>63 -D<0000180000001800000038000000380000007800000078000000B80000013800000138 -0000023C0000021C0000041C00000C1C0000081C0000101C0000101C0000201C0000201C -00007FFC0000C01C0000801C0001001C0001001E0002000E0002000E0004000E000C000E -001C001E00FF00FFC01A1D7E9C1F>65 D<0003F020001E0C60003002E000E003C001C001 -C0038001C0070000C00E0000801E0000801C0000803C0000803C00000078000000780000 -0078000000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F00008 -00700008007000100038002000180040000C0180000706000001F800001B1E7A9C1E>67 -D<01FFFF00003C03C0003800E0003800E000380070003800700070007800700038007000 -380070007800E0007800E0007800E0007800E0007801C000F001C000F001C000F001C000 -E0038001E0038001C0038003C0038003800700070007000E0007001C00070038000E00E0 -00FFFF80001D1C7E9B1F>I<01FFFFF0003C00F000380030003800200038002000380020 -0070002000700020007008200070080000E0100000E0100000E0300000FFF00001C02000 -01C0200001C0200001C02000038040800380008003800080038001000700010007000300 -07000200070006000E003C00FFFFFC001C1C7E9B1C>I<01FFFFF0003C00F00038003000 -38002000380020003800200070002000700020007008200070080000E0100000E0100000 -E0300000FFF00001C0200001C0200001C0200001C0200003804000038000000380000003 -800000070000000700000007000000070000000F000000FFF000001C1C7E9B1B>I<03FF -0078007000700070007000E000E000E000E001C001C001C001C003800380038003800700 -0700070007000E000E000E000E001E00FFC0101C7D9B10>73 D<01FFC0003C0000380000 -380000380000380000700000700000700000700000E00000E00000E00000E00001C00001 -C00001C00001C00003800203800203800203800407000407000C0700180700380E00F0FF -FFF0171C7E9B1A>76 D<01FE0001FE003E0001E0002E0003C0002E0005C0002E0005C000 -2E0009C0004E000B80004E001380004E0023800047002380008700470000870047000087 -00870000870107000107010E000107020E000107040E000107040E000207081C00020388 -1C000203901C000203A01C000403A038000403C038000403C038000C038038001C030078 -00FF8307FF00271C7E9B25>I<01FC00FF80001C001C00002E001800002E001000002E00 -1000002700100000470020000043002000004380200000438020000081C040000081C040 -000081C040000080E040000100E080000100708000010070800001007080000200390000 -0200390000020039000002001D000004001E000004000E000004000E00000C000E00001C -00040000FF80040000211C7E9B1F>I<0007F000001C1C0000700E0000E0070001C00380 -03800380070003800E0003C01E0003C01C0003C03C0003C03C0003C0780003C0780003C0 -780003C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F0001E00F0003C00 -70003800700070007800E0003801C0001C0380000E0E000003F800001A1E7A9C20>I<01 -FFFE00003C0380003801C0003800E0003800E0003800E0007001E0007001E0007001E000 -7001C000E003C000E0038000E0070000E01C0001FFF00001C0000001C0000001C0000003 -800000038000000380000003800000070000000700000007000000070000000F000000FF -E000001B1C7E9B1C>I<01FFFE00003C0780003801C0003801E0003800E0003800E00070 -01E0007001E0007001E0007003C000E0038000E0070000E01C0000FFE00001C0300001C0 -180001C01C0001C01C0003801C0003801C0003801C0003801C0007003C0007003C200700 -3C2007003C200F003C40FFE01E8000000F001B1D7E9B1E>82 D<000F8400304C00403C00 -801801001803001803001806001006001006000007000007000003E00003FC0001FF0000 -7F800007C00001C00001C00000C00000C02000C02000C0600180600180600300600200F0 -0400CC180083E000161E7D9C17>I<1FFFFFC01C0701C0300E00C0200E0080600E008040 -0E0080401C0080801C0080801C0080001C00000038000000380000003800000038000000 -70000000700000007000000070000000E0000000E0000000E0000000E0000001C0000001 -C0000001C0000001C0000003C000007FFE00001A1C799B1E>I86 D<01E307170C0F180F380E300E700E700EE01CE01CE01CE01CE039E039E039 -6079319A1E0C10127C9115>97 D<3F00070007000E000E000E000E001C001C001C001C00 -39E03A183C0C380C700C700E700E700EE01CE01CE01CE018E038E030E06060C031801E00 -0F1D7C9C13>I<00F803040E041C0E181C300070007000E000E000E000E000E000E00460 -08601030600F800F127C9113>I<0007E00000E00000E00001C00001C00001C00001C000 -038000038000038000038001E7000717000C0F00180F00380E00300E00700E00700E00E0 -1C00E01C00E01C00E01C00E03900E03900E03900607900319A001E0C00131D7C9C15>I< -00F807040C0418023804300470087FF0E000E000E000E000E00060046008301030600F80 -0F127C9113>I<0003C0000670000C70001C60001C00001C000038000038000038000038 -0000380003FF8000700000700000700000700000700000E00000E00000E00000E00000E0 -0001C00001C00001C00001C00001C000038000038000038000030000030000070000C600 -00E60000CC00007800001425819C0D>I<0078C001C5C00303C00603C00E03800C03801C -03801C0380380700380700380700380700380E00380E00380E00181E000C7C00079C0000 -1C00001C00003800003800C03000E07000C1C0007F0000121A7E9113>I<0FC00001C000 -01C0000380000380000380000380000700000700000700000700000E3E000EC3000F0380 -0E03801E03801C03801C03801C0380380700380700380700380E00700E40700E40701C40 -701C80E00C80600700121D7E9C15>I<0180038001000000000000000000000000000000 -1C002600470047008E008E000E001C001C001C0038003800710071007100720072003C00 -091C7C9B0D>I<00030007000300000000000000000000000000000078008C010C020C02 -1C041C001C001C0038003800380038007000700070007000E000E000E000E001C001C0C1 -80E300C60078001024819B0D>I<0FC00001C00001C00003800003800003800003800007 -00000700000700000700000E07800E08800E11C00E21C01C41801C80001D00001E00003F -C00038E000387000387000707100707100707100707200E03200601C00121D7E9C13>I< -1F800380038007000700070007000E000E000E000E001C001C001C001C00380038003800 -38007000700070007000E200E200E200E40064003800091D7D9C0B>I<1C1E0780266318 -C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C0701C01C0701C01C0701 -C01C070380380E0388380E0388380E0708380E0710701C0320300C01C01D127C9122>I< -383E004CC3004D03804E03809E03809C03801C03801C0380380700380700380700380E00 -700E40700E40701C40701C80E00C8060070012127C9117>I<00F800030C000E06001C03 -00180300300300700380700380E00700E00700E00700E00E00E00E00E01C006018006030 -0030E0000F800011127C9115>I<03878004C86004D03004E03009C03009C03801C03801 -C0380380700380700380700380600700E00700C00701800783000E86000E78000E00000E -00001C00001C00001C00001C0000380000FF0000151A809115>I<01E107130C0F180F38 -0E300E700E700EE01CE01CE01CE01CE038E038E038607831F01E700070007000E000E000 -E000E001C00FF8101A7C9113>I<1C3C2642468747078E068E000E000E001C001C001C00 -1C0038003800380038007000300010127C9112>I<01F006080C080C1C18181C001F001F -C00FF007F0007800386030E030C030806060C01F000E127D9111>I<0300070007000700 -0E000E000E000E00FFE01C001C001C0038003800380038007000700070007000E080E080 -E100E100660038000B1A7C990E>I<1C01802E03804E03804E03808E07008E07001C0700 -1C0700380E00380E00380E00380E00301C80301C80301C80383C80184D000F860011127C -9116>I<1C062E0E4E064E068E028E021C021C0238043804380438083008300830103820 -18400F800F127C9113>I<1E01832703874703874703838707018707010E07010E07011C -0E021C0E021C0E021C0E04180C04181C04181C081C1E080C263007C3C018127C911C>I< -0387800CC8400870E01070E020E0C020E00000E00000E00001C00001C00001C00001C000 -038100638100E38200C5820085840078780013127E9113>I<1C01802E03804E03804E03 -808E07008E07001C07001C0700380E00380E00380E00380E00301C00301C00301C00383C -001878000FB800003800003000007000E06000E0C0008180004300003C0000111A7C9114 ->I<01C107E10FF6081C10080010002000400080010002000400080410042C0C73F841F0 -80E010127E9111>I E /FC 54 124 df<003FE3F801F03F1C03C03E3E07C07C3E0F807C -3E0F807C1C0F807C000F807C000F807C000F807C000F807C00FFFFFFC0FFFFFFC00F807C -000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C -000F807C000F807C000F807C000F807C007FE1FF807FE1FF801F1D809C1C>11 -D<003FC00001F0300003C0380007C07C000F807C000F807C000F8038000F8000000F8000 -000F8000000F800000FFFFFC00FFFFFC000F807C000F807C000F807C000F807C000F807C -000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C -007FE1FF807FE1FF80191D809C1B>I<70F8FCFCFC7C0404080808102040060E7D850D> -44 DI<78FCFCFCFC7806067D850D>I<03F8000F1E00 -1C07003C07803803807803C07803C07803C0F803E0F803E0F803E0F803E0F803E0F803E0 -F803E0F803E0F803E0F803E0F803E0F803E07803C07803C03803803C07801C07000F1E00 -03F800131B7E9A18>48 D<00600001E0000FE000FFE000F3E00003E00003E00003E00003 -E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003 -E00003E00003E00003E00003E0007FFF807FFF80111B7D9A18>I<07F8001FFE00383F80 -780FC0FC07C0FC07E0FC03E0FC03E07803E00007E00007C00007C0000F80001F00001E00 -00380000700000E0000180600300600600600800E01FFFC03FFFC07FFFC0FFFFC0FFFFC0 -131B7E9A18>I<07F8001FFE003C1F003C0F807C07C07E07C07C07C03807C0000F80000F -80001E00003C0003F800001E00000F800007C00007C00007E03007E07807E0FC07E0FC07 -E0FC07C0780F80781F001FFE0007F800131B7E9A18>I<000180000380000780000F8000 -1F80003F80006F8000CF80008F80018F80030F80060F800C0F80180F80300F80600F80C0 -0F80FFFFF8FFFFF8000F80000F80000F80000F80000F80000F8000FFF800FFF8151B7F9A -18>I<3801803FFF003FFE003FFC003FF8003FC00030000030000030000030000031F800 -361E00380F803007800007C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0 -600F80381F001FFE0007F000131B7E9A18>I<007E0003FF000781800F03C01E07C03C07 -C07C0380780000780000F80000F8F800FB0E00FA0780FC0380FC03C0F803E0F803E0F803 -E0F803E07803E07803E07803C03C03C03C07801E0F0007FE0003F800131B7E9A18>I<60 -00007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00C0180000300000300000 -600000E00000E00001E00001C00003C00003C00003C00003C00007C00007C00007C00007 -C00007C00007C000038000131C7D9B18>I<03F8000FFE001E0F803807803803C07803C0 -7C03C07E03C07F83803FC7003FFE001FFC000FFE0007FF001DFF80387FC0781FE0700FE0 -F003E0F001E0F001E0F001E07801C07803803E07801FFE0003F800131B7E9A18>I<03F8 -000FFE001E0F003C07807807807803C0F803C0F803C0F803E0F803E0F803E0F803E07807 -E03807E03C0BE00E1BE003E3E00003E00003C00003C03807C07C07807C0700780F00383C -001FF8000FE000131B7E9A18>I<78FCFCFCFC7800000000000078FCFCFCFC7806127D91 -0D>I<00038000000380000007C0000007C0000007C000000FE000000FE000001FF00000 -1BF000003BF8000031F8000031F8000060FC000060FC0000E0FE0000C07E0000C07E0001 -803F0001FFFF0003FFFF8003001F8007001FC006000FC006000FC00C0007E00C0007E0FF -803FFEFF803FFE1F1C7E9B24>65 DI<001FE02000FFF8E003F8 -0FE007C003E00F8001E01F0000E03E0000E03E0000607E0000607C000060FC000000FC00 -0000FC000000FC000000FC000000FC000000FC000000FC0000007C0000607E0000603E00 -00603E0000C01F0000C00F80018007C0030003F80E0000FFFC00001FE0001B1C7D9B22> -IIII73 D77 -DI80 D82 -D<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE -003FFF003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000 -E0F001C0FC03C0EFFF0083FC00141C7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0 -601F8060E01F8070C01F8030C01F8030C01F8030C01F8030001F8000001F8000001F8000 -001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 -001F8000001F8000001F8000001F800007FFFE0007FFFE001C1C7E9B21>II<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C0 -3C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 -DI<03FC000E0E001C1F003C1F0078 -1F00780E00F80000F80000F80000F80000F80000F800007800007801803C01801C03000E -0E0003F80011127E9115>I<000FF0000FF00001F00001F00001F00001F00001F00001F0 -0001F00001F00001F001F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0 -F801F0F801F0F801F07801F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<03FC -000F07001C03803C01C07801C07801E0F801E0F801E0FFFFE0F80000F80000F800007800 -007800603C00601E00C00F038001FC0013127F9116>I<007F0001E38003C7C00787C00F -87C00F83800F80000F80000F80000F80000F8000FFF800FFF8000F80000F80000F80000F -80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80007FF0007F -F000121D809C0F>I<03F0F00E1F383C0F38380730780780780780780780780780380700 -3C0F001E1C0033F0003000003000003000003FFF003FFFC01FFFE01FFFF07801F8F00078 -F00078F000787000707800F01E03C007FF00151B7F9118>II<1E003F003F003F003F001E000000000000000000000000007F -007F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFC0FFC00A -1E7F9D0E>I107 +0000000001FC000000000038427EAD3D>I E /FD 49 123 df<00003FE00000E0100001 +8038000380780003807800070030000700000007000000070000000E0000000E0000000E +000000FFFFE0000E00E0001C01C0001C01C0001C01C0001C01C0001C0380003803800038 +0380003803800038070000380700007807000070071000700E2000700E2000700E200060 +0E2000E0064000E0038000E0000000C0000000C0000001C000003180000079800000F300 +0000620000003C0000001D29829F1A>12 D<1C3E7E7E3A020404080810204080070E769F +0E>39 D<000100020004000800100020006000C0018001800300070006000E000C001C00 +18003800380030007000700060006000E000E000C000C000C000C000C000C000C000C000 +C000C000C000C000C0004000600060002000100010000800102E79A113>I<0010000008 +000004000006000002000003000003000003000001000001800001800001800001800001 +800001800001800003800003800003800003000003000003000007000007000006000006 +00000E00000C00000C00001C0000180000380000300000700000600000E00000C0000180 +000100000300000600000C0000180000300000600000800000112E80A113>I<7FF0FFE0 +7FE00C037D8A10>45 D<70F8F8F0E005057B840E>I<00000040000000C0000001800000 +01800000030000000300000006000000060000000C000000180000001800000030000000 +3000000060000000C0000000C0000001800000018000000300000003000000060000000C +0000000C0000001800000018000000300000003000000060000000C0000000C000000180 +0000018000000300000003000000060000000C0000000C00000018000000180000003000 +00003000000060000000C0000000C0000000800000001A2D7FA117>I<00780001860006 +0300080100080180100180200180200300400300700700781E00F03C0060780000F00003 +C0000780000F00000E00000C00001840001840000880000F000000000000000000000000 +00000000001C00003E00003E00003C0000380000112178A017>63 +D<00000200000006000000060000000E0000001E0000001E0000003F0000002F0000004F +000000CF0000008F0000010F0000010F0000020F0000020F0000040F0000080F0000080F +0000100F800010078000200780003FFF8000400780008007800080078001000780010007 +800200078006000780040007801E0007C0FF807FF81D207E9F22>65 +D<0000FE0200078186001C004C0038003C0060003C00C0001C01C0001803800018070000 +180F0000181E0000101E0000103C0000003C000000780000007800000078000000780000 +00F0000000F0000000F0000000F0000000F0000080700000807000008070000100380001 +0038000200180004000C001800060020000381C00000FE00001F217A9F21>67 +D<00FFFF80001E00E0001E0070001E0038001E001C003C001C003C000E003C000E003C00 +0E0078000E0078000E0078000E0078000E00F0001E00F0001E00F0001E00F0001E01E000 +3C01E0003C01E0003C01E0007803C0007003C0007003C000E003C001C0078003C0078003 +8007800E0007801C000F007000FFFFC0001F1F7D9E22>I<01FFFFFE001E001C001E000C +001E0004001E0004003C0004003C0004003C0004003C0004007804080078040000780400 +00780C0000F0180000FFF80000F0180000F0180001E0100001E0100001E0100001E00010 +03C0002003C0002003C0004003C00040078000800780018007800100078007000F001F00 +FFFFFE001F1F7D9E1F>I<01FFFFFC001E0038001E0018001E0008001E0008003C000800 +3C0008003C0008003C00080078001000780800007808000078080000F0100000F0300000 +FFF00000F0300001E0200001E0200001E0200001E0200003C0000003C0000003C0000003 +C00000078000000780000007800000078000000F800000FFF800001E1F7D9E1E>I<01FF +F0001F00001E00001E00001E00003C00003C00003C00003C000078000078000078000078 +0000F00000F00000F00000F00001E00001E00001E00001E00003C00003C00003C00003C0 +000780000780000780000780000F8000FFF000141F7D9E12>73 D<01FFF800001F000000 +1E0000001E0000001E0000003C0000003C0000003C0000003C0000007800000078000000 +7800000078000000F0000000F0000000F0000000F0000001E0000001E0000001E0000001 +E0008003C0010003C0010003C0030003C00200078006000780060007800C0007801C000F +007800FFFFF800191F7D9E1D>76 D<01FE00007FC0001E0000FC00001E0000F800001700 +01780000170001780000270002F00000270004F00000270004F00000270008F000004700 +09E00000470011E00000470021E00000470021E00000870043C00000838043C000008380 +83C00000838083C000010381078000010382078000010382078000010384078000020384 +0F00000203880F00000203900F00000203900F00000401E01E00000401E01E00000401C0 +1E00000C01801E00001C01803E0000FF8103FFC0002A1F7D9E29>I<00FF003FE0001F00 +0F00001F0004000017800400001780040000278008000023C008000023C008000023C008 +000041E010000041E010000041F010000040F010000080F0200000807820000080782000 +008078200001003C400001003C400001003C400001001E400002001E800002001E800002 +000F800002000F800004000F0000040007000004000700000C000700001C00020000FF80 +020000231F7D9E22>I<0001FC0000070700001C01C0003000E000E0006001C000700380 +007007800038070000380E0000381E0000381C0000383C0000383C000038780000787800 +00787800007878000078F00000F0F00000F0F00000E0F00001E0F00001C0F00003C07000 +03807000070078000F0038001E0038003C001C0070000E00E0000783800001FC00001D21 +7A9F23>I<01FFFF80001E00E0001E0070001E0038001E003C003C003C003C003C003C00 +3C003C003C0078007800780078007800F0007800E000F003C000F00F0000FFFC0000F000 +0001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C00000078000 +000780000007800000078000000F800000FFF000001E1F7D9E1F>I<00FFFF00001E03C0 +001E00E0001E0070001E0078003C0078003C0078003C0078003C0078007800F0007800F0 +007801E0007801C000F0070000F01E0000FFF00000F01C0001E00E0001E00F0001E00700 +01E0078003C00F0003C00F0003C00F0003C00F0007801E0007801E0807801E0807801E10 +0F800E10FFF00E20000003C01D207D9E21>82 D<0007E040001C18C00030058000600380 +00C0038001C00180018001000380010003800100038001000380000003C0000003C00000 +03F8000001FF800001FFE000007FF000001FF0000001F800000078000000780000003800 +0000380020003800200038002000300060007000600060006000E0007000C000E8038000 +C606000081F800001A217D9F1A>I<0FFFFFFC1E03C0381803C0181003C0082003C00820 +078008600780084007800840078008800F0010000F0000000F0000000F0000001E000000 +1E0000001E0000001E0000003C0000003C0000003C0000003C0000007800000078000000 +7800000078000000F0000000F0000000F0000000F0000001F000007FFF80001E1F799E21 +>I86 +D<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E00F00E +00F00E00F00E20F01C40F01C40703C40705C40308C800F070013147C9317>97 +D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E380F38 +0F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207B9F15>I< +007E0001C1000300800E07801E07801C07003C0200780000780000780000F00000F00000 +F00000F00000F0000070010070020030040018380007C00011147C9315>I<0000780003 +F80000700000700000700000700000E00000E00000E00000E00001C00001C000F1C00389 +C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E +20F01C40F01C40703C40705C40308C800F070015207C9F17>I<007C01C207010E011C01 +3C013802780C7BF07C00F000F000F000F0007000700170023804183807C010147C9315> +I<00007800019C00033C00033C000718000700000700000E00000E00000E00000E00000E +0000FFE0001C00001C00001C00001C000038000038000038000038000038000070000070 +0000700000700000700000E00000E00000E00000E00000E00001C00001C00001C0000180 +003180007B0000F300006600003C00001629829F0E>I<001E3000713800E0F001C07003 +80700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03801E03800E +07800E0B8006170001E700000700000700000E00000E00300E00781C00F038006070003F +C000151D7F9315>I<01E0000FE00001C00001C00001C00001C000038000038000038000 +038000070000070000071E000763000E81800F01C00E01C00E01C01C03801C03801C0380 +1C0380380700380700380700380E10700E20700E20701C20700C40E00C8060070014207D +9F17>I<00C001E001E001C000000000000000000000000000000E001300230043804700 +470087000E000E000E001C001C001C003840388038807080310032001C000B1F7C9E0E> +I<0001800003C00003C0000380000000000000000000000000000000000000000000003C +00004600008700008700010700010700020E00000E00000E00000E00001C00001C00001C +00001C0000380000380000380000380000700000700000700000700000E00000E00030E0 +0079C000F180006300003C00001228829E0E>I<01E0000FE00001C00001C00001C00001 +C0000380000380000380000380000700000700000703C00704200E08E00E11E00E21E00E +40C01C80001D00001E00001FC00038E00038700038700038384070708070708070708070 +3100E03100601E0013207D9F15>I<03C01FC0038003800380038007000700070007000E +000E000E000E001C001C001C001C0038003800380038007000700070007100E200E200E2 +00E200640038000A207C9F0C>I<1C0F80F0002630C318004740640C004780680E004700 +700E004700700E008E00E01C000E00E01C000E00E01C000E00E01C001C01C038001C01C0 +38001C01C038001C01C0708038038071003803807100380380E100380380620070070064 +00300300380021147C9325>I<1C0F802630C04740604780604700704700708E00E00E00 +E00E00E00E00E01C01C01C01C01C01C01C03843803883803883807083803107003303001 +C016147C931A>I<007C0001C3000301800E01C01E01C01C01E03C01E07801E07801E078 +01E0F003C0F003C0F003C0F00780F00700700F00700E0030180018700007C00013147C93 +17>I<01C1E002621804741C04781C04701E04701E08E01E00E01E00E01E00E01E01C03C +01C03C01C03C01C0380380780380700380E003C1C0072380071E000700000700000E0000 +0E00000E00000E00001C00001C0000FF8000171D809317>I<00F0400388C00705800E03 +801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E00F01C00F01C +00703C00705C0030B8000F380000380000380000700000700000700000700000E00000E0 +000FFE00121D7C9315>I<1C1E002661002783804787804707804703008E00000E00000E +00000E00001C00001C00001C00001C000038000038000038000038000070000030000011 +147C9313>I<00FC030206010C030C070C060C000F800FF007F803FC003E000E700EF00C +F00CE008401020601F8010147D9313>I<018001C0038003800380038007000700FFF007 +000E000E000E000E001C001C001C001C003800380038003820704070407080708031001E +000C1C7C9B0F>I<0E00C01300E02301C04381C04701C04701C08703800E03800E03800E +03801C07001C07001C07001C07101C0E20180E20180E201C1E400C264007C38014147C93 +18>I<0E03801307802307C04383C04701C04700C08700800E00800E00800E00801C0100 +1C01001C01001C02001C02001C04001C04001C08000E300003C00012147C9315>I<0E00 +C1C01300E3C02301C3E04381C1E04701C0E04701C060870380400E0380400E0380400E03 +80401C0700801C0700801C0700801C0701001C0701001C0601001C0F02000C0F04000E13 +080003E1F0001B147C931E>I<0383800CC4401068E01071E02071E02070C040E00000E0 +0000E00000E00001C00001C00001C00001C040638080F38080F38100E5810084C6007878 +0013147D9315>I<0E00C01300E02301C04381C04701C04701C08703800E03800E03800E +03801C07001C07001C07001C07001C0E00180E00180E001C1E000C3C0007DC00001C0000 +1C00003800F03800F07000E06000C0C0004380003E0000131D7C9316>I<01C04003E080 +07F1800C1F00080200000400000800001000002000004000008000010000020000040100 +0802001002003E0C0063FC0041F80080E00012147D9313>I E /FE +54 124 df<000FF07F00007FF9FF8000F83FC7C001E07F8FC003E07F0FC007C07F0FC007 +C03F078007C01F000007C01F000007C01F000007C01F000007C01F0000FFFFFFF800FFFF +FFF80007C01F000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F +000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F00 +0007C01F000007C01F00003FF8FFF0003FF8FFF0002220809F1F>11 +D<000FE000007FF80000F81C0001E07C0003E07C0007C07C0007C07C0007C0380007C000 +0007C0000007C0000007C1FE00FFFFFE00FFFFFE0007C03E0007C03E0007C03E0007C03E +0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E +0007C03E0007C03E0007C03E003FF9FFC03FF9FFC01A20809F1D>I<387CFEFFFF7F3B03 +0306060E0C18302008107C860F>44 DI<387CFEFEFE +7C3807077C860F>I<01FC0007FF001F07C01E03C03E03E07C01F07C01F07C01F0FC01F8 +FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8 +7C01F07C01F07C01F03E03E01E03C01F8FC007FF0001FC00151D7E9C1A>48 +D<00700000F00007F000FFF000F9F00001F00001F00001F00001F00001F00001F00001F0 +0001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0 +0001F00001F00001F0007FFFC07FFFC0121D7D9C1A>I<03FC001FFF80381FC07C07E0FE +03F0FE03F0FE03F8FE01F87C01F83801F80003F80003F00003F00007E0000FC0000F0000 +1E00003C0000700000E00001C0180380180600180C00381FFFF03FFFF07FFFF0FFFFF0FF +FFF0151D7E9C1A>I<03FC000FFF801C0FC03C07E07E03F07E03F07E03F07E07F03C07E0 +0007E0000FC0003F8003FE0003FC00000F800007C00003E00003F00003F83803F87C03F8 +FE03F8FE03F8FE03F0FC03F07807E03C0FC01FFF8003FC00151D7E9C1A>I<0001C00003 +C00007C00007C0000FC0001FC0003BC00073C00063C000C3C00183C00383C00703C00E03 +C00C03C01803C03803C07003C0E003C0FFFFFEFFFFFE0007C00007C00007C00007C00007 +C00007C000FFFE00FFFE171D7F9C1A>I<1C00E01FFFE01FFFC01FFF801FFF001FFC001F +C00018000018000018000018000019FE001FFF801E07C01803E01001F00001F00001F800 +01F87801F8FC01F8FC01F8FC01F8FC01F07803F07003E03C0FC00FFF0003FC00151D7E9C +1A>I<003F0001FFC007C0E00F81E01F03F01E03F03E03F07C03F07C01E07C0000FC1000 +FCFF00FDFFC0FD03E0FE01F0FE01F0FC01F8FC01F8FC01F8FC01F87C01F87C01F87C01F8 +3C01F03E01F01E03E00F07C007FF8001FE00151D7E9C1A>I<6000007FFFF87FFFF87FFF +F07FFFE07FFFC0E00180C00300C00300C00600000C0000180000380000300000700000F0 +0000F00001E00001E00003E00003E00003E00003E00007E00007E00007E00007E00007E0 +0003C000018000151E7D9D1A>I<01FE000FFF801E07C03801E03800F07800F07800F07C +00F07F00F07FC1E03FE3C01FFF800FFE0007FF8007FFC01FFFE03C3FF0780FF07803F8F0 +01F8F000F8F00078F00078F000707800707C00E03E03C00FFF8003FC00151D7E9C1A>I< +01FC000FFF001F07803E03C07C03E07C01E0FC01F0FC01F0FC01F0FC01F8FC01F8FC01F8 +FC01F87C03F87C03F83E05F81FFDF807F9F80041F80001F03C01F07E01F07E03E07E03E0 +7E03C03C0780381F001FFC0007F000151D7E9C1A>I<387CFEFEFE7C3800000000000038 +7CFEFEFE7C3807147C930F>I<0000E000000000E000000001F000000001F000000001F0 +00000003F800000003F800000006FC00000006FC0000000EFE0000000C7E0000000C7E00 +0000183F000000183F000000303F800000301F800000701FC00000600FC00000600FC000 +00C007E00000FFFFE00001FFFFF000018003F000038003F800030001F800030001F80006 +0000FC00060000FC000E0000FE00FFE00FFFE0FFE00FFFE0231F7E9E28>65 +DI<0007FC02003FFF0E00FE03DE +03F000FE07E0003E0FC0001E1F80001E3F00000E3F00000E7F0000067E0000067E000006 +FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007E000006 +7F0000063F0000063F00000C1F80000C0FC0001807E0003803F0007000FE01C0003FFF80 +0007FC001F1F7D9E26>IIII73 +D77 DI80 D82 D<03FC080FFF381E03F83800F8700078700038F00038F00018F00018F80000FC00 +007FC0007FFE003FFF801FFFC00FFFE007FFF000FFF80007F80000FC00007C00003CC000 +3CC0003CC0003CE00038E00078F80070FE01E0EFFFC081FF00161F7D9E1D>I<7FFFFFFC +7FFFFFFC7C07E07C7007E01C6007E00C6007E00CE007E00EC007E006C007E006C007E006 +C007E0060007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 +0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 +03FFFFC003FFFFC01F1E7E9D24>II<07FC00 +1FFF803F07C03F03E03F01F03F01F00C01F00001F0003FF007FDF01F81F03E01F07C01F0 +F801F0F801F0F801F0FC02F07E0CF03FF87E0FE03E17147F9319>97 +DI<01FE0007 +FF801F0FC03E0FC03E0FC07C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C +00007E00003E00603F00C01F81C007FF0001FC0013147E9317>I<0007F80007F80000F8 +0000F80000F80000F80000F80000F80000F80000F80000F80000F801F8F807FEF81F83F8 +3E01F87E00F87C00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87C00F8 +7E00F83E01F81F07F80FFEFF03F8FF18207E9F1D>I<01FE0007FF800F83C01E01E03E00 +F07C00F07C00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00003E00181E00 +180F807007FFE000FF8015147F9318>I<003F8000FFC003E3E007C7E00787E00F87E00F +83C00F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80000F +80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80007F +F8007FF80013207F9F10>I<03FC3C0FFFFE1E079E3C03DE7C03E07C03E07C03E07C03E0 +7C03E03C03C01E07801FFF0013FC003000003000003800003FFF801FFFF00FFFF81FFFFC +78007C70003EF0001EF0001EF0001E78003C78003C3F01F80FFFE001FF00171E7F931A> +II<1C003E00 +7F007F007F003E001C00000000000000000000000000FF00FF001F001F001F001F001F00 +1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B217EA00E>I107 DIII<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F8 -00F8F800F8F800F87800F07800F03C01E01E03C00F078001FC0015127F9118>II114 -D<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CF -C00E127E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F00 -1F001F001F001F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>IIIIII123 -D E /FD 81 123 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0 -000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0 -000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0 -000E01C0000E01C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703 -C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01 -C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 -C07F87F8151D809C17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E -01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E -01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07 -E00001C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00E000 -000E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C00 -0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E -00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D -809C23>I<0E0E1E3870E0800707779C15>19 D<60F0F0F0F0F0F0F06060606060606060 -6060606060000000000060F0F060041E7C9D0C>33 D<6060F0F0F8F86868080808080808 -101010102020404080800D0C7F9C15>I<0F0000C0188000C030600380703807006027FB -00E0100600E0100C00E0100C00E0101800E0101800E0103000E0106000602060007020C0 -0030418000188180000F0303C00006062000060C10000C1C080018180800183804003038 -04006038040060380400C0380400C03804018038040300180803001C0806000C100C0006 -20040003C01E217E9E23>37 D<60F0F8680808081010204080050C7C9C0C>39 -D<00800100020006000C000C00180018003000300030006000600060006000E000E000E0 -00E000E000E000E000E000E000E000E000E0006000600060006000300030003000180018 -000C000C000600020001000080092A7C9E10>I<8000400020003000180018000C000C00 -060006000600030003000300030003800380038003800380038003800380038003800380 -038003000300030003000600060006000C000C00180018003000200040008000092A7E9E -10>I<60F0F0701010101020204080040C7C830C>44 DI<60F0F0 -6004047C830C>I<00010003000600060006000C000C000C001800180018003000300030 -0060006000C000C000C0018001800180030003000300060006000C000C000C0018001800 -1800300030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C70 -0E60066006E007E007E007E007E007E007E007E007E007E007E007E007E0076006600670 -0E300C300C18180C3007E0101D7E9B15>I<010007003F00C70007000700070007000700 -070007000700070007000700070007000700070007000700070007000700070007000700 -FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E00 -1C001C00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I< -07E01830201C201C781E780E781E381E001C001C00180030006007C00030001C001C000E -000F000F700FF80FF80FF80FF00E401C201C183007C0101D7E9B15>I<000C00000C0000 -1C00003C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C0010 -1C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C0000 -1C0001FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02C30 -3018301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D -7E9B15>I<00F0030C04040C0E181E301E300C700070006000E3E0E430E818F00CF00EE0 -06E007E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000 -007FFF807FFF007FFF004002008004008004008008000010000010000020000060000040 -0000C00000C00001C0000180000180000380000380000380000380000780000780000780 -00078000078000078000030000111D7E9B15>I<03E00C301008200C2006600660067006 -70067C0C3E183FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004 -300C1C1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E0 -07E0076007700F300F18170C2707C700060006000E300C780C78187018203010C00F8010 -1D7E9B15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000 -000000000000000060F0F0701010101020204080041A7C910C>I<0FE03038401CE00EF0 -0EF00EF00E000C001C0030006000C0008001800100010001000100010001000000000000 -000000000003000780078003000F1D7E9C14>63 D<000600000006000000060000000F00 -00000F0000000F000000178000001780000037C0000023C0000023C0000043E0000041E0 -000041E0000080F0000080F0000080F000010078000100780001FFF80002003C0002003C -0002003C0004001E0004001E000C001F000C000F001E001F00FF00FFF01C1D7F9C1F>65 -DI<001F808000E0618001801980070007800E0003801C000380 -1C00018038000180780000807800008070000080F0000000F0000000F0000000F0000000 -F0000000F0000000F0000000F0000000700000807800008078000080380000801C000100 -1C0001000E000200070004000180080000E03000001FC000191E7E9C1E>IIII<001F808000E0618001801980070007800E0003801C0003801C000180 -38000180780000807800008070000080F0000000F0000000F0000000F0000000F0000000 -F0000000F000FFF0F0000F80700007807800078078000780380007801C0007801C000780 -0E00078007000B800180118000E06080001F80001C1E7E9C21>III<07FF80007C0000 -3C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0000 -3C00003C00003C00003C00003C00003C00003C00703C00F83C00F83C00F8380070780040 -700030E0000F8000111D7F9B15>IIIII<003F800000E0E0000380380007 -001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F0 -0001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C078 -0003C0380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B -1E7E9C20>II<003F800000E0E000038038 -0007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001 -E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003 -C0780003C0380003803C0E07801C1107000E208E0007205C0003A0780000F0E020003FE0 -200000602000003060000038E000003FC000003FC000001F8000000F001B257E9C20>I< -FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E00 -0F001C000F003C000F0078000F01E0000FFF00000F01E0000F0070000F0078000F003C00 -0F003C000F003C000F003C000F003C000F003C000F003C100F003C100F001C100F001C10 -FFF00E20000003C01C1D7E9B1F>I<07E0801C1980300580300380600180E00180E00080 -E00080E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C0 -0003C00001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E -9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020 -800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 -000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 -001F800003FFFC001B1C7F9B1E>IIIII91 D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>I< -FEFE06060606060606060606060606060606060606060606060606060606060606060606 -060606FEFE0729809E0C>I<1FC000307000783800781C00301C00001C00001C0001FC00 -0F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115> -97 DI<03F80C0C181E301E700C60 -00E000E000E000E000E000E00060007002300218040C1803E00F127F9112>I<001F8000 -038000038000038000038000038000038000038000038000038000038003F3800E0B8018 -0780300380700380600380E00380E00380E00380E00380E00380E0038060038070038030 -03801807800E1B8003E3F0141D7F9C17>I<07E00C301818300C700E6006E006FFFEE000 -E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E -000E000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E -000E000E000E000E007FE00F1D809C0D>I<00038007C4C01C78C0383880301800701C00 -701C00701C00701C003018003838001C700027C0002000002000003000003FF8001FFF00 -1FFF802003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215> -II<18003C003C0018000000000000 -000000000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C -001C001C001C00FF80091D7F9C0C>I<00C001E001E000C0000000000000000000000000 -000007E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 -00E000E000E000E060E0F0C0F1C061803E000B25839C0D>IIII< +FE0FE03F80FE1FF07FC01E70F9C3E01E407D01F01E807E01F01F807E01F01F007C01F01F +007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F00 +7C01F01F007C01F01F007C01F01F007C01F0FFE3FF8FFEFFE3FF8FFE27147D932C>II<01FF0007FFC0 +1F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007E7C007C +7C007C3E00F83E00F81F83F007FFC001FF0017147F931A>II114 D<0FE63FFE701E600EE006E006F800FFC07FF83FFC1FFE03FE001FC007 +C007E007F006F81EFFFCC7F010147E9315>I<0300030003000300070007000F000F003F +00FFFCFFFC1F001F001F001F001F001F001F001F001F001F001F061F061F061F061F060F +8C07F803F00F1D7F9C14>IIIII< +FFE07F80FFE07F801F001C000F8018000F80180007C0300007C0300003E0600003E06000 +03F0E00001F0C00001F9C00000F9800000FF8000007F0000007F0000003E0000003E0000 +001C0000001C0000001800000018000078300000FC300000FC600000C0E00000E1C00000 +7F8000001E000000191D7F931C>I123 +D E /FF 82 123 df<001F83E000F06E3001C078780380F8780300F03007007000070070 +000700700007007000070070000700700007007000FFFFFF800700700007007000070070 +000700700007007000070070000700700007007000070070000700700007007000070070 +000700700007007000070070000700700007007000070070003FE3FF001D20809F1B>11 +D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700 +00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 +E00700E00700E00700E00700E00700E00700E00700E03FC3FC1620809F19>I<003FE000 +E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007 +00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 +00E00700E00700E00700E00700E00700E03FE7FC1620809F19>I<001F81F80000F04F04 +0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000 +070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007 +007007000700700700070070070007007007000700700700070070070007007007000700 +700700070070070007007007000700700700070070070007007007000700700700070070 +07003FE3FE3FE02320809F26>I<07070F1C383060C00808779F17>19 +D<70F8F8F8F8F8F8F8707070707070707070702020202020000000000070F8F8F8700521 +7CA00D>33 D<7038F87CFC7EFC7E743A0402040204020804080410081008201040200F0E +7F9F17>I<078000180018400018003020003000301800E00060170360006008FCC000E0 +08018000E008018000E008030000E008060000E008060000E0080C000060081800006010 +1800003010300000302060000018406000000780C0000000018078000001818400000303 +020000030301000006070100000C060100000C0E008000180E008000300E008000300E00 +8000600E008000C00E008000C00E00800180060100030007010003000301000600030200 +0C00018400040000780021257EA126>37 D<70F8FCFC74040404080810102040060E7C9F +0D>39 D<0040008001000300060004000C00180018003800300030007000600060006000 +6000E000E000E000E000E000E000E000E000E000E000E000E00060006000600060007000 +300030003800180018000C000400060003000100008000400A2E7BA112>I<8000400020 +003000180008000C00060006000700030003000380018001800180018001C001C001C001 +C001C001C001C001C001C001C001C001C001800180018001800380030003000700060006 +000C000800180030002000400080000A2E7EA112>I<01800180018001800180E187718E +399C0FF003C003C00FF0399C718EE1870180018001800180018010147DA117>I<70F0F8 +F878080808101010202040050E7C840D>44 DI<70F8F8F87005 +057C840D>I<0000400000C0000180000180000180000300000300000300000600000600 +000C00000C00000C0000180000180000180000300000300000600000600000600000C000 +00C00000C0000180000180000180000300000300000600000600000600000C00000C0000 +0C0000180000180000300000300000300000600000600000600000C00000C00000122D7E +A117>I<03F0000E1C001C0E00180600380700700380700380700380700380F003C0F003 +C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07003 +807003807003807807803807001806001C0E000E1C0003F000121F7E9D17>I<00800380 +0F80F3800380038003800380038003800380038003800380038003800380038003800380 +0380038003800380038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E00 +200700400780800780F007C0F803C0F803C0F803C02007C00007C0000780000780000F00 +000E00001C0000380000700000600000C0000180000300000600400C0040180040100080 +3FFF807FFF80FFFF80121E7E9D17>I<03F0000C1C00100E00200F00780F807807807807 +80380F80000F80000F00000F00001E00001C0000700007F000003C00000E00000F000007 +800007800007C02007C0F807C0F807C0F807C0F00780400780400F00200E00183C0007F0 +00121F7E9D17>I<000600000600000E00000E00001E00002E00002E00004E00008E0000 +8E00010E00020E00020E00040E00080E00080E00100E00200E00200E00400E00C00E00FF +FFF0000E00000E00000E00000E00000E00000E00000E0000FFE0141E7F9D17>I<180300 +1FFE001FFC001FF8001FE00010000010000010000010000010000010000011F000161C00 +180E001007001007800003800003800003C00003C00003C07003C0F003C0F003C0E00380 +400380400700200600100C0008380007E000121F7E9D17>I<007C000182000701000E03 +800C0780180780380300380000780000700000700000F1F000F21C00F40600F80700F803 +80F80380F003C0F003C0F003C0F003C0F003C07003C07003C07003803803803807001807 +000C0E00061C0001F000121F7E9D17>I<4000007FFFE07FFFC07FFFC040008080010080 +010080020000040000040000080000100000100000200000200000600000600000E00000 +C00001C00001C00001C00001C00003C00003C00003C00003C00003C00003C00003C00001 +8000131F7E9D17>I<03F0000C0C00100600300300200180600180600180600180700180 +7803003E03003F06001FC8000FF00003F80007FC000C7E00103F00300F806007806001C0 +C001C0C000C0C000C0C000C0C000806001802001001002000C0C0003F000121F7E9D17> +I<03F0000E18001C0C00380600380700700700700380F00380F00380F003C0F003C0F003 +C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C00003800003800003800007 +00300700780600780E00700C002018001070000FC000121F7E9D17>I<70F8F8F8700000 +000000000000000070F8F8F87005147C930D>I<70F8F8F8700000000000000000000070 +F0F8F878080808101010202040051D7C930D>I<0FE0103C601E400EE00FF00FF00F600F +001E001C00380070006000C0008000800100010001000100010001000000000000000000 +0000038007C007C007C0038010207E9F15>63 D<00010000000380000003800000038000 +0007C0000007C0000007C0000009E0000009E0000009E0000010F0000010F0000010F000 +00207800002078000020780000403C0000403C0000C03E0000801E0000801E0001FFFF00 +01000F0001000F00020007800200078002000780040003C0040003C00C0003C01E0003E0 +FF801FFE1F207F9F22>65 DI<00 +0FE01000381C3000E0027003C00170078000F00F0000701E0000701E0000303C0000303C +0000107C00001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8 +000000F8000000F8000000780000007C0000103C0000103C0000101E0000201E0000200F +0000200780004003C0008000E0030000380C00000FF0001C217E9F21>IIII<000FE01000381C3000 +E0027003C00170078000F00F0000701E0000701E0000303C0000303C0000107C00001078 +000010F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8003FFEF8 +0001F0780000F07C0000F03C0000F03C0000F01E0000F01E0000F00F0000F0078000F003 +C0017000E0023000380C10000FF0001F217E9F24>III<07FFC0003E00001E00001E00001E00001E00001E00001E00001E00001E00 +001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00 +001E00201E00F81E00F81E00F81E00F01C00403C006038001070000FC00012207F9E17> +IIIII<001FE0000070380001C00E00038007 +00070003800F0003C01E0001E03C0000F03C0000F07C0000F87C0000F878000078F80000 +7CF800007CF800007CF800007CF800007CF800007CF800007CF800007CF800007C780000 +787C0000F87C0000F83C0000F03E0001F01E0001E00F0003C0070003800380070001E01E +0000703800001FE0001E217E9F23>II<001FE0000070380001C00E0003800700070003800F0003C01E0001E03E0001F03C +0000F07C0000F87C0000F878000078F800007CF800007CF800007CF800007CF800007CF8 +00007CF800007CF800007CF800007C780000787C0000F87C0000F83C0000F03E0781F01E +0841E00F1023C0071023800390170001D01E0000783804001FF80400001C0400000C0C00 +000E1C00000FF800000FF8000007F8000007F0000001E01E297E9F23>II<03F0400C0CC01803C03001C06000C0 +6000C0E000C0E00040E00040E00040F00000F800007C00007F80003FF8001FFF0007FF80 +00FFC0001FE00003E00001E00000F0000070800070800070800070800070C00060C000E0 +E000C0F80180C6030081FC0014217E9F19>I<7FFFFFE0780F01E0600F0060400F002040 +0F0020C00F0030800F0010800F0010800F0010800F0010000F0000000F0000000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 +0F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001C +1F7E9E21>IIII<7FF81FF80FE007C007C0030003C0020003E0060001F0040000F0080000 +F8180000781000003C2000003E6000001E4000000F8000000F8000000780000003C00000 +07E0000005E0000008F0000018F8000010780000207C0000603E0000401E0000801F0001 +000F8001000780020007C0060003C01F0007E0FFC01FFE1F1F7F9E22>I91 D<080410082010201040204020804080408040B85CFC7EFC7E7C +3E381C0F0E7A9F17>II<1FE00030300078180078 +1C00300E00000E00000E00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F0 +0E10F01E10781E103867200F83C014147E9317>97 D<1C0000FC00001C00001C00001C00 +001C00001C00001C00001C00001C00001C00001C00001C7C001D87001E01801E00C01C00 +E01C00701C00701C00781C00781C00781C00781C00781C00781C00701C00F01C00E01E00 +C01A0180198700107C0015207E9F19>I<01FC000706001C0F00380F0038060078000070 +0000F00000F00000F00000F00000F00000F000007000007800003800803800801C010007 +060001F80011147F9314>I<0001C0000FC00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C001F1C0070DC00C03C01801C03801C07801C07001C0F001C0 +F001C0F001C0F001C0F001C0F001C07001C07001C03801C01803C00C03C0070DC001F1F8 +15207F9F19>I<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF +80F00000F00000F000007000007000003800803800801C010007060001F80011147F9314 +>I<007C01C6030F070F0E060E000E000E000E000E000E000E00FFF00E000E000E000E00 +0E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE01020809F0E> +I<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F00380E001C1C +001E380033E0002000002000003000003000003FFE001FFF801FFFC03001E0600070C000 +30C00030C00030C000306000603000C01C038003FC00141F7F9417>I<1C0000FC00001C +00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001C86001D +03001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C0380FF8FF014207E9F19>I<38007C007C007C0038000000 +000000000000000000001C00FC001C001C001C001C001C001C001C001C001C001C001C00 +1C001C001C001C001C001C00FF80091F7F9E0C>I<00E001F001F001F000E00000000000 +00000000000000007007F000F00070007000700070007000700070007000700070007000 +700070007000700070007000700070007000706070F060F0C061803F000C28829E0E>I< +1C0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000 +1C1FE01C07801C06001C04001C08001C10001C20001C60001CE0001DF0001E70001C3800 +1C3C001C1C001C0E001C0F001C07001C07801C07C0FF9FF014207E9F18>I<1C00FC001C +001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C00FF8009207F9F0C>I<1C3E03E000FC +C30C30001D039038001E01E01C001E01E01C001C01C01C001C01C01C001C01C01C001C01 C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0 -1C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>II<03F0000E1C00180600300300700380600180 -E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F000 -12127F9115>II<03E0800E198018058038078070038070 -0380E00380E00380E00380E00380E00380E003807003807003803807801807800E1B8003 -E380000380000380000380000380000380000380000380001FF0141A7F9116>II<1F9020704030C010C010E010F8007F803FE00FF000F880388018C018C018E010 -D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C -001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIIIII<7FFC70386038407040F040E041C003 -C0038007000F040E041C043C0C380870087038FFF80E127F9112>I -E /FE 47 121 df<07070F1E1C38604080080976A218>19 D45 -D<70F8F8F87005057C840E>I<01F000071C000C06001803003803803803807001C07001 -C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001 -E0F001E0F001E0F001E0F001E07001C07001C07001C07803C03803803803801C07000C06 -00071C0001F00013227EA018>48 D<008003800F80F38003800380038003800380038003 -800380038003800380038003800380038003800380038003800380038003800380038003 -800380038007C0FFFE0F217CA018>I<03F8000C1E00100F002007804007C07807C07803 -C07807C03807C0000780000780000700000F00000C0000380003F000001C00000F000007 -800007800003C00003C00003E02003E07003E0F803E0F803E0F003C04003C04007802007 -80100F000C1C0003F00013227EA018>51 D<000300000300000700000700000F00001700 -001700002700006700004700008700018700010700020700060700040700080700080700 -100700200700200700400700C00700FFFFF8000700000700000700000700000700000700 -000700000F80007FF015217FA018>I<1000801E07001FFF001FFE001FF80017E0001000 -0010000010000010000010000010000011F800120C001C07001803801003800001C00001 -C00001E00001E00001E00001E07001E0F001E0F001E0E001C08001C04003C04003802007 -001006000C1C0003F00013227EA018>I<007E0001C1000300800601C00C03C01C03C018 -0180380000380000780000700000700000F0F800F30C00F40600F40300F80380F801C0F0 -01C0F001E0F001E0F001E0F001E0F001E07001E07001E07001E03801C03801C01803801C -03000C0600070C0001F00013227EA018>I<4000006000007FFFE07FFFC07FFFC0400080 -C00100800100800200800200000400000800000800001000002000002000006000004000 -00C00000C00001C00001C000018000038000038000038000038000078000078000078000 -07800007800007800007800003000013237DA118>I<01F000060C000C06001807003803 -80700380700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E07003 -E03803E01805E00C05E00619E003E1E00001C00001C00001C00003800003803003807807 -00780600700C002018001030000FC00013227EA018>57 D<70F8F8F87000000000000000 -0000000070F8F8F87005157C940E>I<000FE00000701C00008002000300018004000040 -08000020080000201007C01020183008203008084060040440C0078441C0038481C00382 -8380038283800382838003828380038283800382838003828380038281C0038241C00382 -40C007824060078420300B84201831881007C0F00800000008000000040000000300000E -00800078007007C0000FFC001F237DA226>64 D<0001800000018000000180000003C000 -0003C0000003C0000005E0000005E0000009F0000008F0000008F0000010780000107800 -0010780000203C0000203C0000203C0000401E0000401E0000C01F0000800F0000800F00 -01FFFF800100078001000780020003C0020003C0020003C0040001E0040001E0040001E0 -080000F01C0000F03E0001F8FF800FFF20237EA225>II<0007E0100038183000E0063001C0 -0170038000F0070000F00E0000701E0000701C0000303C0000303C0000307C0000107800 -001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800 -000078000000780000107C0000103C0000103C0000101C0000201E0000200E0000400700 -00400380008001C0010000E0020000381C000007E0001C247DA223>I69 +1C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021147E9326>I<1C7C00FC86001D +03001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C +03801C03801C03801C03801C0380FF8FF014147E9319>I<01F800070E001C03803801C0 +3801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C0 +3801C01C0380070E0001F80014147F9317>I<1C7C00FD87001E01801E01C01C00E01C00 +F01C00701C00781C00781C00781C00781C00781C00781C00701C00F01C00E01E01C01E03 +801D87001C7C001C00001C00001C00001C00001C00001C00001C00001C0000FF8000151D +7E9319>I<01F040070CC00E02C01C03C03801C07801C07001C0F001C0F001C0F001C0F0 +01C0F001C0F001C07001C07801C03801C01C03C00C05C00709C001F1C00001C00001C000 +01C00001C00001C00001C00001C00001C0000FF8151D7F9318>I<1CF0FD181E3C1E3C1E +181C001C001C001C001C001C001C001C001C001C001C001C001C001C00FFC00E147E9312 +>I<0FC830386018C008C008C008E0007C003FE01FF007F8003C800E8006C006C006C004 +E00CD81887E00F147F9312>I<020002000200060006000E000E003E00FFF80E000E000E +000E000E000E000E000E000E000E000E000E040E040E040E040E040708030801F00E1C7F +9B12>I<1C0380FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C03 +801C03801C03801C03801C03801C03801C07800C0780061B8003E3F014147E9319>IIIII<7FFF700E600E401C4038 +4078407000E001E001C00380078007010E011E011C0338027006700EFFFE10147F9314> +I E /FG 47 121 df<07070F1E1C38604080080976A218>19 D +45 D<70F8F8F87005057C840E>I<01F000071C000C06001803003803803803807001C070 +01C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F0 +01E0F001E0F001E0F001E0F001E07001C07001C07001C07803C03803803803801C07000C +0600071C0001F00013227EA018>48 D<008003800F80F380038003800380038003800380 +038003800380038003800380038003800380038003800380038003800380038003800380 +03800380038007C0FFFE0F217CA018>I<03F8000C1E00100F002007804007C07807C078 +03C07807C03807C0000780000780000700000F00000C0000380003F000001C00000F0000 +07800007800003C00003C00003E02003E07003E0F803E0F803E0F003C04003C040078020 +0780100F000C1C0003F00013227EA018>51 D<000300000300000700000700000F000017 +000017000027000067000047000087000187000107000207000607000407000807000807 +00100700200700200700400700C00700FFFFF80007000007000007000007000007000007 +00000700000F80007FF015217FA018>I<1000801E07001FFF001FFE001FF80017E00010 +000010000010000010000010000010000011F800120C001C07001803801003800001C000 +01C00001E00001E00001E00001E07001E0F001E0F001E0E001C08001C04003C040038020 +07001006000C1C0003F00013227EA018>I<007E0001C1000300800601C00C03C01C03C0 +180180380000380000780000700000700000F0F800F30C00F40600F40300F80380F801C0 +F001C0F001E0F001E0F001E0F001E0F001E07001E07001E07001E03801C03801C0180380 +1C03000C0600070C0001F00013227EA018>I<4000006000007FFFE07FFFC07FFFC04000 +80C001008001008002008002000004000008000008000010000020000020000060000040 +0000C00000C00001C00001C0000180000380000380000380000380000780000780000780 +0007800007800007800007800003000013237DA118>I<01F000060C000C060018070038 +0380700380700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E070 +03E03803E01805E00C05E00619E003E1E00001C00001C00001C000038000038030038078 +0700780600700C002018001030000FC00013227EA018>57 D<70F8F8F870000000000000 +000000000070F8F8F87005157C940E>I<000FE00000701C000080020003000180040000 +4008000020080000201007C01020183008203008084060040440C0078441C0038481C003 +828380038283800382838003828380038283800382838003828380038281C0038241C003 +8240C007824060078420300B84201831881007C0F0080000000800000004000000030000 +0E00800078007007C0000FFC001F237DA226>64 D<0001800000018000000180000003C0 +000003C0000003C0000005E0000005E0000009F0000008F0000008F00000107800001078 +000010780000203C0000203C0000203C0000401E0000401E0000C01F0000800F0000800F +0001FFFF800100078001000780020003C0020003C0020003C0040001E0040001E0040001 +E0080000F01C0000F03E0001F8FF800FFF20237EA225>II<0007E0100038183000E0063001 +C00170038000F0070000F00E0000701E0000701C0000303C0000303C0000307C00001078 +00001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8 +00000078000000780000107C0000103C0000103C0000101C0000201E0000200E00004007 +0000400380008001C0010000E0020000381C000007E0001C247DA223>I69 DI120 D -E /FF 10 116 df<78FCFCFCFC7806067B8510>46 D<00FE0003FFC00703E00C01F01000 +E /FH 10 116 df<78FCFCFCFC7806067B8510>46 D<00FE0003FFC00703E00C01F01000 F83C00F83E00FC3E007C3E007C1E00FC0C00FC0000F80000F80000F00001E00001C00003 80000E0001FE000003C00000E00000F800007800007C00003E00003E00003F00003F3000 3F78003FFC003FFC003FFC003EF8003E40007E40007C3000F81800F00F03E003FFC000FE @@ -2688,7 +2969,7 @@ E00F83E00F81C00F80000F00000F00000F00000F00000F00000F00000F00000F00000F00 000F00000F00000F00000F00000F00000F00000F00000F8000FFFC00FFFC00131A7E9917 >114 D<07F0801C0D80300380600180E00180E00080E00080F00080F800007E00007FE0 003FFC001FFE0007FF00003F800007808003C08003C08001C0C001C0C001C0E00180E003 -80F00300CC0E0083F800121A7E9917>I E /FG 59 122 df<000FF000007FFC0001F80E +80F00300CC0E0083F800121A7E9917>I E /FI 59 122 df<000FF000007FFC0001F80E 0003E01F0007C03F000F803F000F803F000F801E000F800C000F8000000F8000000F8000 000F800000FFFFFF00FFFFFF000F801F000F801F000F801F000F801F000F801F000F801F 000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F @@ -2899,7 +3180,7 @@ E18F060001F18F8C0001F3078C0001F3078C0000FF07D80000FE03D80000FE03F800007C 0007C00C0007E00C0003E0180003E0180001F0300001F0300000F8600000F86000007CC0 00007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E0000000C00 00000C00000018000078180000FC380000FC300000FC60000069C000007F8000001F0000 -001B207F951E>I E /FH 25 121 df<00000001E00000000000000003F0000000000000 +001B207F951E>I E /FJ 25 121 df<00000001E00000000000000003F0000000000000 0003F00000000000000007F80000000000000007F80000000000000007F8000000000000 000FFC000000000000000FFC000000000000001FFE000000000000001FFE000000000000 001FFE000000000000003FFF000000000000003FFF000000000000007FFF800000000000 @@ -3143,3446 +3424,3503 @@ TeXDict begin %%EndSetup %%Page: 1 1 -1 0 bop 481 597 a FH(ST)p FG(K)32 b FH(Reference)g(man)m(ual)800 -682 y FF(V)-5 b(ersion)18 b(3.99)808 1095 y FE(Eric)o(k)d(Gallesio)560 -1153 y(Univ)o(ersit)o(\023)-23 b(e)14 b(de)i(Nice)e(-)j(Sophia)g(An)o -(tip)q(olis)494 1211 y(Lab)q(oratoire)h(I3S)f(-)f(CNRS)g(URA)f(1376)j -(-)f(ESSI.)778 1269 y(Route)f(des)h(Colles)866 1327 y(B.P)l(.)e(145)507 -1385 y(06903)k(Sophia-An)o(tip)q(olis)d(Cedex)f(-)i(FRANCE)760 -1471 y(email:)j(eg@unice.fr)1647 2507 y FD(April)13 b(1998)p +1 0 bop 481 609 a FJ(ST)p FI(K)32 b FJ(Reference)g(man)m(ual)800 +701 y FH(V)-5 b(ersion)18 b(3.99)808 1113 y FG(Eric)o(k)d(Gallesio)560 +1171 y(Univ)o(ersit)o(\023)-23 b(e)14 b(de)i(Nice)e(-)j(Sophia)g(An)o +(tip)q(olis)494 1229 y(Lab)q(oratoire)h(I3S)f(-)f(CNRS)g(URA)f(1376)j +(-)f(ESSI.)778 1287 y(Route)f(des)h(Colles)866 1345 y(B.P)l(.)e(145)507 +1404 y(06903)k(Sophia-An)o(tip)q(olis)d(Cedex)f(-)i(FRANCE)760 +1495 y(email:)j(eg@unice.fr)1667 2547 y FF(April)c(1998)p eop %%Page: 2 2 -2 1 bop 75 465 a FC(Do)q(cumen)o(t)14 b(Reference)179 -548 y FD(Eric)o(k)i(Gallesio,)f FB(STk)i(R)n(efer)n(enc)n(e)g(Manual)p -FD(,)g(R)m(T)e(95-31d,)g(I3S-CNRS)h(/)g(Univ)o(ersit)o(\023)-20 -b(e)17 b(de)f(Nice)h(-)179 598 y(Sophia)c(An)o(tip)q(olis,)f(juillet)h -(1995.)p eop +2 1 bop 37 483 a FE(Do)q(cumen)o(t)18 b(Reference)151 +577 y FF(Eric)o(k)13 b(Gallesio,)g FD(STk)g(R)n(efer)n(enc)n(e)f +(Manual)p FF(,)g(R)l(T)g(95-31d,)g(I3S-CNRS)h(/)f(Univ)o(ersit)o(\023) +-21 b(e)13 b(de)f(Nice)151 633 y(-)j(Sophia)h(An)o(tip)q(olis,)h +(juillet)g(1995.)p eop %%Page: 3 3 -3 2 bop 75 511 a FA(Con)m(ten)m(ts)75 727 y FG(I)56 b(Reference)17 -b(Man)n(ual)1215 b(5)137 777 y FD(1)75 b(Ov)o(erview)14 -b(of)f Fz(STk)23 b FD(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)73 b(7)137 828 y(2)i(Lexical)13 -b(con)o(v)o(en)o(tions)k(.)j(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)73 b(7)233 878 y(2.1)79 b(Iden)o(ti\014ers) -25 b(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)73 b(7)233 928 y(2.2)79 b(Comm)o(en)o(ts)10 -b(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)73 b(7)233 978 y(2.3)79 b(Other)15 b(notations)d(.)20 -b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)73 -b(8)137 1028 y(3)i(Basic)14 b(concepts)41 b(.)21 b(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)73 -b(8)137 1078 y(4)i(Expressions)29 b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)73 -b(8)233 1129 y(4.1)79 b(Primitiv)o(e)11 b(expression)16 -b(t)o(yp)q(es)g(.)21 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)73 -b(8)233 1179 y(4.2)79 b(Deriv)o(ed)14 b(expression)h(t)o(yp)q(es)e(.)20 -b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)73 b(9)137 -1229 y(5)i(Program)12 b(structure)36 b(.)20 b(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(10)137 -1279 y(6)75 b(Standard)14 b(pro)q(cedures)28 b(.)21 b(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(10)233 -1329 y(6.1)79 b(Bo)q(oleans)42 b(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(10)233 1379 -y(6.2)79 b(Equiv)n(alence)13 b(predicates)21 b(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)52 b(11)233 1430 y(6.3)79 b(P)o(airs)13 -b(and)h(lists)43 b(.)20 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)52 b(11)233 1480 y(6.4)79 b(Sym)o(b)q(ols)18 -b(.)j(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)52 b(12)233 1530 y(6.5)79 b(Num)o(b)q(ers)41 -b(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)52 b(13)233 1580 y(6.6)79 b(Characters)41 -b(.)20 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)52 b(15)233 1630 y(6.7)79 b(Strings)12 b(.)20 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)52 b(16)233 1680 y(6.8)79 b(V)m(ectors)38 -b(.)21 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)52 b(17)233 1730 y(6.9)79 b(Con)o(trol)13 -b(features)41 b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)52 b(18)233 1781 y(6.10)58 b(Input)14 b(and)f(output)k(.)j(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(19)233 1831 y(6.11)58 b(Keyw)o(ords)27 b(.)20 b(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(25)233 1881 y(6.12)58 b(Tk)13 b(commands)c(.)21 b(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(26)233 -1931 y(6.13)58 b(Mo)q(dules)19 b(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(27)233 -1981 y(6.14)58 b(En)o(vironmen)o(ts)16 b(.)21 b(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(30)233 2031 -y(6.15)58 b(Macros)41 b(.)21 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(31)233 2082 -y(6.16)58 b(System)13 b(pro)q(cedures)28 b(.)20 b(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(32)233 2132 y(6.17)58 -b(Addresses)27 b(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)52 b(34)233 2182 y(6.18)58 b(Signals)11 -b(.)20 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)52 b(34)233 2232 y(6.19)58 b(Hash)14 -b(tables)25 b(.)20 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)52 b(36)233 2282 y(6.20)58 b(Regular)13 -b(expressions)41 b(.)21 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)52 b(38)233 2332 y(6.21)58 b(P)o(attern)14 b(matc)o(hing)f(.)20 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(40)233 2383 y(6.22)58 b(Pro)q(cesses)36 b(.)20 b(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(42)233 2433 y(6.23)58 b(So)q(c)o(k)o(ets)38 b(.)21 -b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)52 b(44)233 2483 y(6.24)58 b(F)m(oreign)13 b(F)m(unction)g(In)o -(terface)j(.)21 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(47)233 2533 y(6.25)58 b(Miscellaneous)20 b(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(50)75 -2677 y FG(I)r(I)j(Annexes)1399 b(57)75 2769 y FC(A)26 -b(Using)14 b(the)h(Tk)i(to)q(olkit)1220 b(59)137 2819 -y FD(1)75 b(Calling)12 b(a)h(Tk-command)g(.)20 b(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(59)946 2924 -y(3)p eop +3 2 bop 37 523 a FC(Con)m(ten)m(ts)37 745 y FI(I)56 b(Reference)17 +b(Man)n(ual)1291 b(5)106 802 y FF(1)81 b(Ov)o(erview)16 +b(of)f FB(STk)23 b FF(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)93 b(7)106 859 y(2)81 b(Lexical)17 b(con)o(v)o(en)o +(tions)i(.)j(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)93 +b(7)210 916 y(2.1)87 b(Iden)o(ti\014ers)27 b(.)c(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)93 b(7)210 972 +y(2.2)87 b(Commen)o(ts)11 b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)93 b(7)210 1029 y(2.3)87 b(Other)15 +b(notations)e(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)93 +b(8)106 1086 y(3)81 b(Basic)16 b(concepts)44 b(.)22 b(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)93 b(8)106 +1142 y(4)81 b(Expressions)31 b(.)22 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)93 b(8)210 1199 +y(4.1)87 b(Primitiv)o(e)16 b(expression)g(t)o(yp)q(es)h(.)23 +b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)93 b(8)210 1256 y(4.2)87 b(Deriv)o(ed)15 +b(expression)h(t)o(yp)q(es)e(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)93 +b(9)106 1313 y(5)81 b(Program)14 b(structure)37 b(.)22 +b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(11)106 1369 y(6)81 b(Standard)15 b(pro)q(cedures)30 +b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(11)210 1426 y(6.1)87 b(Bo)q(oleans)46 b(.)23 b(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(11)210 1483 +y(6.2)87 b(Equiv)m(alence)17 b(predicates)22 b(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)71 b(11)210 1540 y(6.3)87 b(P)o(airs)15 b(and)g(lists)47 +b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(12)210 1596 y(6.4)87 b(Sym)o(b)q(ols)23 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(13)210 1653 +y(6.5)87 b(Num)o(b)q(ers)45 b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(14)210 1710 y(6.6)87 +b(Characters)43 b(.)22 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)71 b(17)210 1766 y(6.7)87 b(Strings)13 b(.)23 +b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +71 b(18)210 1823 y(6.8)87 b(V)l(ectors)41 b(.)22 b(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(19)210 +1880 y(6.9)87 b(Con)o(trol)14 b(features)44 b(.)22 b(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(20)210 1937 y(6.10)64 +b(Input)16 b(and)f(output)j(.)k(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)71 b(21)210 1993 y(6.11)64 b(Keyw)o(ords)28 b(.)23 +b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(28)210 2050 y(6.12)64 b(Tk)15 b(commands)d(.)22 b(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(29)210 2107 y(6.13)64 +b(Mo)q(dules)22 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)71 b(30)210 2163 y(6.14)64 b(En)o(vironmen)o(ts)19 +b(.)j(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(34)210 2220 y(6.15)64 b(Macros)44 b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(35)210 2277 +y(6.16)64 b(System)15 b(pro)q(cedures)29 b(.)22 b(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)71 b(36)210 2334 y(6.17)64 b(Addresses)27 +b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(39)210 2390 y(6.18)64 b(Signals)14 b(.)23 b(.)f(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(39)210 +2447 y(6.19)64 b(Hash)15 b(tables)28 b(.)22 b(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(41)210 2504 y(6.20)64 +b(Regular)16 b(expressions)44 b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)71 b(44)210 2560 y(6.21)64 b(P)o(attern)14 b(matc)o(hing)i(.)22 +b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(46)210 +2617 y(6.22)64 b(Pro)q(cesses)36 b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(49)210 2674 y(6.23)64 +b(So)q(c)o(k)o(ets)41 b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)71 b(51)210 2731 y(6.24)64 b(F)l(oreign)15 +b(F)l(unction)h(In)o(terface)g(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(54)210 2787 y(6.25)64 b(Miscellaneous)24 b(.)e(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(58)945 2901 y(3)p +eop %%Page: 4 4 -4 3 bop 75 47 a FC(4)1260 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 137 179 a FD(2)75 b(Asso)q(ciating)14 -b(Callbac)o(ks)f(to)g(Tk-commands)37 b(.)21 b(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(60)137 229 y(3)75 b(Tk)13 b(bindings)22 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(60)75 320 y FC(B)28 b(Di\013erences)14 b(with)g(R4RS)1176 -b(63)137 370 y FD(1)75 b(Sym)o(b)q(ols)22 b(.)f(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(63)137 420 y(2)75 b(T)o(yp)q(es)34 b(.)20 b(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)52 b(64)137 469 y(3)75 b(Pro)q(cedures)42 b(.)20 b(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(64)75 561 y FC(C)28 b(An)16 b(in)o(tro)q(duct)o(ion)c(to)j -Fz(STklos)1092 b FC(67)137 610 y FD(1)75 b(In)o(tro)q(duction)13 -b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)52 b(67)137 660 y(2)75 b(Class)14 -b(de\014nition)f(and)h(instan)o(tiation)22 b(.)f(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)52 b(67)233 710 y(2.1)79 b(Class)13 b(de\014nition)22 -b(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(67)137 760 y(3)75 b(Inheritance)37 b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(68)233 810 y(3.1)79 b(Class)13 b(hierarc)o(h)o(y)i(and)e(inheritance) -i(of)e(slots)40 b(.)20 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(68)233 860 y(3.2)79 -b(Instance)15 b(creation)f(and)g(slot)f(access)33 b(.)21 -b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)52 b(69)233 909 y(3.3)79 b(Slot)13 -b(description)18 b(.)i(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)52 b(69)233 959 y(3.4)79 b(Class)13 b(precedence)k(list)23 -b(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(72)137 1009 y(4)75 b(Generic)14 b(functions)20 b(.)g(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(73)233 1059 y(4.1)79 b(Generic)14 b(functions)g(and)g(metho)q(ds)25 -b(.)20 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(73)233 1109 y(4.2)79 -b(Next-metho)q(d)29 b(.)21 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)52 b(74)233 1158 y(4.3)79 b(Example)11 -b(.)21 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)52 b(75)75 1250 y FC(D)25 b(Mo)q(dules:)20 -b(Examples)1240 b(77)75 1341 y(E)31 b(Changes)1477 b(79)75 -1432 y(F)32 b(Miscellaneous)13 b(Informations)1079 b(81)137 -1482 y FD(1)75 b(In)o(tro)q(duction)13 b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(81)137 1532 y(2)75 b(Ab)q(out)14 b Fz(STk)27 b FD(.)20 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)52 b(81)233 1582 y(2.1)79 b(Latest)14 -b(release)22 b(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)52 b(81)233 1632 y(2.2)79 b(Sharing)13 b(Co)q(de)23 -b(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -52 b(81)233 1681 y(2.3)79 b Fz(STk)14 b FD(Mailing)e(list)28 -b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(81)233 1731 y(2.4)79 b Fz(STk)14 b FD(F)-5 b(A)o(Q)22 -b(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)52 b(82)233 1781 y(2.5)79 b(Rep)q(orting)13 b(a)h(bug)36 -b(.)20 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(82)137 1831 y(3)75 b Fz(STk)14 b FD(and)g(Emacs)39 -b(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)52 b(82)233 1881 y(3.1)79 b(Using)13 b(the)i(SLIB)f(pac)o(k) -n(age)g(with)f Fz(STk)28 b FD(.)20 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(83)137 1931 y(4)75 b(Getting)13 b(information)e(ab)q(out)j(Sc)o(heme) -29 b(.)20 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(83)233 -1980 y(4.1)79 b(The)14 b FB(R)481 1965 y Fy(4)493 1980 -y Fx(RS)i FD(do)q(cumen)o(t)j(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)52 b(83)233 2030 y(4.2)79 b(The)14 b(Sc)o(heme)g(Rep)q -(ository)31 b(.)20 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)52 -b(83)233 2080 y(4.3)79 b(Usenet)15 b(newsgroup)g(and)e(other)i -(addresses)21 b(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)52 b(84)p eop +4 3 bop 37 45 a FE(4)1288 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FI(I)r(I)56 b(Annexes)1474 b(65)37 +292 y FE(A)29 b(Using)18 b(the)f(Tk)h(to)q(olkit)1248 +b(67)106 349 y FF(1)81 b(Calling)17 b(a)e(Tk-command)h(.)23 +b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(67)106 405 y(2)81 b(Asso)q(ciating)16 b(Callbac)o(ks)g(to)f +(Tk-commands)43 b(.)22 b(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(68)106 462 y(3)81 +b(Tk)15 b(bindings)26 b(.)c(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(69)37 564 y FE(B)32 +b(Di\013erences)16 b(with)j(R4RS)1196 b(71)106 620 y +FF(1)81 b(Sym)o(b)q(ols)27 b(.)c(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(71)106 +677 y(2)81 b(T)o(yp)q(es)37 b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(73)106 733 y(3)81 b(Pro)q(cedures)44 b(.)22 b(.)h(.)f(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(73)37 +835 y FE(C)31 b(An)17 b(in)o(tro)q(duction)i(to)f FB(STklos)1101 +b FE(75)106 891 y FF(1)81 b(In)o(tro)q(duction)15 b(.)22 +b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)71 b(75)106 948 y(2)81 b(Class)15 b(de\014nition)i(and)f(instan)o +(tiation)26 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(75)210 +1004 y(2.1)87 b(Class)15 b(de\014nition)25 b(.)e(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(75)106 1061 y(3)81 b(Inheritance)41 +b(.)22 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)71 b(76)210 1117 y(3.1)87 b(Class)15 b(hierarc)o(h)o(y)g +(and)h(inheritance)h(of)d(slots)43 b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(76)210 1174 y(3.2)87 +b(Instance)15 b(creation)h(and)f(slot)g(access)35 b(.)22 +b(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)71 b(77)210 1230 y(3.3)87 b(Slot)15 b(description)20 +b(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(78)210 1287 y(3.4)87 b(Class)15 b(precedence)i(list)26 +b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(81)106 +1343 y(4)81 b(Generic)16 b(functions)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(82)210 1399 +y(4.1)87 b(Generic)16 b(functions)g(and)f(metho)q(ds)28 +b(.)23 b(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)71 b(82)210 1456 y(4.2)87 b(Next-metho)q(d)33 +b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(83)210 1512 y(4.3)87 b(Example)15 b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(84)37 1614 +y FE(D)29 b(Mo)q(dules:)23 b(Examples)1266 b(87)37 1716 +y(E)35 b(Changes)1525 b(91)37 1818 y(F)36 b(Miscellaneous)18 +b(Informations)1093 b(95)106 1875 y FF(1)81 b(In)o(tro)q(duction)15 +b(.)22 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)71 b(95)106 1931 y(2)81 b(Ab)q(out)16 b FB(STk)28 +b FF(.)22 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)71 b(95)210 1987 y(2.1)87 b(Latest)14 b(release)24 +b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(95)210 2044 y(2.2)87 b(Sharing)15 b(Co)q(de)26 b(.)c(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(95)210 2100 +y(2.3)87 b FB(STk)14 b FF(Mailing)j(list)32 b(.)22 b(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(95)210 2157 y(2.4)87 +b FB(STk)14 b FF(F)-5 b(A)o(Q)23 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(96)210 2213 y(2.5)87 +b(Rep)q(orting)16 b(a)f(bug)40 b(.)22 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)71 b(96)106 2270 y(3)81 b FB(STk)15 b FF(and)g(Emacs)43 +b(.)23 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(96)210 2326 y(3.1)87 b(Using)15 b(the)h(SLIB)g(pac)o(k)m(age)f(with)h +FB(STk)29 b FF(.)22 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(97)106 2383 y(4)81 b(Getting)15 +b(information)h(ab)q(out)f(Sc)o(heme)32 b(.)22 b(.)g(.)h(.)f(.)g(.)h(.) +f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 +b(97)210 2439 y(4.1)87 b(The)15 b FD(R)482 2423 y FA(4)494 +2439 y Fz(RS)j FF(do)q(cumen)o(t)k(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)71 b(97)210 2496 y(4.2)87 b(The)15 b(Sc)o(heme)h(Rep)q(ository)35 +b(.)22 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)71 b(98)210 2552 +y(4.3)87 b(Usenet)15 b(newsgroup)g(and)h(other)f(addresses)21 +b(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)71 b(98)p eop %%Page: 5 5 -5 4 bop 828 1059 a FH(P)m(art)32 b(I)497 1266 y FA(Reference)38 -b(Man)m(ual)946 2924 y FD(5)p eop +5 4 bop 828 1056 a FJ(P)m(art)32 b(I)497 1264 y FC(Reference)38 +b(Man)m(ual)945 2901 y FF(5)p eop %%Page: 6 6 6 5 bop eop %%Page: 7 7 -7 6 bop 75 179 a Fw(In)n(tro)r(duction)75 278 y FD(This)16 -b(do)q(cumen)o(t)f(pro)o(vides)h(a)g(complete)f(list)g(of)g(pro)q -(cedures)j(and)e(sp)q(ecial)g(forms)e(implemen)o(ted)g(in)h(v)o(ersion) -75 328 y(3.99)d(of)g Fz(STk)p FD(.)18 b(Since)13 b Fz(STk)g -FD(is)g(\(nearly\))g(complian)o(t)e(with)h(the)i(language)d(describ)q -(ed)k(in)d(the)i FB(R)n(evise)n(d)1686 313 y Fy(4)1719 -328 y FB(R)n(ep)n(ort)75 378 y(on)d(the)g(A)o(lgorithmic)f(L)n(anguage) -i(Scheme)f FD(\(denoted)f FB(R)942 363 y Fy(4)954 378 -y Fx(RS)j FD(hereafter)1183 363 y Fy(1)1203 378 y FD(\)[1)o(],)d(the)g -(organization)e(of)h(this)h(man)o(ual)75 428 y(follo)o(ws)i(the)j -FB(R)313 413 y Fy(4)325 428 y Fx(RS)h FD(and)e(only)f(describ)q(es)j -(extensions.)75 589 y Fw(1)67 b(Ov)n(erview)23 b(of)f -Fv(STk)75 689 y FD(T)m(o)q(da)o(y's)14 b(graphical)g(to)q(olkits)g(for) -h(applicativ)o(e)f(languages)g(are)h(often)g(not)g(satisfactory)m(.)21 -b(Most)15 b(of)g(the)g(time,)75 738 y(they)d(ask)g(the)h(user)g(to)e(b) -q(e)i(an)f(X)g(windo)o(w)f(system)23 b(exp)q(ert)13 b(and)f(force)h -(him/her)d(to)i(cop)q(e)h(with)e(arcane)i(details)75 -788 y(suc)o(h)g(as)f(serv)o(er)i(connections)g(and)e(ev)o(en)o(t)h -(queues.)18 b(This)13 b(is)f(a)g(real)g(problem,)f(since)i(programmers) -d(using)i(this)75 838 y(kind)i(of)f(languages)g(are)i(generally)e(not)h -(inclined)g(to)g(system)g(programmi)o(ng,)c(and)k(few)g(of)g(them)f -(will)f(bridge)75 888 y(the)i(gap)g(b)q(et)o(w)o(een)h(the)g -(di\013eren)o(t)g(abstraction)f(lev)o(els.)124 942 y(Tk)e(is)h(a)f(p)q -(o)o(w)o(erful)g(graphical)f(to)q(olkit)g(promising)g(to)h(\014ll)f -(that)i(gap.)k(It)12 b(w)o(as)g(dev)o(elop)q(ed)h(at)g(the)g(Univ)o -(ersit)o(y)75 992 y(of)19 b(Berk)o(eley)h(b)o(y)f(John)h(Ousterhout)h -([2)o(].)34 b(The)20 b(to)q(olkit)e(o\013ers)j(high)d(lev)o(el)h -(widgets)h(suc)o(h)g(as)g(buttons)f(or)75 1042 y(men)o(us)13 -b(and)g(is)h(easily)f(programmabl)o(e,)e(requiring)i(little)g(kno)o -(wledge)h(of)f(X)g(fundamen)o(tals.)k(Tk)c(relies)h(on)g(an)75 -1092 y(in)o(terpretativ)o(e)h(shell-lik)o(e)e(language)g(named)f(Tcl)i -([3)o(].)134 1146 y Fz(STk)h FD(is)g(an)g(implemen)o(tati)o(on)d(of)i -(the)i(Sc)o(heme)f(programmi)o(ng)d(language,)h(pro)o(viding)h(a)h -(full)e(in)o(tegration)75 1196 y(of)i(the)g(Tk)g(to)q(olkit.)21 -b(In)15 b(this)g(implemen)o(tation,)c(Sc)o(heme)k(establishes)i(the)e -(link)f(b)q(et)o(w)o(een)j(the)f(user)g(and)f(the)75 -1246 y(Tk)f(to)q(olkit,)e(replacing)i(Tcl.)75 1407 y -Fw(2)67 b(Lexical)24 b(con)n(v)n(en)n(tions)75 1515 y -FG(2.1)56 b(Iden)n(ti\014ers)75 1600 y FD(Syn)o(tactic)15 -b(k)o(eyw)o(ords)f(can)h(b)q(e)g(used)g(as)g(v)n(ariables)f(in)g -Fz(STk)p FD(.)19 b(Users)d(m)o(ust)e(b)q(e)h(a)o(w)o(are)f(that)h(this) -f(extension)h(of)75 1650 y(the)f(language)f(could)h(lead)g(to)g(am)o -(biguiti)o(es)e(in)h(some)g(situations.)75 1790 y FG(2.2)56 -b(Commen)n(ts)75 1875 y FD(There)15 b(are)f(three)i(t)o(yp)q(es)e(of)g -(commen)o(ts)e(in)h Fz(STk)p FD(:)126 1972 y(1.)20 b(a)14 -b(semicolon)e(\(;\))i(indicates)h(the)f(start)h(of)e(a)h(commen)o(t.)j -(This)d(kind)f(of)h(commen)o(t)e(extends)j(to)f(the)h(end)179 -2022 y(of)e(the)i(line)e(\(as)h(describ)q(ed)i(in)d FB(R)705 -2007 y Fy(4)717 2022 y Fx(RS)r FD(\).)126 2123 y(2.)20 -b(m)o(ulti-li)o(nes)12 b(commen)o(t)g(use)j(the)f(classical)g(lisp)g -(con)o(v)o(en)o(tions:)k(a)13 b(commen)o(t)f(b)q(egins)j(with)e -Fu(#|)h FD(and)g(ends)179 2173 y(with)f Fu(|#)p FD(.)126 -2270 y(3.)20 b(commen)o(ts)15 b(can)i(also)f(b)q(e)h(in)o(tro)q(duced)h -(b)o(y)f Fu(#)p FD(!.)26 b(This)16 b(extension)i(is)f(particularly)f -(useful)g(for)h(building)179 2316 y Fz(STk)d FD(scripts.)19 -b(On)14 b(most)f(Unix)h(implem)o(en)o(tations,)d(if)i(the)h(\014rst)h -(line)e(of)h(a)f(script)i(lo)q(oks)e(lik)o(e)g(this:)336 -2429 y Ft(#)p Fs(!)p Ft(/usr/lo)o(ca)o(l/b)o(in/)o(st)o(k)k(-file)179 -2593 y FD(then)12 b(the)g(script)g(can)g(b)q(e)g(started)g(directly)g -(as)f(if)g(it)g(w)o(ere)h(a)f(binary)m(.)17 b Fz(STk)11 -b FD(is)h(loaded)f(b)q(ehind)g(the)h(scenes)179 2643 -y(and)j(reads)g(and)g(executes)i(the)f(script)g(as)f(a)f(Sc)o(heme)h -(program.)20 b(Of)15 b(course)h(this)f(assumes)g(that)g -Fz(STk)179 2693 y FD(is)f(lo)q(cated)g(in)f Fu(/usr/local/bin)p -FD(.)p 75 2741 705 2 v 121 2768 a Fr(1)139 2779 y Fq(The)21 -b Fp(R)n(evise)n(d)335 2768 y Fr(4)375 2779 y Fp(R)n(ep)n(ort)i(on)f -(the)g(A)o(lgorithmic)h(L)n(anguage)h(Scheme)f Fq(is)e(a)o(v)n(ailable) -e(through)g(anon)o(ymous)f(FTP)k(from)75 2819 y Fo(ftp.cs.ind)o(ian)o -(a.e)o(du)8 b Fq(in)j(the)g(directory)e Fo(/pub/scheme)o(-re)o(pos)o -(it)o(ory)o(/do)o(c)946 2924 y FD(7)p eop +7 6 bop 37 190 a Fy(In)n(tro)r(duction)37 295 y FF(This)11 +b(do)q(cumen)o(t)g(pro)o(vides)g(a)e(complete)i(list)g(of)f(pro)q +(cedures)h(and)f(sp)q(ecial)i(forms)e(implemen)o(ted)i(in)f(v)o(ersion) +37 352 y(3.99)17 b(of)g FB(STk)p FF(.)26 b(Since)19 b +FB(STk)e FF(is)i(\(nearly\))e(complian)o(t)h(with)g(the)g(language)g +(describ)q(ed)h(in)g(the)e FD(R)n(evise)n(d)1856 335 +y FA(4)37 408 y FD(R)n(ep)n(ort)h(on)f(the)g(A)o(lgorithmic)g(L)n +(anguage)g(Scheme)e FF(\(denoted)i FD(R)1167 392 y FA(4)1179 +408 y Fz(RS)i FF(hereafter)1437 392 y FA(1)1456 408 y +FF(\)[1)o(],)d(the)g(organization)37 465 y(of)f(this)h(man)o(ual)f +(follo)o(ws)h(the)f FD(R)599 448 y FA(4)611 465 y Fz(RS)j +FF(and)d(only)h(describ)q(es)h(extensions.)37 618 y Fy(1)67 +b(Ov)n(erview)23 b(of)f Fx(STk)37 723 y FF(T)l(o)q(da)o(y's)c +(graphical)h(to)q(olkits)f(for)g(applicativ)o(e)i(languages)e(are)g +(often)g(not)f(satisfactory)l(.)28 b(Most)17 b(of)h(the)37 +779 y(time,)g(they)g(ask)f(the)g(user)g(to)g(b)q(e)h(an)f(X)g(windo)o +(w)h(system)34 b(exp)q(ert)18 b(and)f(force)g(him/her)h(to)f(cop)q(e)h +(with)37 836 y(arcane)i(details)h(suc)o(h)g(as)e(serv)o(er)h +(connections)h(and)f(ev)o(en)o(t)g(queues.)35 b(This)21 +b(is)f(a)g(real)g(problem,)i(since)37 892 y(programmers)13 +b(using)j(this)e(kind)i(of)d(languages)i(are)f(generally)h(not)f +(inclined)j(to)d(system)g(programming,)37 949 y(and)i(few)f(of)g(them)g +(will)i(bridge)f(the)f(gap)g(b)q(et)o(w)o(een)g(the)h(di\013eren)o(t)f +(abstraction)g(lev)o(els.)116 1007 y(Tk)k(is)i(a)e(p)q(o)o(w)o(erful)h +(graphical)g(to)q(olkit)g(promising)h(to)e(\014ll)i(that)e(gap.)33 +b(It)20 b(w)o(as)f(dev)o(elop)q(ed)i(at)e(the)37 1063 +y(Univ)o(ersit)o(y)e(of)f(Berk)o(eley)h(b)o(y)f(John)g(Ousterhout)g +([2].)22 b(The)16 b(to)q(olkit)g(o\013ers)g(high)g(lev)o(el)i(widgets)e +(suc)o(h)g(as)37 1120 y(buttons)g(or)e(men)o(us)i(and)f(is)h(easily)g +(programmable,)f(requiring)h(little)h(kno)o(wledge)f(of)f(X)g(fundamen) +o(tals.)37 1176 y(Tk)g(relies)i(on)e(an)g(in)o(terpretativ)o(e)h +(shell-lik)o(e)i(language)d(named)h(Tcl)f([3].)79 1234 +y FB(STk)10 b FF(is)h(an)f(implemen)o(tation)i(of)e(the)h(Sc)o(heme)g +(programming)e(language,)j(pro)o(viding)f(a)f(full)i(in)o(tegration)37 +1291 y(of)k(the)g(Tk)f(to)q(olkit.)22 b(In)16 b(this)h(implemen)o +(tation,)f(Sc)o(heme)h(establishes)g(the)f(link)h(b)q(et)o(w)o(een)f +(the)g(user)g(and)37 1347 y(the)g(Tk)f(to)q(olkit,)g(replacing)h(Tcl.) +37 1500 y Fy(2)67 b(Lexical)24 b(con)n(v)n(en)n(tions)37 +1607 y FI(2.1)56 b(Iden)n(ti\014ers)37 1696 y FF(Syn)o(tactic)14 +b(k)o(eyw)o(ords)e(can)h(b)q(e)h(used)g(as)e(v)m(ariables)j(in)f +FB(STk)p FF(.)k(Users)13 b(m)o(ust)g(b)q(e)g(a)o(w)o(are)f(that)h(this) +g(extension)37 1753 y(of)i(the)h(language)f(could)h(lead)g(to)f(am)o +(biguities)h(in)g(some)f(situations.)37 1884 y FI(2.2)56 +b(Commen)n(ts)37 1974 y FF(There)16 b(are)f(three)g(t)o(yp)q(es)g(of)g +(commen)o(ts)g(in)h FB(STk)p FF(:)93 2074 y(1.)22 b(a)15 +b(semicolon)h(\(;\))e(indicates)j(the)e(start)e(of)i(a)g(commen)o(t.)k +(This)d(kind)g(of)e(commen)o(t)h(extends)g(to)g(the)151 +2131 y(end)h(of)f(the)g(line)i(\(as)d(describ)q(ed)k(in)e +FD(R)814 2114 y FA(4)826 2131 y Fz(RS)s FF(\).)93 2232 +y(2.)22 b(m)o(ulti-lines)d(commen)o(t)d(use)h(the)f(classical)i(Lisp)f +(con)o(v)o(en)o(tion:)23 b(a)16 b(commen)o(t)g(b)q(egins)h(with)g +Fw(#|)f FF(and)151 2288 y(ends)g(with)f Fw(|#)p FF(.)93 +2382 y(3.)22 b(commen)o(ts)11 b(can)h(also)f(b)q(e)i(in)o(tro)q(duced)g +(b)o(y)e Fw(#)p FF(!.)18 b(This)12 b(extension)h(is)f(particularly)h +(useful)f(for)f(building)151 2432 y FB(STk)21 b FF(scripts.)39 +b(On)22 b(most)e(Unix)i(implemen)o(tations,)i(if)e(the)f(\014rst)g +(line)i(of)e(a)g(script)h(lo)q(oks)g(lik)o(e)151 2482 +y(this:)325 2596 y Fv(#)p Fu(!)p Fv(/usr/local/bin/s)o(tk)d(-file)p +37 2699 735 2 v 89 2726 a Ft(1)107 2742 y Fs(The)f Fr(R)n(evise)n(d)317 +2726 y Ft(4)350 2742 y Fr(R)n(ep)n(ort)f(on)h(the)f(A)o(lgorithmic)f(L) +n(anguage)g(Scheme)g Fs(is)j(a)o(v)n(ailable)h(through)g(anon)o(ymous)f +(FTP)f(from)37 2787 y Fq(ftp.cs.indi)o(an)o(a.e)o(du)9 +b Fs(in)14 b(the)f(directory)i Fq(/pub/sche)o(me)o(-re)o(po)o(sit)o +(ory)o(/d)o(oc)945 2901 y FF(7)p eop %%Page: 8 8 -8 7 bop 75 47 a FC(8)1260 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FG(2.3)56 b(Other)18 b(notations)75 -255 y Fz(STk)c FD(accepts)i(all)c(the)j(notations)e(de\014ned)i(in)f -FB(R)852 240 y Fy(4)864 255 y Fx(RS)i FD(plus)75 339 -y Fu([)22 b(])42 b FD(Brac)o(k)o(ets)12 b(are)f(equiv)n(alen)o(t)f(to)h -(paren)o(theses.)19 b(They)11 b(are)h(used)f(for)g(grouping)f(and)g(to) -h(notate)g(lists.)17 b(A)11 b(list)179 389 y(op)q(ened)k(with)e(a)h -(left)f(square)i(brac)o(k)o(et)g(m)o(ust)d(b)q(e)j(closed)f(with)g(a)g -(righ)o(t)f(square)i(brac)o(k)o(et)f(\(section)h(6.3\).)75 -469 y Fu(:)21 b FD(A)c(colon)f(at)h(the)h(b)q(eginning)e(of)h(a)g(sym)o -(b)q(ol)e(in)o(tro)q(duces)j(a)f(k)o(eyw)o(ord.)27 b(Keyw)o(ords)18 -b(are)g(describ)q(ed)h(in)d(sec-)179 519 y(tion)d(6.11.)75 -595 y Fu(#.)19 b FD(is)g(read)g(as)f(the)i(ev)n(aluation)d(of)h -(the)h(Sc)o(heme)g(expression)g Fu()p FD(.)31 b(The)19 -b(ev)n(aluation)f(is)g(done)179 640 y(during)i(the)g -Fu(read)g FD(pro)q(cess,)j(when)d(the)h Fu(#)p FB(.)f -FD(is)g(encoun)o(tered.)39 b(Ev)n(aluation)18 b(is)i(done)h(in)e(the)i -(global)179 686 y(en)o(vironmen)o(t.)336 774 y Ft(\(define)c(foo)h(1\)) -336 819 y(#.foo)453 865 y Fs(=)-6 b Fn(\))20 b Ft(1)336 -911 y('\(foo)d(#.foo)h(#.\(+)g(foo)h(foo\)\))453 956 -y Fs(=)-6 b Fn(\))20 b Ft(\(foo)e(1)h(2\))336 1002 y(\(let)f(\(\(foo)f -(2\)\))395 1048 y(#.foo\))453 1093 y Fs(=)-6 b Fn(\))20 -b Ft(1)75 1321 y Fw(3)67 b(Basic)22 b(concepts)75 1412 -y FB(Identic)n(al)15 b(to)g(R)325 1397 y Fy(4)344 1412 -y FB(RS.)75 1548 y Fw(4)67 b(Expressions)75 1647 y FG(4.1)56 -b(Primitiv)n(e)15 b(expression)j(t)n(yp)r(es)75 1777 -y Fu(\(quote)j Fm(h)p FD(datum)p Fm(i)n Fu(\))1320 b -FD(syn)o(tax)75 1827 y Fu(')p Fm(h)p FD(datum)p Fm(i)1471 -b FD(syn)o(tax)75 1896 y(The)12 b(quoting)e(mec)o(hanism)f(is)j(iden)o -(tical)e(to)i FB(R)800 1881 y Fy(4)812 1896 y Fx(RS)r -FD(.)17 b(Keyw)o(ords)c(\(see)f(section)g(6.11\),)f(as)g(n)o(umerical)f -(constan)o(ts,)75 1942 y(string)k(constan)o(ts,)h(c)o(haracter)g -(constan)o(ts,)g(and)f(b)q(o)q(olean)g(constan)o(ts)h(ev)n(aluate)e -(\\to)h(themselv)o(es";)g(they)g(need)75 1987 y(not)g(b)q(e)g(quoted.) -153 2060 y Ft('"abc")430 b Fs(=)-6 b Fn(\))39 b Ft("abc")153 -2106 y("abc")450 b Fs(=)-6 b Fn(\))39 b Ft("abc")153 -2151 y('145932)410 b Fs(=)-6 b Fn(\))39 b Ft(145932)153 -2197 y(145932)430 b Fs(=)-6 b Fn(\))39 b Ft(145932)153 -2243 y('#t)490 b Fs(=)-6 b Fn(\))39 b Ft(#t)153 2288 -y(#t)510 b Fs(=)-6 b Fn(\))39 b Ft(#t)153 2334 y(':key)450 -b Fs(=)-6 b Fn(\))39 b Ft(:key)153 2380 y(:key)470 b -Fs(=)-6 b Fn(\))39 b Ft(:key)75 2502 y Fl(Note:)32 b(R)227 -2486 y Fr(4)238 2502 y Fk(RS)16 b Fs(requires)e(to)f(quote)h(constan)o -(t)g(lists)g(and)g(constan)o(t)g(v)o(ectors.)j(This)d(is)f(not)h -(necessary)g(with)f Fj(STk)p Fs(.)75 2599 y Fu(\()p Fm(h)p -FD(op)q(erator)p Fm(i)22 b(h)p FD(op)q(erand)466 2605 -y Fy(1)486 2599 y Fm(i)g Fx(:)7 b(:)g(:)e Fu(\))1118 -b FD(syn)o(tax)75 2672 y FB(Identic)n(al)15 b(to)g(R)325 -2657 y Fy(4)344 2672 y FB(RS.)f FD(F)m(urthermore,)f -Fm(h)p FD(op)q(erator)p Fm(i)i FD(can)f(b)q(e)g(a)g(macro)f(\(see)i -(section)f(6.15\).)75 2769 y Fu(\(lambda)20 b Fm(h)p -FD(formals)p Fm(i)g(h)p FD(b)q(o)q(dy)p Fm(i)q Fu(\))1137 -b FD(syn)o(tax)75 2819 y Fu(\(if)21 b Fm(h)p FD(test)p -Fm(i)i(h)p FD(consequen)o(t)p Fm(i)h(h)p FD(alternate)p -Fm(i)q Fu(\))967 b FD(syn)o(tax)p eop +8 7 bop 37 45 a FE(8)1288 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 151 190 a FF(then)f(the)f(script)g(can)g(b)q(e)h +(started)e(directly)j(as)d(if)i(it)f(w)o(ere)g(a)f(binary)l(.)21 +b FB(STk)14 b FF(is)i(loaded)g(b)q(ehind)h(the)151 247 +y(scenes)f(and)f(reads)g(and)g(executes)h(the)f(script)g(as)g(a)f(Sc)o +(heme)i(program.)j(Of)c(course)g(this)g(assumes)151 303 +y(that)g FB(STk)f FF(is)i(lo)q(cated)g(in)g Fw(/usr/local/bin)p +FF(.)37 426 y FI(2.3)56 b(Other)18 b(notations)37 513 +y FB(STk)d FF(accepts)g(all)i(the)e(notations)g(de\014ned)h(in)g +FD(R)888 496 y FA(4)900 513 y Fz(RS)i FF(plus)37 620 +y Fw([)24 b(])47 b FF(Brac)o(k)o(ets)13 b(are)i(equiv)m(alen)o(t)h(to)e +(paren)o(theses.)19 b(They)c(are)f(used)i(for)d(grouping)i(and)g(to)f +(notate)g(lists.)151 677 y(A)20 b(list)h(op)q(ened)g(with)f(a)g(left)g +(square)g(brac)o(k)o(et)f(m)o(ust)g(b)q(e)i(closed)f(with)h(a)e(righ)o +(t)h(square)g(brac)o(k)o(et)151 733 y(\(section)c(6.3\).)37 +828 y Fw(:)23 b FF(A)c(colon)g(at)f(the)h(b)q(eginning)i(of)d(a)g(sym)o +(b)q(ol)h(in)o(tro)q(duces)h(a)e(k)o(eyw)o(ord.)30 b(Keyw)o(ords)18 +b(are)h(describ)q(ed)h(in)151 884 y(section)c(6.11.)37 +973 y Fw(#.)22 b FF(is)h(read)e(as)h(the)g(ev)m(aluation)h(of)f +(the)g(Sc)o(heme)g(expression)h Fw()p FF(.)39 b(The)22 +b(ev)m(aluation)h(is)151 1022 y(done)18 b(during)h(the)f +Fw(read)g FF(pro)q(cess,)g(when)h(the)f Fw(#)p FD(.)f +FF(is)i(encoun)o(tered.)28 b(Ev)m(aluation)19 b(is)g(done)f(in)h(the) +151 1072 y(en)o(vironmen)o(t)d(of)e(the)i(curren)o(t)f(mo)q(dule.)325 +1179 y Fv(\(define)21 b(foo)g(1\))325 1229 y(#.foo)456 +1279 y Fu(=)-7 b Fp(\))22 b Fv(1)325 1329 y('\(foo)f(#.foo)g(#.\(+)g +(foo)g(foo\)\))456 1379 y Fu(=)-7 b Fp(\))22 b Fv(\(foo)f(1)g(2\))325 +1428 y(\(let)g(\(\(foo)g(2\)\))391 1478 y(#.foo\))456 +1528 y Fu(=)-7 b Fp(\))22 b Fv(1)37 1722 y Fy(3)67 b(Basic)22 +b(concepts)37 1824 y FD(Identic)n(al)15 b(to)i(R)311 +1808 y FA(4)331 1824 y FD(RS.)37 1969 y Fy(4)67 b(Expressions)37 +2073 y FI(4.1)56 b(Primitiv)n(e)16 b(expression)h(t)n(yp)r(es)37 +2220 y Fw(\(quote)24 b Fo(h)p FF(datum)p Fo(i)o Fw(\))1352 +b FF(syn)o(tax)37 2277 y Fw(')p Fo(h)p FF(datum)p Fo(i)1519 +b FF(syn)o(tax)37 2350 y(The)15 b(quoting)g(mec)o(hanism)g(is)g(iden)o +(tical)h(to)e FD(R)843 2334 y FA(4)855 2350 y Fz(RS)s +FF(.)19 b(Keyw)o(ords)14 b(\(see)g(section)h(6.11\),)e(as)h(n)o +(umerical)i(con-)37 2400 y(stan)o(ts,)c(string)g(constan)o(ts,)g(c)o +(haracter)f(constan)o(ts,)h(and)h(b)q(o)q(olean)g(constan)o(ts)e(ev)m +(aluate)j(\\to)d(themselv)o(es";)37 2450 y(they)16 b(need)g(not)f(b)q +(e)h(quoted.)125 2538 y Fv('"abc")478 b Fu(=)-7 b Fp(\))43 +b Fv("abc")125 2588 y("abc")500 b Fu(=)-7 b Fp(\))43 +b Fv("abc")125 2638 y('145932)456 b Fu(=)-7 b Fp(\))43 +b Fv(145932)125 2688 y(145932)478 b Fu(=)-7 b Fp(\))43 +b Fv(145932)125 2738 y('#t)544 b Fu(=)-7 b Fp(\))43 b +Fv(#t)125 2787 y(#t)566 b Fu(=)-7 b Fp(\))43 b Fv(#t)p +eop %%Page: 9 9 -9 8 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1259 -b(9)p 75 64 1763 2 v 75 179 a Fu(\(if)21 b Fm(h)p FD(test)p -Fm(i)i(h)p FD(consequen)o(t)p Fm(i)r Fu(\))1183 b FD(syn)o(tax)75 -229 y Fu(\(set!)21 b Fm(h)p FD(v)n(ariable)p Fm(i)g(h)p -FD(expression)p Fm(i)q Fu(\))1077 b FD(syn)o(tax)75 302 -y FB(Identic)n(al)15 b(to)g(R)325 287 y Fy(4)344 302 -y FB(RS.)75 416 y FG(4.2)56 b(Deriv)n(ed)17 b(expression)g(t)n(yp)r(es) -75 548 y Fu(\(cond)k Fm(h)p FD(clause)330 554 y Fy(1)349 -548 y Fm(i)h(h)p FD(clause)511 554 y Fy(2)530 548 y Fm(i)g -Fx(:)7 b(:)g(:)f Fu(\))1073 b FD(syn)o(tax)75 598 y Fu(\(case)21 -b Fm(h)p FD(k)o(ey)p Fm(i)h(h)p FD(clause)445 604 y Fy(1)464 -598 y Fm(i)g(h)p FD(clause)626 604 y Fy(2)646 598 y Fm(i)g -Fx(:)7 b(:)g(:)e Fu(\))958 b FD(syn)o(tax)75 648 y Fu(\(and)21 -b Fm(h)p FD(test)266 654 y Fy(1)286 648 y Fm(i)h Fx(:)7 -b(:)g(:)e Fu(\))1318 b FD(syn)o(tax)75 698 y Fu(\(or)21 -b Fm(h)p FD(test)244 704 y Fy(1)264 698 y Fm(i)h Fx(:)7 -b(:)g(:)e Fu(\))1340 b FD(syn)o(tax)75 771 y FB(Identic)n(al)15 -b(to)g(R)325 756 y Fy(4)344 771 y FB(RS.)75 874 y Fu(\(when)21 -b Fm(h)p FD(test)p Fm(i)i(h)p FD(expression)528 880 y -Fy(1)548 874 y Fm(i)f(h)p FD(expression)787 880 y Fy(2)807 -874 y Fm(i)g Fx(:)7 b(:)g(:)e Fu(\))797 b FD(syn)o(tax)75 -948 y(If)14 b(the)i Fm(h)p FD(test)p Fm(i)g FD(expression)g(yields)e(a) -h(true)h(v)n(alue,)d(the)j Fm(h)p FD(expression)p Fm(i)q -FD(s)f(are)h(ev)n(aluated)e(from)f(left)i(to)f(righ)o(t)h(and)75 -998 y(the)f(v)n(alue)g(of)f(the)h(last)g Fm(h)p FD(expression)p -Fm(i)h FD(is)f(returned.)75 1101 y Fu(\(unless)20 b Fm(h)p -FD(test)p Fm(i)k(h)p FD(expression)572 1107 y Fy(1)592 -1101 y Fm(i)d(h)p FD(expression)830 1107 y Fy(2)850 1101 -y Fm(i)h Fx(:)7 b(:)g(:)f Fu(\))753 b FD(syn)o(tax)75 -1174 y(If)14 b(the)h Fm(h)p FD(test)p Fm(i)h FD(expression)f(yields)g -(a)f(false)g(v)n(alue,)f(the)i Fm(h)p FD(expression)p -Fm(i)r FD(s)g(are)f(ev)n(aluated)h(from)d(left)i(to)h(righ)o(t)f(and)75 -1224 y(the)g(v)n(alue)g(of)f(the)h(last)g Fm(h)p FD(expression)p -Fm(i)h FD(is)f(returned.)75 1327 y Fu(\(let)21 b Fm(h)p -FD(bindings)p Fm(i)g(h)p FD(b)q(o)q(dy)p Fm(i)q Fu(\))1183 -b FD(syn)o(tax)75 1377 y Fu(\(let)21 b Fm(h)p FD(v)n(ariable)p -Fm(i)g(h)p FD(bindings)p Fm(i)h(h)p FD(b)q(o)q(dy)p Fm(i)p -Fu(\))987 b FD(syn)o(tax)75 1427 y Fu(\(let*)21 b Fm(h)p -FD(bindings)p Fm(i)g(h)p FD(b)q(o)q(dy)p Fm(i)q Fu(\))1161 -b FD(syn)o(tax)75 1500 y FB(Identic)n(al)15 b(to)g(R)325 -1485 y Fy(4)344 1500 y FB(RS.)75 1604 y Fu(\(fluid-let)20 -b Fm(h)p FD(bindings)p Fm(i)h(h)p FD(b)q(o)q(dy)p Fm(i)q -Fu(\))1052 b FD(syn)o(tax)75 1673 y(The)18 b FB(bindings)k -FD(are)c(ev)n(aluated)g(in)f(the)i(curren)o(t)g(en)o(vironmen)o(t,)e -(in)h(some)f(unsp)q(eci\014ed)i(order,)h(the)e(curren)o(t)75 -1719 y(v)n(alues)e(of)f(the)h(v)n(ariables)f(presen)o(t)j(in)d -FB(bindings)20 b FD(are)c(sa)o(v)o(ed,)g(and)g(the)g(new)h(ev)n -(aluated)e(v)n(alues)h(are)g(assigned)75 1764 y(to)e(the)g -FB(bindings)k FD(v)n(ariables.)f(Once)e(this)f(is)g(done,)g(the)g -(expressions)h(of)f FB(b)n(o)n(dy)k FD(are)c(ev)n(aluated)g(sequen)o -(tially)f(in)75 1810 y(the)j(curren)o(t)h(en)o(vironmen)o(t;)d(the)i(v) -n(alue)f(of)g(the)h(last)f(expression)h(is)f(the)h(result)g(of)f -Fu(fluid-let)p FD(.)20 b(Up)q(on)c(exit,)75 1856 y(the)i(stored)g(v)n -(ariables)e(v)n(alues)h(are)h(restored.)29 b(An)17 b(error)h(is)f -(signalled)f(if)h(an)o(y)f(of)h(the)h FB(bindings)j FD(v)n(ariable)16 -b(is)75 1901 y(un)o(b)q(ound.)153 1979 y Ft(\(let*)i(\(\(a)h('out\))291 -2025 y(\(f)g(\(lambda)e(\(\))h(a\)\)\))193 2070 y(\(list)f(a)310 -2116 y(\(fluid-let)f(\(\(a)j('in\)\))e(\(f\)\))310 2162 -y(a\)\))350 2207 y Fs(=)-6 b Fn(\))19 b Ft(\(out)f(in)h(out\))75 -2330 y FD(When)14 b(the)h(b)q(o)q(dy)g(of)e(a)h Fu(fluid-let)f -FD(is)h(exited)h(b)o(y)f(in)o(v)o(oking)e(a)i(con)o(tin)o(uation,)f -(the)i(new)g(v)n(ariable)e(v)n(alues)h(are)75 2376 y(sa)o(v)o(ed,)j -(and)g(the)g(v)n(ariables)f(are)h(set)g(to)g(their)g(old)f(v)n(alues.) -26 b(Then,)17 b(if)f(the)i(b)q(o)q(dy)e(is)h(reen)o(tered)i(b)o(y)d(in) -o(v)o(oking)75 2422 y(a)j(con)o(tin)o(uation,)g(the)h(old)e(v)n(alues)h -(are)h(sa)o(v)o(ed)f(and)g(new)h(v)n(alues)f(are)h(restored.)35 -b(The)20 b(follo)o(wing)d(example)75 2467 y(illustrates)d(this)g(b)q -(eha)o(viour)153 2545 y Ft(\(let)19 b(\(\(cont)e(#f\))271 -2591 y(\(l)78 b('\(\)\))271 2636 y(\(a)g('out\)\))193 -2728 y(\(set!)17 b(l)j(\(cons)d(a)j(l\)\))193 2773 y(\(fluid-le)o(t)c -(\(\(a)j('in\)\))232 2819 y(\(set!)f(cont)g(\(call/cc)e(\(lambda)h -(\(k\))i(k\)\)\))p eop +9 8 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1288 +b(9)p 37 64 1838 2 v 125 190 a Fv(':key)500 b Fu(=)-7 +b Fp(\))43 b Fv(:key)125 240 y(:key)522 b Fu(=)-7 b Fp(\))43 +b Fv(:key)37 387 y Fn(Note:)36 b(R)201 372 y Fm(4)213 +387 y Fl(RS)16 b Fu(requires)e(to)e(quote)h(constan)o(t)h(lists)f(and)f +(constan)o(t)i(v)o(ectors.)19 b(This)12 b(is)h(not)g(necessary)i(with)d +Fk(STk)p Fu(.)37 512 y Fw(\()p Fo(h)p FF(op)q(erator)p +Fo(i)23 b(h)p FF(op)q(erand)467 519 y FA(1)487 512 y +Fo(i)g Fz(:)8 b(:)g(:)e Fw(\))1132 b FF(syn)o(tax)37 +593 y FD(Identic)n(al)15 b(to)i(R)311 576 y FA(4)331 +593 y FD(RS.)e FF(F)l(urthermore,)f Fo(h)p FF(op)q(erator)p +Fo(i)g FF(can)h(b)q(e)h(a)f(macro)f(\(see)h(section)h(6.15\).)37 +717 y Fw(\(lambda)23 b Fo(h)p FF(formals)p Fo(i)g(h)p +FF(b)q(o)q(dy)p Fo(i)p Fw(\))1153 b FF(syn)o(tax)37 773 +y Fw(\(if)24 b Fo(h)p FF(test)p Fo(i)f(h)p FF(consequen)o(t)p +Fo(i)g(h)p FF(alternate)p Fo(i)p Fw(\))966 b FF(syn)o(tax)37 +830 y Fw(\(if)24 b Fo(h)p FF(test)p Fo(i)f(h)p FF(consequen)o(t)p +Fo(i)o Fw(\))1203 b FF(syn)o(tax)37 886 y Fw(\(set!)24 +b Fo(h)p FF(v)m(ariable)p Fo(i)g(h)p FF(expression)p +Fo(i)q Fw(\))1086 b FF(syn)o(tax)37 967 y FD(Identic)n(al)15 +b(to)i(R)311 951 y FA(4)331 967 y FD(RS.)37 1098 y FI(4.2)56 +b(Deriv)n(ed)18 b(expression)f(t)n(yp)r(es)37 1248 y +Fw(\(cond)24 b Fo(h)p FF(clause)317 1255 y FA(1)337 1248 +y Fo(i)g(h)p FF(clause)515 1255 y FA(2)535 1248 y Fo(i)f +Fz(:)8 b(:)g(:)e Fw(\))1084 b FF(syn)o(tax)37 1305 y +Fw(\(case)24 b Fo(h)p FF(k)o(ey)p Fo(i)f(h)p FF(clause)443 +1312 y FA(1)463 1305 y Fo(i)h(h)p FF(clause)641 1312 +y FA(2)661 1305 y Fo(i)g Fz(:)8 b(:)g(:)d Fw(\))958 b +FF(syn)o(tax)37 1361 y Fw(\(and)24 b Fo(h)p FF(test)249 +1368 y FA(1)268 1361 y Fo(i)f Fz(:)8 b(:)g(:)e Fw(\))1351 +b FF(syn)o(tax)37 1418 y Fw(\(or)24 b Fo(h)p FF(test)225 +1425 y FA(1)244 1418 y Fo(i)f Fz(:)8 b(:)g(:)e Fw(\))1375 +b FF(syn)o(tax)37 1498 y FD(Identic)n(al)15 b(to)i(R)311 +1482 y FA(4)331 1498 y FD(RS.)37 1623 y Fw(\(when)24 +b Fo(h)p FF(test)p Fo(i)e(h)p FF(expression)534 1630 +y FA(1)555 1623 y Fo(i)h(h)p FF(expression)817 1630 y +FA(2)838 1623 y Fo(i)g Fz(:)8 b(:)g(:)e Fw(\))781 b FF(syn)o(tax)37 +1704 y(If)17 b(the)f Fo(h)p FF(test)p Fo(i)f FF(expression)h(yields)i +(a)e(true)f(v)m(alue,)i(the)f Fo(h)p FF(expression)p +Fo(i)q FF(s)g(are)f(ev)m(aluated)i(from)f(left)g(to)f(righ)o(t)37 +1760 y(and)h(the)f(v)m(alue)i(of)d(the)i(last)f Fo(h)p +FF(expression)p Fo(i)g FF(is)h(returned.)37 1884 y Fw(\(unless)23 +b Fo(h)p FF(test)p Fo(i)g(h)p FF(expression)582 1891 +y FA(1)602 1884 y Fo(i)h(h)p FF(expression)865 1891 y +FA(2)885 1884 y Fo(i)g Fz(:)8 b(:)g(:)d Fw(\))734 b FF(syn)o(tax)37 +1965 y(If)16 b(the)g Fo(h)p FF(test)p Fo(i)e FF(expression)j(yields)g +(a)e(false)h(v)m(alue,)g(the)g Fo(h)p FF(expression)p +Fo(i)p FF(s)g(are)f(ev)m(aluated)i(from)d(left)i(to)f(righ)o(t)37 +2022 y(and)h(the)f(v)m(alue)i(of)d(the)i(last)f Fo(h)p +FF(expression)p Fo(i)g FF(is)h(returned.)37 2146 y Fw(\(let)24 +b Fo(h)p FF(bindings)p Fo(i)h(h)p FF(b)q(o)q(dy)p Fo(i)p +Fw(\))1203 b FF(syn)o(tax)37 2202 y Fw(\(let)24 b Fo(h)p +FF(v)m(ariable)p Fo(i)g(h)p FF(bindings)p Fo(i)i(h)p +FF(b)q(o)q(dy)p Fo(i)p Fw(\))988 b FF(syn)o(tax)37 2259 +y Fw(\(let*)24 b Fo(h)p FF(bindings)p Fo(i)h(h)p FF(b)q(o)q(dy)p +Fo(i)p Fw(\))1179 b FF(syn)o(tax)37 2340 y FD(Identic)n(al)15 +b(to)i(R)311 2323 y FA(4)331 2340 y FD(RS.)37 2464 y +Fw(\(fluid-let)23 b Fo(h)p FF(bindings)p Fo(i)i(h)p FF(b)q(o)q(dy)p +Fo(i)p Fw(\))1060 b FF(syn)o(tax)37 2538 y(The)13 b FD(bindings)i +FF(are)d(ev)m(aluated)i(in)f(the)g(curren)o(t)f(en)o(vironmen)o(t,)h +(in)h(some)e(unsp)q(eci\014ed)j(order,)d(the)h(curren)o(t)37 +2588 y(v)m(alues)g(of)e(the)g(v)m(ariables)h(presen)o(t)f(in)h +FD(bindings)i FF(are)d(sa)o(v)o(ed,)g(and)g(the)h(new)f(ev)m(aluated)h +(v)m(alues)h(are)d(assigned)37 2638 y(to)i(the)g FD(bindings)j +FF(v)m(ariables.)20 b(Once)13 b(this)g(is)f(done,)h(the)f(expressions)h +(of)f FD(b)n(o)n(dy)k FF(are)c(ev)m(aluated)h(sequen)o(tially)37 +2688 y(in)i(the)g(curren)o(t)f(en)o(vironmen)o(t;)g(the)g(v)m(alue)h +(of)f(the)g(last)g(expression)h(is)g(the)f(result)h(of)e +Fw(fluid-let)p FF(.)18 b(Up)q(on)37 2738 y(exit,)k(the)e(stored)g(v)m +(ariables)h(v)m(alues)h(are)d(restored.)35 b(An)20 b(error)g(is)g +(signalled)i(if)f(an)o(y)f(of)f(the)i FD(bindings)37 +2787 y FF(v)m(ariable)c(is)f(un)o(b)q(ound.)p eop %%Page: 10 10 -10 9 bop 75 47 a FC(10)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 232 179 a Ft(\(set!)k(l)h(\(cons)f(a)h(l\)\)\))193 -224 y(\(set!)e(l)j(\(cons)d(a)j(l\)\))193 316 y(\(if)e(cont)g(\(cont)g -(#f\))g(l\)\))350 361 y Fs(=)-6 b Fn(\))19 b Ft(\(out)f(in)h(out)f(in)h -(out\))75 579 y Fu(\(letrec)h Fm(h)p FD(bindings)p Fm(i)i(h)p -FD(b)q(o)q(dy)p Fm(i)p Fu(\))1118 b FD(syn)o(tax)75 629 -y Fu(\(begin)21 b Fm(h)p FD(expression)429 635 y Fy(1)449 -629 y Fm(i)g(h)p FD(expression)687 635 y Fy(2)707 629 -y Fm(i)h Fx(:)7 b(:)g(:)f Fu(\))896 b FD(syn)o(tax)75 -679 y Fu(\(do)21 b Fm(h)p FD(inits)p Fm(i)h(h)p FD(test)p -Fm(i)h(h)p FD(b)q(o)q(dy)p Fm(i)p Fu(\))1158 b FD(syn)o(tax)75 -729 y Fu(\(delay)21 b Fm(h)p FD(expression)p Fm(i)q Fu(\))1251 -b FD(syn)o(tax)75 778 y Fu(\(quasiquote)20 b Fm(h)p FD(template)p -Fm(i)o Fu(\))1169 b FD(syn)o(tax)75 828 y Fu(\022)p Fm(h)p -FD(template)p Fm(i)1430 b FD(syn)o(tax)75 902 y FB(Identic)n(al)15 -b(to)g(R)325 887 y Fy(4)344 902 y FB(RS.)75 1000 y Fu(\(dotimes)20 -b FB(\(var)i(c)n(ount\))g Fm(h)p FD(expression)705 1006 -y Fy(1)725 1000 y Fm(i)g(h)p FD(expression)964 1006 y -Fy(2)984 1000 y Fm(i)g Fx(:)7 b(:)g(:)e Fu(\))620 b FD(syn)o(tax)75 -1050 y Fu(\(dotimes)20 b FB(\(var)i(c)n(ount)g(r)n(esult\))f -Fm(h)p FD(expression)825 1056 y Fy(1)845 1050 y Fm(i)h(h)p -FD(expression)1084 1056 y Fy(2)1104 1050 y Fm(i)g Fx(:)7 -b(:)g(:)e Fu(\))500 b FD(syn)o(tax)75 1123 y Fu(Dotimes)8 -b FD(ev)n(aluates)h(the)h FB(c)n(ount)k FD(form,)8 b(whic)o(h)h(m)o -(ust)f(return)j(an)e(in)o(teger.)17 b(It)9 b(then)h(ev)n(aluates)f(the) -h Fm(h)p FD(expression)p Fm(i)r FD(s)75 1173 y(once)18 -b(for)f(eac)o(h)g(in)o(teger)h(from)d(zero)j(\(inclusiv)o(e\))f(to)g -FB(c)n(ount)22 b FD(\(exclusiv)o(e\),)c(in)f(order,)h(with)e(the)i(v)n -(ariable)e FB(var)75 1223 y FD(b)q(ound)j(to)f(the)h(in)o(teger;)i(if)d -(the)i(v)n(alue)e(of)g FB(c)n(ount)23 b FD(is)18 b(zero)i(or)e(negativ) -o(e,)h(then)h(the)f Fm(h)p FD(expression)p Fm(i)r FD(s)f(are)i(not)75 -1272 y(ev)n(aluated.)g(When)14 b(the)h(lo)q(op)f(completes,)g -FB(r)n(esult)k FD(is)c(ev)n(aluated)g(and)h(its)f(v)n(alue)g(is)g -(returned)j(as)d(the)h(v)n(alue)f(of)75 1322 y(the)g -Fu(dotimes)f FD(expression.)19 b(If)14 b FB(r)n(esult)i -FD(is)e(omitted,)e Fu(dotimes)h FD(returns)i Fu(#f)p -FD(.)153 1403 y Ft(\(let)k(\(\(l)f('\(\)\)\))193 1449 -y(\(dotimes)e(\(i)j(4)g(l\))252 1494 y(\(set!)e(l)i(\(cons)f(i)h -(l\)\)\)\))350 1540 y Fs(=)-6 b Fn(\))19 b Ft(\(3)g(2)g(1)g(0\))75 -1719 y Fu(\(while)i Fm(h)p FD(test)p Fm(i)i(h)p FD(expression)550 -1725 y Fy(1)570 1719 y Fm(i)f(h)p FD(expression)809 1725 -y Fy(2)829 1719 y Fm(i)g Fx(:)7 b(:)g(:)e Fu(\))775 b -FD(syn)o(tax)75 1793 y Fu(While)11 b FD(ev)n(aluates)g(the)i -Fm(h)p FD(expression)p Fm(i)q FD(s)f(un)o(til)f Fm(h)p -FD(test)p Fm(i)i FD(returns)g(a)f(false)f(v)n(alue.)17 -b(The)12 b(v)n(alue)f(of)g(a)g Fu(while)g FD(construct)75 -1842 y(is)j(unsp)q(eci\014ed.)75 1941 y Fu(\(until)21 -b Fm(h)p FD(test)p Fm(i)i(h)p FD(expression)550 1947 -y Fy(1)570 1941 y Fm(i)f(h)p FD(expression)809 1947 y -Fy(2)829 1941 y Fm(i)g Fx(:)7 b(:)g(:)e Fu(\))775 b FD(syn)o(tax)75 -2014 y Fu(Until)19 b FD(ev)n(aluates)h(the)g Fm(h)p FD(expression)p -Fm(i)r FD(s)g(while)f Fm(h)p FD(test)p Fm(i)i FD(returns)h(a)d(false)h -(v)n(alue.)35 b(The)21 b(v)n(alue)e(of)g(an)h Fu(unless)75 -2064 y FD(construct)c(is)d(unsp)q(eci\014ed.)75 2195 -y Fw(5)67 b(Program)22 b(structure)75 2285 y FB(Identic)n(al)15 -b(to)g(R)325 2270 y Fy(4)344 2285 y FB(RS.)75 2422 y -Fw(6)67 b(Standard)24 b(pro)r(cedures)75 2521 y FG(6.1)56 -b(Bo)r(oleans)75 2597 y FD(In)14 b Fz(STk)g FD(the)h(b)q(o)q(olean)e(v) -n(alue)g Fu(#f)h FD(is)g(di\013eren)o(t)g(from)e(the)j(empt)o(y)e -(list,)g(as)h(required)h(b)o(y)e FB(R)1500 2582 y Fy(4)1512 -2597 y Fx(RS)r FD(.)75 2701 y Fu(\(not)21 b FB(obj)6 -b Fu(\))1394 b FD(pro)q(cedure)75 2751 y Fu(\(boolean?)20 -b FB(obj)6 b Fu(\))1285 b FD(pro)q(cedure)75 2824 y FB(Identic)n(al)15 -b(to)g(R)325 2809 y Fy(4)344 2824 y FB(RS.)p eop +10 9 bop 37 45 a FE(10)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(let*)j(\(\(a)i('out\))277 +240 y(\(f)g(\(lambda)e(\(\))h(a\)\)\))168 290 y(\(list)g(a)299 +340 y(\(fluid-let)f(\(\(a)h('in\)\))g(\(f\)\))299 390 +y(a\)\))343 439 y Fu(=)-7 b Fp(\))21 b Fv(\(out)g(in)h(out\))37 +580 y FF(When)15 b(the)g(b)q(o)q(dy)g(of)g(a)f Fw(fluid-let)f +FF(is)i(exited)h(b)o(y)e(in)o(v)o(oking)h(a)g(con)o(tin)o(uation,)f +(the)h(new)g(v)m(ariable)h(v)m(alues)37 630 y(are)j(sa)o(v)o(ed,)g(and) +g(the)g(v)m(ariables)i(are)d(set)h(to)f(their)i(old)f(v)m(alues.)32 +b(Then,)20 b(if)g(the)f(b)q(o)q(dy)g(is)h(reen)o(tered)f(b)o(y)37 +680 y(in)o(v)o(oking)d(a)f(con)o(tin)o(uation,)g(the)g(old)h(v)m(alues) +g(are)f(sa)o(v)o(ed)g(and)g(new)g(v)m(alues)i(are)d(restored.)20 +b(The)15 b(follo)o(wing)37 729 y(example)i(illustrates)f(this)f(b)q +(eha)o(viour)125 821 y Fv(\(let)21 b(\(\(cont)f(#f\))255 +871 y(\(l)87 b('\(\)\))255 921 y(\(a)g('out\)\))168 1020 +y(\(set!)21 b(l)h(\(cons)e(a)i(l\)\))168 1070 y(\(fluid-let)e(\(\(a)h +('in\)\))212 1120 y(\(set!)g(cont)g(\(call/cc)f(\(lambda)g(\(k\))h +(k\)\)\))212 1170 y(\(set!)g(l)g(\(cons)g(a)h(l\)\)\))168 +1219 y(\(set!)f(l)h(\(cons)e(a)i(l\)\))168 1319 y(\(if)f(cont)g(\(cont) +g(#f\))g(l\)\))343 1369 y Fu(=)-7 b Fp(\))21 b Fv(\(out)g(in)h(out)f +(in)g(out\))37 1633 y Fw(\(letrec)i Fo(h)p FF(bindings)p +Fo(i)j(h)p FF(b)q(o)q(dy)p Fo(i)p Fw(\))1131 b FF(syn)o(tax)37 +1689 y Fw(\(begin)24 b Fo(h)p FF(expression)426 1696 +y FA(1)446 1689 y Fo(i)f(h)p FF(expression)708 1696 y +FA(2)729 1689 y Fo(i)g Fz(:)8 b(:)g(:)e Fw(\))890 b FF(syn)o(tax)37 +1746 y Fw(\(do)24 b Fo(h)p FF(inits)p Fo(i)g(h)p FF(test)p +Fo(i)f(h)p FF(b)q(o)q(dy)p Fo(i)p Fw(\))1175 b FF(syn)o(tax)37 +1802 y Fw(\(delay)24 b Fo(h)p FF(expression)p Fo(i)p +Fw(\))1277 b FF(syn)o(tax)37 1858 y Fw(\(quasiquote)23 +b Fo(h)p FF(template)p Fo(i)o Fw(\))1188 b FF(syn)o(tax)37 +1915 y Fw(\022)p Fo(h)p FF(template)p Fo(i)1474 b FF(syn)o(tax)37 +1996 y FD(Identic)n(al)15 b(to)i(R)311 1979 y FA(4)331 +1996 y FD(RS.)37 2120 y Fw(\(dotimes)23 b FD(\(var)h(c)n(ount\))f +Fo(h)p FF(expression)728 2127 y FA(1)749 2120 y Fo(i)g(h)p +FF(expression)1011 2127 y FA(2)1032 2120 y Fo(i)g Fz(:)8 +b(:)g(:)e Fw(\))587 b FF(syn)o(tax)37 2176 y Fw(\(dotimes)23 +b FD(\(var)h(c)n(ount)g(r)n(esult\))f Fo(h)p FF(expression)860 +2183 y FA(1)880 2176 y Fo(i)h(h)p FF(expression)1143 +2183 y FA(2)1163 2176 y Fo(i)f Fz(:)8 b(:)g(:)e Fw(\))456 +b FF(syn)o(tax)37 2257 y Fw(Dotimes)22 b FF(ev)m(aluates)h(the)g +FD(c)n(ount)j FF(form,)d(whic)o(h)g(m)o(ust)f(return)h(an)f(in)o +(teger.)42 b(It)22 b(then)h(ev)m(aluates)g(the)37 2314 +y Fo(h)p FF(expression)p Fo(i)q FF(s)16 b(once)i(for)e(eac)o(h)h(in)o +(teger)g(from)f(zero)h(\(inclusiv)o(e\))h(to)e FD(c)n(ount)21 +b FF(\(exclusiv)o(e\),)d(in)g(order,)f(with)37 2370 y(the)k(v)m +(ariable)h FD(var)k FF(b)q(ound)c(to)e(the)g(in)o(teger;)k(if)d(the)f +(v)m(alue)i(of)f FD(c)n(ount)j FF(is)d(zero)g(or)f(negativ)o(e,)i(then) +f(the)37 2427 y Fo(h)p FF(expression)p Fo(i)q FF(s)16 +b(are)h(not)f(ev)m(aluated.)26 b(When)17 b(the)g(lo)q(op)h(completes,)f +FD(r)n(esult)k FF(is)c(ev)m(aluated)h(and)f(its)g(v)m(alue)37 +2483 y(is)f(returned)g(as)f(the)g(v)m(alue)h(of)f(the)g +Fw(dotimes)g FF(expression.)20 b(If)c FD(r)n(esult)j +FF(is)c(omitted,)g Fw(dotimes)f FF(returns)h Fw(#f)p +FF(.)125 2588 y Fv(\(let)21 b(\(\(l)g('\(\)\)\))168 2638 +y(\(dotimes)f(\(i)i(4)f(l\))234 2688 y(\(set!)f(l)i(\(cons)f(i)g +(l\)\)\)\))343 2738 y Fu(=)-7 b Fp(\))21 b Fv(\(3)h(2)f(1)h(0\))p +eop %%Page: 11 11 -11 10 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(11)p 75 64 1763 2 v 75 179 a FG(6.2)56 b(Equiv)m(alence)16 -b(predicates)75 316 y Fu(\(eqv?)21 b FB(obj)259 322 y -Fy(1)299 316 y FB(obj)352 322 y Fy(2)371 316 y Fu(\))1266 -b FD(pro)q(cedure)75 387 y Fz(STk)15 b FD(extends)i(the)e -Fu(eqv?)f FD(predicate)i(de\014ned)g(in)e(the)i FB(R)978 -372 y Fy(4)990 387 y Fx(RS)h FD(to)e(tak)o(e)g(k)o(eyw)o(ords)g(in)o -(to)g(accoun)o(t:)20 b(if)14 b FB(obj)1737 393 y Fy(1)1771 -387 y FD(and)75 432 y FB(obj)128 438 y Fy(2)161 432 y -FD(are)g(b)q(oth)g(k)o(eyw)o(ords,)g(the)g Fu(eqv?)f -FD(predicate)i(will)d(yield)i Fu(#t)f FD(if)g(and)h(only)f(if)153 -516 y Ft(\(string=?)k(\(keyword-)o(>s)o(tri)o(ng)f(obj1\))350 -562 y(\(keyword-)o(>s)o(tri)o(ng)g(obj2\)\))703 608 y -Fs(=)-6 b Fn(\))39 b Ft(#t)75 758 y Fu(\(eq?)21 b FB(obj)237 -764 y Fy(1)277 758 y FB(obj)330 764 y Fy(2)349 758 y -Fu(\))1288 b FD(pro)q(cedure)75 833 y Fz(STk)12 b FD(extends)i(the)f -Fu(eq?)e FD(predicate)i(de\014ned)g(in)f FB(R)864 818 -y Fy(4)876 833 y Fx(RS)j FD(to)d(tak)o(e)g(k)o(eyw)o(ords)g(in)o(to)g -(accoun)o(t.)17 b(On)c(k)o(eyw)o(ords,)f Fu(eq?)75 883 -y FD(b)q(eha)o(v)o(es)j(lik)o(e)e Fu(eqv?)p FD(.)153 -976 y Ft(\(eq?)19 b(:key)f(:key\))253 b Fs(=)-6 b Fn(\))39 -b Ft(#t)75 1182 y Fu(\(equal?)20 b FB(obj)302 1188 y -Fy(1)343 1182 y FB(obj)396 1188 y Fy(2)414 1182 y Fu(\))1223 -b FD(pro)q(cedure)75 1257 y FB(Identic)n(al)15 b(to)g(R)325 -1242 y Fy(4)344 1257 y FB(RS.)75 1386 y FG(6.3)56 b(P)n(airs)19 -b(and)g(lists)75 1523 y Fu(\(pair?)i FB(obj)6 b Fu(\))1350 -b FD(pro)q(cedure)75 1573 y Fu(\(cons)21 b FB(obj)259 -1579 y Fy(1)299 1573 y FB(obj)352 1579 y Fy(2)371 1573 -y Fu(\))1266 b FD(pro)q(cedure)75 1623 y Fu(\(car)21 -b FB(p)n(air)t Fu(\))1378 b FD(pro)q(cedure)75 1672 y -Fu(\(cdr)21 b FB(p)n(air)t Fu(\))1378 b FD(pro)q(cedure)75 -1722 y Fu(\(set-car!)20 b FB(p)n(air)h(obj)6 b Fu(\))1193 -b FD(pro)q(cedure)75 1772 y Fu(\(set-cdr!)20 b FB(p)n(air)h(obj)6 -b Fu(\))1193 b FD(pro)q(cedure)75 1822 y Fu(\(caar)21 -b FB(p)n(air)t Fu(\))1356 b FD(pro)q(cedure)75 1872 y -Fu(\(cadr)21 b FB(p)n(air)t Fu(\))1356 b FD(pro)q(cedure)178 -1914 y Fu(.)178 1931 y(.)178 1947 y(.)1742 1914 y FD(.)1742 -1931 y(.)1742 1947 y(.)75 1997 y Fu(\(cdddar)20 b FB(p)n(air)t -Fu(\))1313 b FD(pro)q(cedure)75 2047 y Fu(\(cddddr)20 -b FB(p)n(air)t Fu(\))1313 b FD(pro)q(cedure)75 2097 y -Fu(\(null?)21 b FB(obj)6 b Fu(\))1350 b FD(pro)q(cedure)75 -2146 y Fu(\(list?)21 b FB(obj)6 b Fu(\))1350 b FD(pro)q(cedure)75 -2196 y Fu(\(list)21 b FB(obj)28 b Fx(:)7 b(:)g(:)e Fu(\))1295 -b FD(pro)q(cedure)75 2246 y Fu(\(length)20 b FB(list)t -Fu(\))1329 b FD(pro)q(cedure)75 2296 y Fu(\(append)20 -b FB(list)h Fx(:)7 b(:)g(:)f Fu(\))1256 b FD(pro)q(cedure)75 -2346 y Fu(\(reverse)20 b FB(list)t Fu(\))1307 b FD(pro)q(cedure)75 -2395 y Fu(\(list-tail)20 b FB(list)h Fx(k)q Fu(\))1223 -b FD(pro)q(cedure)75 2445 y Fu(\(list-ref)20 b FB(list)h -Fx(k)q Fu(\))1245 b FD(pro)q(cedure)75 2495 y Fu(\(memq)21 -b FB(obj)h(list)t Fu(\))1297 b FD(pro)q(cedure)75 2545 -y Fu(\(memv)21 b FB(obj)h(list)t Fu(\))1297 b FD(pro)q(cedure)75 -2595 y Fu(\(member)20 b FB(obj)i(list)t Fu(\))1254 b -FD(pro)q(cedure)75 2645 y Fu(\(assq)21 b FB(obj)h(alist)t -Fu(\))1276 b FD(pro)q(cedure)75 2694 y Fu(\(assv)21 b -FB(obj)h(alist)t Fu(\))1276 b FD(pro)q(cedure)75 2744 -y Fu(\(assoc)21 b FB(obj)g(alist)t Fu(\))1255 b FD(pro)q(cedure)75 -2819 y FB(Identic)n(al)15 b(to)g(R)325 2804 y Fy(4)344 -2819 y FB(RS.)p eop +11 10 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(11)p 37 64 1838 2 v 37 190 a Fw(\(while)24 b Fo(h)p +FF(test)p Fo(i)e(h)p FF(expression)558 197 y FA(1)579 +190 y Fo(i)h(h)p FF(expression)841 197 y FA(2)861 190 +y Fo(i)h Fz(:)8 b(:)g(:)e Fw(\))757 b FF(syn)o(tax)37 +272 y Fw(While)20 b FF(ev)m(aluates)g(the)g Fo(h)p FF(expression)p +Fo(i)p FF(s)g(un)o(til)h Fo(h)p FF(test)p Fo(i)d FF(returns)i(a)f +(false)h(v)m(alue.)35 b(The)20 b(v)m(alue)h(of)e(a)h +Fw(while)37 328 y FF(construct)15 b(is)h(unsp)q(eci\014ed.)37 +455 y Fw(\(until)24 b Fo(h)p FF(test)p Fo(i)e(h)p FF(expression)558 +462 y FA(1)579 455 y Fo(i)h(h)p FF(expression)841 462 +y FA(2)861 455 y Fo(i)h Fz(:)8 b(:)g(:)e Fw(\))757 b +FF(syn)o(tax)37 536 y Fw(Until)16 b FF(ev)m(aluates)g(the)h +Fo(h)p FF(expression)p Fo(i)p FF(s)f(while)h Fo(h)p FF(test)p +Fo(i)e FF(returns)h(a)f(false)i(v)m(alue.)23 b(The)16 +b(v)m(alue)h(of)f(an)g Fw(unless)37 593 y FF(construct)f(is)h(unsp)q +(eci\014ed.)37 748 y Fy(5)67 b(Program)23 b(structure)37 +852 y FD(Identic)n(al)15 b(to)i(R)311 835 y FA(4)331 +852 y FD(RS.)37 1002 y Fy(6)67 b(Standard)24 b(pro)r(cedures)37 +1107 y FI(6.1)56 b(Bo)r(oleans)37 1196 y FF(In)16 b FB(STk)f +FF(the)g(b)q(o)q(olean)h(v)m(alue)h Fw(#f)e FF(is)g(di\013eren)o(t)h +(from)e(the)i(empt)o(y)e(list,)i(as)f(required)h(b)o(y)f +FD(R)1598 1179 y FA(4)1611 1196 y Fz(RS)s FF(.)37 1317 +y Fw(\(not)24 b FD(obj)7 b Fw(\))1433 b FF(pro)q(cedure)37 +1373 y Fw(\(boolean?)23 b FD(obj)7 b Fw(\))1314 b FF(pro)q(cedure)37 +1454 y FD(Identic)n(al)15 b(to)i(R)311 1438 y FA(4)331 +1454 y FD(RS.)37 1588 y FI(6.2)56 b(Equiv)m(alence)16 +b(predicates)37 1740 y Fw(\(eqv?)24 b FD(obj)239 1747 +y FA(1)282 1740 y FD(obj)340 1747 y FA(2)360 1740 y Fw(\))1295 +b FF(pro)q(cedure)37 1815 y FB(STk)16 b FF(extends)h(the)f +Fw(eqv?)g FF(predicate)h(de\014ned)g(in)g(the)g FD(R)1026 +1798 y FA(4)1038 1815 y Fz(RS)h FF(to)e(tak)o(e)f(k)o(eyw)o(ords)h(in)o +(to)g(accoun)o(t:)22 b(if)16 b FD(obj)1855 1822 y FA(1)37 +1865 y FF(and)g FD(obj)184 1872 y FA(2)219 1865 y FF(are)f(b)q(oth)g(k) +o(eyw)o(ords,)f(the)h Fw(eqv?)g FF(predicate)h(will)h(yield)g +Fw(#t)e FF(if)g(and)h(only)f(if)125 1958 y Fv(\(string=?)20 +b(\(keyword->strin)o(g)f(obj1\))343 2007 y(\(keyword->strin)o(g)g +(obj2\)\))735 2057 y Fu(=)-7 b Fp(\))43 b Fv(#t)37 2225 +y Fw(\(eq?)24 b FD(obj)215 2232 y FA(1)258 2225 y FD(obj)316 +2232 y FA(2)336 2225 y Fw(\))1319 b FF(pro)q(cedure)37 +2306 y FB(STk)13 b FF(extends)g(the)g Fw(eq?)f FF(predicate)h +(de\014ned)i(in)e FD(R)898 2290 y FA(4)910 2306 y Fz(RS)i +FF(to)e(tak)o(e)f(k)o(eyw)o(ords)f(in)o(to)i(accoun)o(t.)19 +b(On)13 b(k)o(eyw)o(ords,)37 2363 y Fw(eq?)i FF(b)q(eha)o(v)o(es)h(lik) +o(e)g Fw(eqv?)p FF(.)125 2469 y Fv(\(eq?)21 b(:key)g(:key\))282 +b Fu(=)-7 b Fp(\))43 b Fv(#t)37 2700 y Fw(\(equal?)23 +b FD(obj)286 2707 y FA(1)330 2700 y FD(obj)388 2707 y +FA(2)408 2700 y Fw(\))1247 b FF(pro)q(cedure)37 2782 +y FD(Identic)n(al)15 b(to)i(R)311 2765 y FA(4)331 2782 +y FD(RS.)p eop %%Page: 12 12 -12 11 bop 75 47 a FC(12)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(remq)21 b FB(obj)h(list)t -Fu(\))1297 b FD(pro)q(cedure)75 229 y Fu(\(remv)21 b -FB(obj)h(list)t Fu(\))1297 b FD(pro)q(cedure)75 278 y -Fu(\(remove)20 b FB(obj)i(list)t Fu(\))1254 b FD(pro)q(cedure)75 -355 y(Eac)o(h)10 b(function)g(return)i(a)d(cop)o(y)i(of)e -FB(list)k FD(where)e(all)e(the)i(o)q(ccurences)i(of)d -FB(obj)16 b FD(ha)o(v)o(e)10 b(b)q(een)h(deleted.)18 -b(The)10 b(predicate)75 404 y(used)15 b(to)f(test)g(the)h(presence)h -(of)e FB(obj)20 b FD(in)13 b FB(list)k FD(is)d(resp)q(ectiv)o(ely)h -Fu(eq)p FD(,)e Fu(eqv)g FD(and)h Fu(equal)p FD(.)75 453 -y Fl(Note:)32 b Fs(It)13 b(is)h(not)f(an)g(error)g(if)h -Fl(obj)j Fs(do)q(es)c(not)h(app)q(ear)g(in)f Fl(list)s -Fs(.)153 543 y Ft(\(remq)18 b(1)h('\(1)g(2)g(3\)\))215 -b Fs(=)-6 b Fn(\))19 b Ft(\(2)g(3\))153 589 y(\(remq)f("foo")g -('\("foo")f("bar"\)\))g Fs(=)-6 b Fn(\))19 b Ft(\("foo")e("bar"\))153 -634 y(\(remove)g("foo")h('\("foo")f("bar"\)\))703 680 -y Fs(=)-6 b Fn(\))19 b Ft(\("bar"\))75 891 y Fu(\(list*)i -FB(obj)6 b Fu(\))1350 b FD(pro)q(cedure)75 963 y Fu(list*)18 -b FD(is)g(lik)o(e)g Fu(list)g FD(except)j(that)d(the)i(last)e(argumen)o -(t)g(to)h Fu(list*)f FD(is)g(used)i(as)f(the)g FB(c)n(dr)g -FD(of)f(the)h(last)g(pair)75 1009 y(constructed.)153 -1099 y Ft(\(list*)f(1)h(2)g(3\))294 b Fs(=)-6 b Fn(\))19 -b Ft(\(1)g(2)g(.)g(3\))153 1144 y(\(list*)f(1)h(2)g(3)g('\(4)g(5\)\)) -156 b Fs(=)-6 b Fn(\))19 b Ft(\(1)g(2)g(3)g(4)h(5\))75 -1355 y Fu(\(copy-tree)g FB(obj)6 b Fu(\))1263 b FD(pro)q(cedure)75 -1431 y Fu(Copy-tree)10 b FD(recursiv)o(ely)j(copies)f(trees)i(of)d -(pairs.)18 b(If)11 b Fu(obj)g FD(is)h(not)g(a)g(pair,)f(it)h(is)f -(returned;)j(otherwise)f(the)g(result)75 1481 y(is)k(a)g(new)g(pair)g -(whose)h FB(c)n(ar)e FD(and)h FB(c)n(dr)g FD(are)h(obtained)e(b)o(y)h -(calling)f Fu(copy-tree)f FD(on)i(the)h FB(c)n(ar)e FD(and)h -FB(c)n(dr)g FD(of)g Fu(obj)p FD(,)75 1531 y(resp)q(ectiv)o(ely)m(.)75 -1674 y FG(6.4)56 b(Sym)n(b)r(ols)75 1756 y FD(The)15 -b Fz(STk)g FD(reader)h(can)g(cop)q(e)f(with)g(sym)o(b)q(ols)e(whose)i -(names)f(con)o(tain)h(sp)q(ecial)g(c)o(haracters)i(or)d(letters)i(in)f -(the)75 1806 y(non)k(standard)h(case.)36 b(When)20 b(a)f(sym)o(b)q(ol)f -(is)i(read,)g(the)h(parts)f(enclosed)g(in)f(bars)h(\(\\)p -Fu(|)p FD("\))g(will)e(b)q(e)i(en)o(tered)75 1856 y(v)o(erbatim)12 -b(in)o(to)h(the)h(sym)o(b)q(ol's)d(name.)17 b(The)d(\\)p -Fu(|)p FD(")f(c)o(haracters)i(are)f(not)f(part)h(of)f(the)h(sym)o(b)q -(ol;)d(they)k(only)d(serv)o(e)75 1906 y(to)g(delimit)d(the)j(sequence)i -(of)d(c)o(haracters)j(that)d(m)o(ust)g(b)q(e)h(en)o(tered)i(\\as)d -(is".)17 b(In)12 b(order)g(to)g(main)o(tain)d(read-write)75 -1956 y(in)o(v)n(ariance,)j(sym)o(b)q(ols)f(con)o(taining)h(suc)o(h)h -(sequences)j(of)c(sp)q(ecial)h(c)o(haracters)h(will)e(b)q(e)h(written)g -(b)q(et)o(w)o(een)h(a)f(pair)75 2005 y(of)g(\\)p Fu(|)p -FD(")153 2107 y Ft('|x|)470 b Fs(=)-6 b Fn(\))19 b Ft(x)153 -2152 y(\(string->sy)o(mb)o(ol)d("X"\))156 b Fs(=)-6 b -Fn(\))19 b Ft(|X|)153 2198 y(\(symbol->st)o(ri)o(ng)d('|X|\))136 -b Fs(=)-6 b Fn(\))19 b Ft("X")153 2244 y('|a)39 b(b|)411 -b Fs(=)-6 b Fn(\))19 b Ft(|a)39 b(b|)153 2289 y('a|B|c)430 -b Fs(=)-6 b Fn(\))19 b Ft(|aBc|)153 2335 y(\(write)f('|FoO|\))272 -b Fs(=)-6 b Fn(\))19 b Ft(writes)e(the)i(string)e("|FoO|")153 -2381 y(\(display)g('|FoO|\))233 b Fs(=)-6 b Fn(\))19 -b Ft(writes)e(the)i(string)e("FoO")75 2529 y Fl(Note:)53 -b Fs(This)19 b(notation)h(has)e(b)q(een)h(in)o(tro)q(duced)h(b)q -(ecause)g Fl(R)1014 2513 y Fr(4)1025 2529 y Fk(RS)g Fs(states)f(that)f -(case)h(m)o(ust)f(not)g(b)q(e)h(signi\014can)o(t)i(in)75 -2579 y(sym)o(b)q(ols)14 b(whereas)f(the)g(Tk)g(to)q(olkit)h(is)f(case)g -(signi\014can)o(t)j(\(or)c(more)h(precisely)i(thinks)f(it)f(runs)g(o)o -(v)o(er)g(Tcl)g(whic)o(h)h(is)f(case)75 2629 y(signi\014can)o(t\).)19 -b(Ho)o(w)o(ev)o(er,)13 b(sym)o(b)q(ols)h(con)o(taining)i(the)d(c)o -(haracter)h(\\)p Ft(|)p Fs(")f(itself)h(still)h(can't)e(b)q(e)g(read)g -(in.)75 2743 y Fu(\(symbol?)20 b FB(obj)6 b Fu(\))1307 -b FD(pro)q(cedure)75 2819 y(Returns)15 b Fu(#t)e FD(if)g -FB(obj)20 b FD(is)14 b(a)f(sym)o(b)q(ol,)f(otherwise)j(returns)g -Fu(#f)p FD(.)p eop +12 11 bop 37 45 a FE(12)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FI(6.3)56 b(P)n(airs)19 b(and)h(lists)37 +343 y Fw(\(pair?)k FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 +399 y Fw(\(cons)24 b FD(obj)239 406 y FA(1)282 399 y +FD(obj)340 406 y FA(2)360 399 y Fw(\))1295 b FF(pro)q(cedure)37 +455 y Fw(\(car)24 b FD(p)n(air)5 b Fw(\))1416 b FF(pro)q(cedure)37 +512 y Fw(\(cdr)24 b FD(p)n(air)5 b Fw(\))1416 b FF(pro)q(cedure)37 +568 y Fw(\(set-car!)23 b FD(p)n(air)h(obj)7 b Fw(\))1213 +b FF(pro)q(cedure)37 625 y Fw(\(set-cdr!)23 b FD(p)n(air)h(obj)7 +b Fw(\))1213 b FF(pro)q(cedure)37 681 y Fw(\(caar)24 +b FD(p)n(air)5 b Fw(\))1392 b FF(pro)q(cedure)37 738 +y Fw(\(cadr)24 b FD(p)n(air)5 b Fw(\))1392 b FF(pro)q(cedure)150 +781 y Fw(.)150 798 y(.)150 815 y(.)1771 781 y FF(.)1771 +798 y(.)1771 815 y(.)37 871 y Fw(\(cdddar)23 b FD(p)n(air)5 +b Fw(\))1345 b FF(pro)q(cedure)37 927 y Fw(\(cddddr)23 +b FD(p)n(air)5 b Fw(\))1345 b FF(pro)q(cedure)37 984 +y Fw(\(null?)24 b FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 +1040 y Fw(\(list?)24 b FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 +1097 y Fw(\(list)24 b FD(obj)30 b Fz(:)8 b(:)g(:)e Fw(\))1325 +b FF(pro)q(cedure)37 1153 y Fw(\(length)23 b FD(list)t +Fw(\))1363 b FF(pro)q(cedure)37 1210 y Fw(\(append)23 +b FD(list)h Fz(:)8 b(:)g(:)d Fw(\))1283 b FF(pro)q(cedure)37 +1291 y FD(Identic)n(al)15 b(to)i(R)311 1275 y FA(4)331 +1291 y FD(RS.)37 1419 y Fw(\(append!)23 b FD(list)g(.)7 +b(.)g(.)g Fw(\))1257 b FF(pro)q(cedure)37 1494 y(Returns)15 +b(a)f(list)i(consisting)f(of)f(the)g(elemen)o(ts)h(of)f(the)h(\014rst)f +FD(list)k FF(follo)o(w)o(ed)c(b)o(y)g(the)h(elemen)o(ts)g(of)f(the)g +(other)37 1543 y(lists,)i(as)g(with)f Fw(append)p FF(.)20 +b(The)c(di\013erenece)h(with)f Fw(append)e FF(is)i(that)f(the)h +(argumen)o(ts)e(are)h FD(change)n(d)h FF(rather)37 1593 +y(than)g FD(c)n(opie)n(d)p FF(.)168 1687 y Fv(\(append!)k('\(1)i(2\))f +('\(3)g(4\))g('\(5)h(6\)\))343 1737 y Fu(=)-7 b Fp(\))21 +b Fv('\(1)g(2)h(3)g(4)f(5)h(6\))168 1786 y(\(let)f(\(\(l1)g('\(1)g +(2\)\))299 1836 y(\(l2)g('\(3)g(4\)\))299 1886 y(\(l3)g('\(5)g(6\)\)\)) +212 1936 y(\(append!)f(l1)h(l2)h(l3\))212 1986 y(\(list)f(l1)g(l2)g +(l3\)\))343 2036 y Fu(=)-7 b Fp(\))21 b Fv(\(\(1)g(2)h(3)g(4)f(5)h(6\)) +f(\(3)h(4)f(5)h(6\))f(\(5)g(6\)\))37 2254 y Fw(\(reverse)i +FD(list)t Fw(\))1339 b FF(pro)q(cedure)37 2311 y Fw(\(list-tail)23 +b FD(list)g Fz(k)q Fw(\))1247 b FF(pro)q(cedure)37 2367 +y Fw(\(list-ref)23 b FD(list)g Fz(k)q Fw(\))1271 b FF(pro)q(cedure)37 +2424 y Fw(\(memq)24 b FD(obj)g(list)t Fw(\))1328 b FF(pro)q(cedure)37 +2480 y Fw(\(memv)24 b FD(obj)g(list)t Fw(\))1328 b FF(pro)q(cedure)37 +2537 y Fw(\(member)23 b FD(obj)h(list)t Fw(\))1281 b +FF(pro)q(cedure)37 2593 y Fw(\(assq)24 b FD(obj)g(alist)t +Fw(\))1305 b FF(pro)q(cedure)37 2650 y Fw(\(assv)24 b +FD(obj)g(alist)t Fw(\))1305 b FF(pro)q(cedure)37 2706 +y Fw(\(assoc)24 b FD(obj)f(alist)t Fw(\))1282 b FF(pro)q(cedure)37 +2787 y FD(Identic)n(al)15 b(to)i(R)311 2771 y FA(4)331 +2787 y FD(RS.)p eop %%Page: 13 13 -13 12 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(13)p 75 64 1763 2 v 153 179 a Ft(\(symbol?)17 b('foo\))273 -b Fs(=)-6 b Fn(\))39 b Ft(#t)153 224 y(\(symbol?)17 b(\(car)h('\(a)h -(b\)\)\))116 b Fs(=)-6 b Fn(\))39 b Ft(#t)153 270 y(\(symbol?)17 -b("bar"\))253 b Fs(=)-6 b Fn(\))39 b Ft(#f)153 316 y(\(symbol?)17 -b('nil\))273 b Fs(=)-6 b Fn(\))39 b Ft(#t)153 361 y(\(symbol?)17 -b('\(\)\))293 b Fs(=)-6 b Fn(\))39 b Ft(#f)153 407 y(\(symbol?)17 -b(#f\))313 b Fs(=)-6 b Fn(\))39 b Ft(#f)153 453 y(\(symbol?)17 -b(:key\))273 b Fs(=)-6 b Fn(\))39 b Ft(#f)75 632 y Fu(\(symbol->string) -19 b FB(symb)n(ol)t Fu(\))1089 b FD(pro)q(cedure)75 682 -y Fu(\(string->symbol)19 b FB(string)t Fu(\))1105 b FD(pro)q(cedure)75 -755 y FB(Identic)n(al)15 b(to)g(R)325 740 y Fy(4)344 -755 y FB(RS.)75 853 y Fu(\(gensym)o(\))1409 b FD(pro)q(cedure)75 -903 y Fu(\(gensym)20 b FB(pr)n(e\014x)5 b Fu(\))1285 -b FD(pro)q(cedure)75 972 y Fu(Gensym)11 b FD(creates)k(a)d(new)h(sym)o -(b)q(ol.)j(The)d(prin)o(t)f(name)g(of)g(the)h(generated)h(sym)o(b)q(ol) -c(consists)k(of)e(a)g(pre\014x)h(\(whic)o(h)75 1018 y(defaults)g(to)g -Fu("G")p FD(\))g(follo)o(w)o(ed)e(b)o(y)i(the)h(decimal)d(represen)o -(tation)k(of)d(a)h(n)o(um)o(b)q(er.)k(If)c FB(pr)n(e\014x)18 -b FD(is)13 b(sp)q(eci\014ed,)i(it)d(m)o(ust)75 1064 y(b)q(e)j(a)e -(string.)153 1138 y Ft(\(gensym\))350 1183 y Fs(=)-6 -b Fn(\))19 b Ft(|G100|)153 1229 y(\(gensym)e("foo-"\))350 -1275 y Fs(=)-6 b Fn(\))19 b Ft(foo-101)75 1458 y FG(6.5)56 -b(Num)n(b)r(ers)75 1535 y FD(The)18 b(only)g(n)o(um)o(b)q(ers)f -(recognized)i(b)o(y)f Fz(STk)g FD(are)h(in)o(tegers)f(\(with)g -(arbitrary)g(precision\))g(and)g(reals)g(\(imple-)75 -1584 y(men)o(ted)13 b(as)h(C)g Fu(double)21 b(float)p -FD(s\).)75 1688 y Fu(\(number?)f FB(obj)6 b Fu(\))1307 -b FD(pro)q(cedure)75 1762 y(Returns)15 b Fu(#t)e FD(if)g -FB(obj)20 b FD(is)14 b(a)f(n)o(um)o(b)q(er,)g(otherwise)i(returns)g -Fu(#f)p FD(.)75 1860 y Fu(\(complex?)20 b FB(obj)6 b -Fu(\))1285 b FD(pro)q(cedure)75 1933 y(Returns)15 b(the)f(same)f -(result)i(as)f FB(numb)n(er?)5 b FD(.)18 b(Note)d(that)f(complex)e(n)o -(um)o(b)q(ers)i(are)g(not)g(implemen)o(ted.)75 2031 y -Fu(\(real?)21 b FB(obj)6 b Fu(\))1350 b FD(pro)q(cedure)75 -2105 y(Returns)15 b Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 -b(a)f(\015oat)h(n)o(um)o(b)q(er,)f(otherwise)i(returns)g -Fu(#f)p FD(.)75 2203 y Fu(\(rational?)20 b FB(obj)6 b -Fu(\))1263 b FD(pro)q(cedure)75 2276 y(Returns)15 b(the)f(same)f -(result)i(as)f FB(numb)n(er?)5 b FD(.)18 b(Note)d(that)f(rational)e(n)o -(um)o(b)q(ers)i(are)g(not)g(implemen)o(ted.)75 2375 y -Fu(\(integer?)20 b FB(obj)6 b Fu(\))1285 b FD(pro)q(cedure)75 -2448 y(Returns)10 b Fu(#t)g FD(if)e FB(obj)16 b FD(is)9 -b(an)h(in)o(teger,)g(otherwise)h(returns)g Fu(#f)p FD(.)16 -b Fl(Note:)28 b Fs(The)9 b Fj(STk)g Fs(in)o(terpreter)h(distinguis)q -(hes)i(b)q(et)o(w)o(een)75 2498 y(in)o(tegers)i(whic)o(h)g(\014t)g(in)g -(a)f(C)g Ft(long)18 b(int)12 b Fs(\(min)o(us)i(8)f(bits\))h(and)g(in)o -(tegers)g(of)f(arbitrary)i(length)g(\(ak)n(a)e(\\bign)o(ums"\).)20 -b(This)75 2548 y(should)15 b(b)q(e)e(transparen)o(t)h(to)f(the)g(user,) -g(though.)75 2646 y Fu(\(exact?)20 b Fx(z)r Fu(\))1367 -b FD(pro)q(cedure)75 2696 y Fu(\(inexact?)20 b Fx(z)r -Fu(\))1323 b FD(pro)q(cedure)75 2769 y(In)18 b(this)g(implemen)o(tati)o -(on,)e(in)o(tegers)i(\(C)g Fu(long)j(int)c FD(or)h(\\bign)o(ums"\))e -(are)i(exact)h(n)o(um)o(b)q(ers)e(and)h(\015oats)g(are)75 -2819 y(inexact.)p eop +13 12 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(13)p 37 64 1838 2 v 37 190 a Fw(\(remq)24 b FD(obj)g(list)t +Fw(\))1328 b FF(pro)q(cedure)37 247 y Fw(\(remv)24 b +FD(obj)g(list)t Fw(\))1328 b FF(pro)q(cedure)37 303 y +Fw(\(remove)23 b FD(obj)h(list)t Fw(\))1281 b FF(pro)q(cedure)37 +385 y(Eac)o(h)18 b(function)g(return)f(a)g(cop)o(y)g(of)g +FD(list)k FF(where)c(all)h(the)g(o)q(ccurences)g(of)f +FD(obj)24 b FF(ha)o(v)o(e)17 b(b)q(een)h(deleted.)28 +b(The)37 441 y(predicate)17 b(used)e(to)g(test)g(the)g(presence)h(of)f +FD(obj)22 b FF(in)16 b FD(list)i FF(is)e(resp)q(ectiv)o(ely)h +Fw(eq)p FF(,)d Fw(eqv)h FF(and)h Fw(equal)p FF(.)37 493 +y Fn(Note:)37 b Fu(It)14 b(is)g(not)g(an)f(error)i(if)e +Fn(obj)20 b Fu(do)q(es)15 b(not)e(app)q(ear)i(in)e Fn(list)s +Fu(.)125 588 y Fv(\(remq)20 b(1)i('\(1)f(2)h(3\)\))239 +b Fu(=)-7 b Fp(\))22 b Fv(\(2)f(3\))125 638 y(\(remq)f("foo")h +('\("foo")g("bar"\)\))f Fu(=)-7 b Fp(\))22 b Fv(\("foo")e("bar"\))125 +688 y(\(remove)g("foo")h('\("foo")f("bar"\)\))735 738 +y Fu(=)-7 b Fp(\))22 b Fv(\("bar"\))37 960 y Fw(\(last-pair)h +FD(list)t Fw(\))1291 b FF(pro)q(cedure)37 1035 y(Returns)16 +b(the)g(last)f(pair)g(of)g FD(list)584 1018 y FA(2)603 +1035 y FF(.)125 1130 y Fv(\(last-pair)k('\(1)j(2)f(3\)\))343 +1180 y Fu(=)-7 b Fp(\))21 b Fv(3)125 1230 y(\(last-pair)e('\(1)j(2)f(.) +h(3\)\))343 1280 y Fu(=)-7 b Fp(\))21 b Fv(\(2)h(.)f(3\))37 +1502 y Fw(\(list*)j FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 +1577 y Fw(list*)16 b FF(is)g(lik)o(e)h Fw(list)e FF(except)h(that)f +(the)h(last)f(argumen)o(t)g(to)g Fw(list*)g FF(is)i(used)f(as)f(the)h +FD(c)n(dr)g FF(of)f(the)h(last)g(pair)37 1627 y(constructed.)125 +1722 y Fv(\(list*)k(1)i(2)f(3\))327 b Fu(=)-7 b Fp(\))22 +b Fv(\(1)f(2)h(.)f(3\))125 1772 y(\(list*)f(1)i(2)f(3)h('\(4)f(5\)\)) +174 b Fu(=)-7 b Fp(\))22 b Fv(\(1)f(2)h(3)f(4)h(5\))37 +1994 y Fw(\(copy-tree)h FD(obj)7 b Fw(\))1290 b FF(pro)q(cedure)37 +2076 y Fw(Copy-tree)14 b FF(recursiv)o(ely)j(copies)f(trees)f(of)g +(pairs.)20 b(If)c Fw(obj)e FF(is)i(not)f(a)g(pair,)g(it)g(is)h +(returned;)f(otherwise)h(the)37 2132 y(result)g(is)g(a)f(new)g(pair)g +(whose)g FD(c)n(ar)h FF(and)f FD(c)n(dr)g FF(are)g(obtained)h(b)o(y)f +(calling)h Fw(copy-tree)e FF(on)h(the)h FD(c)n(ar)f FF(and)g +FD(c)n(dr)37 2189 y FF(of)g Fw(obj)p FF(,)g(resp)q(ectiv)o(ely)l(.)37 +2327 y FI(6.4)56 b(Sym)n(b)r(ols)37 2416 y FF(The)20 +b FB(STk)f FF(reader)g(can)h(cop)q(e)g(with)f(sym)o(b)q(ols)h(whose)f +(names)h(con)o(tain)f(sp)q(ecial)i(c)o(haracters)e(or)g(letters)37 +2473 y(in)g(the)f(non)g(standard)f(case.)28 b(When)18 +b(a)g(sym)o(b)q(ol)g(is)g(read,)g(the)g(parts)f(enclosed)i(in)g(bars)e +(\(\\)p Fw(|)p FF("\))g(will)i(b)q(e)37 2529 y(en)o(tered)h(v)o +(erbatim)e(in)o(to)h(the)g(sym)o(b)q(ol's)f(name.)31 +b(The)19 b(\\)p Fw(|)p FF(")f(c)o(haracters)g(are)g(not)h(part)f(of)g +(the)h(sym)o(b)q(ol;)37 2586 y(they)13 b(only)h(serv)o(e)f(to)f +(delimit)j(the)e(sequence)h(of)e(c)o(haracters)g(that)h(m)o(ust)f(b)q +(e)i(en)o(tered)f(\\as)f(is".)19 b(In)14 b(order)f(to)37 +2642 y(main)o(tain)k(read-write)g(in)o(v)m(ariance,)h(sym)o(b)q(ols)e +(con)o(taining)i(suc)o(h)e(sequences)i(of)e(sp)q(ecial)i(c)o(haracters) +d(will)37 2699 y(b)q(e)h(written)g(b)q(et)o(w)o(een)f(a)g(pair)h(of)e +(\\)p Fw(|)p FF(")p 37 2745 735 2 v 89 2771 a Ft(2)107 +2787 y Fq(Last-pair)9 b Fs(w)o(as)k(a)g(standard)h(pro)q(cedure)g(in)g +Fr(R)813 2771 y Ft(3)824 2787 y Fj(RS)r Fs(.)p eop %%Page: 14 14 -14 13 bop 75 47 a FC(14)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(=)21 b Fx(z)159 185 y Fy(1)200 -179 y Fx(z)219 185 y Fy(2)260 179 y Fx(z)279 185 y Fy(3)320 -179 y Fx(:)7 b(:)g(:)e Fu(\))1262 b FD(pro)q(cedure)75 -229 y Fu(\(<)21 b Fx(x)164 235 y Fy(1)205 229 y Fx(x)229 -235 y Fy(2)269 229 y Fx(x)293 235 y Fy(3)333 229 y Fx(:)7 -b(:)g(:)e Fu(\))1249 b FD(pro)q(cedure)75 278 y Fu(\(>)21 -b Fx(x)164 284 y Fy(1)205 278 y Fx(x)229 284 y Fy(2)269 -278 y Fx(x)293 284 y Fy(3)333 278 y Fx(:)7 b(:)g(:)e -Fu(\))1249 b FD(pro)q(cedure)75 328 y Fu(\(<=)21 b Fx(x)186 -334 y Fy(1)226 328 y Fx(x)250 334 y Fy(2)290 328 y Fx(x)314 -334 y Fy(3)355 328 y Fx(:)7 b(:)g(:)e Fu(\))1227 b FD(pro)q(cedure)75 -378 y Fu(\(>=)21 b Fx(x)186 384 y Fy(1)226 378 y Fx(x)250 -384 y Fy(2)290 378 y Fx(x)314 384 y Fy(3)355 378 y Fx(:)7 -b(:)g(:)e Fu(\))1227 b FD(pro)q(cedure)75 428 y Fu(\(zero?)21 -b FB(z)5 b Fu(\))1387 b FD(pro)q(cedure)75 478 y Fu(\(positive?)20 -b FB(z)5 b Fu(\))1300 b FD(pro)q(cedure)75 527 y Fu(\(negative?)20 -b FB(z)5 b Fu(\))1300 b FD(pro)q(cedure)75 577 y Fu(\(odd?)21 -b FB(z)5 b Fu(\))1409 b FD(pro)q(cedure)75 627 y Fu(\(even?)21 -b FB(z)5 b Fu(\))1387 b FD(pro)q(cedure)75 677 y Fu(\(max)21 -b Fx(x)208 683 y Fy(1)248 677 y Fx(x)272 683 y Fy(2)312 -677 y Fx(:)7 b(:)g(:)f Fu(\))1269 b FD(pro)q(cedure)75 -727 y Fu(\(min)21 b Fx(x)208 733 y Fy(1)248 727 y Fx(x)272 -733 y Fy(2)312 727 y Fx(:)7 b(:)g(:)f Fu(\))1269 b FD(pro)q(cedure)75 -777 y Fu(\(+)21 b Fx(z)159 783 y Fy(1)200 777 y Fx(:)7 -b(:)g(:)e Fu(\))1382 b FD(pro)q(cedure)75 826 y Fu(\(*)21 -b Fx(z)159 832 y Fy(1)200 826 y Fx(:)7 b(:)g(:)e Fu(\))1382 -b FD(pro)q(cedure)75 876 y Fu(\(-)21 b Fx(z)159 882 y -Fy(1)200 876 y Fx(z)219 882 y Fy(2)238 876 y Fu(\))1399 -b FD(pro)q(cedure)75 926 y Fu(\(-)21 b Fx(z)s Fu(\))1475 -b FD(pro)q(cedure)75 976 y Fu(\(-)21 b Fx(z)159 982 y -Fy(1)200 976 y Fx(z)219 982 y Fy(2)260 976 y Fx(:)7 b(:)g(:)e -Fu(\))1322 b FD(pro)q(cedure)75 1026 y Fu(\(/)21 b Fx(z)159 -1032 y Fy(1)200 1026 y Fx(z)219 1032 y Fy(2)238 1026 -y Fu(\))1399 b FD(pro)q(cedure)75 1075 y Fu(\(/)21 b -Fx(z)s Fu(\))1475 b FD(pro)q(cedure)75 1125 y Fu(\(/)21 -b Fx(z)159 1131 y Fy(1)200 1125 y Fx(z)219 1131 y Fy(2)260 -1125 y Fx(:)7 b(:)g(:)e Fu(\))1322 b FD(pro)q(cedure)75 -1175 y Fu(\(abs)21 b FB(x)5 b Fu(\))1429 b FD(pro)q(cedure)75 -1225 y Fu(\(quotient)20 b Fx(n)318 1231 y Fy(1)358 1225 -y Fx(n)383 1231 y Fy(2)402 1225 y Fu(\))1235 b FD(pro)q(cedure)75 -1275 y Fu(\(remainder)20 b Fx(n)340 1281 y Fy(1)380 1275 -y Fx(n)405 1281 y Fy(2)424 1275 y Fu(\))1213 b FD(pro)q(cedure)75 -1324 y Fu(\(modulo)20 b Fx(n)274 1330 y Fy(1)315 1324 -y Fx(n)340 1330 y Fy(2)358 1324 y Fu(\))1279 b FD(pro)q(cedure)75 -1374 y Fu(\(gcd)21 b Fx(n)209 1380 y Fy(1)249 1374 y -Fx(:)7 b(:)g(:)f Fu(\))1332 b FD(pro)q(cedure)75 1424 -y Fu(\(lcm)21 b Fx(n)209 1430 y Fy(1)249 1424 y Fx(:)7 -b(:)g(:)f Fu(\))1332 b FD(pro)q(cedure)75 1500 y FB(Identic)n(al)15 -b(to)g(R)325 1485 y Fy(4)344 1500 y FB(RS.)75 1623 y -Fu(\(numerator)20 b Fx(q)q Fu(\))1302 b FD(pro)q(cedure)75 -1673 y Fu(\(denominator)19 b Fx(q)q Fu(\))1259 b FD(pro)q(cedure)75 -1749 y(Not)14 b(implemen)o(ted.)75 1872 y Fu(\(floor)21 -b FB(x)5 b Fu(\))1385 b FD(pro)q(cedure)75 1922 y Fu(\(ceiling)20 -b FB(x)5 b Fu(\))1342 b FD(pro)q(cedure)75 1972 y Fu(\(truncate)20 -b FB(x)5 b Fu(\))1320 b FD(pro)q(cedure)75 2022 y Fu(\(round)21 -b FB(x)5 b Fu(\))1385 b FD(pro)q(cedure)75 2098 y FB(Identic)n(al)15 -b(to)g(R)325 2083 y Fy(4)344 2098 y FB(RS.)75 2221 y -Fu(\(rationalize)k FB(x)j(y)t Fu(\))1214 b FD(pro)q(cedure)75 -2297 y(not)14 b(y)o(et)g(implemen)o(ted.)75 2420 y Fu(\(exp)21 -b Fx(z)r Fu(\))1432 b FD(pro)q(cedure)75 2470 y Fu(\(log)21 -b Fx(z)r Fu(\))1432 b FD(pro)q(cedure)75 2520 y Fu(\(sin)21 -b Fx(z)r Fu(\))1432 b FD(pro)q(cedure)75 2570 y Fu(\(cos)21 -b Fx(z)r Fu(\))1432 b FD(pro)q(cedure)75 2620 y Fu(\(tan)21 -b Fx(z)r Fu(\))1432 b FD(pro)q(cedure)75 2669 y Fu(\(asin)21 -b Fx(z)r Fu(\))1410 b FD(pro)q(cedure)75 2719 y Fu(\(acos)21 -b Fx(z)r Fu(\))1410 b FD(pro)q(cedure)75 2769 y Fu(\(atan)21 -b Fx(z)r Fu(\))1410 b FD(pro)q(cedure)75 2819 y Fu(\(atan)21 -b Fx(y)i(x)p Fu(\))1364 b FD(pro)q(cedure)p eop +14 13 bop 37 45 a FE(14)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv('|x|)522 b Fu(=)-7 b Fp(\))22 +b Fv(x)125 240 y(\(string->symbol)c("X"\))174 b Fu(=)-7 +b Fp(\))22 b Fv(|X|)125 290 y(\(symbol->string)c('|X|\))152 +b Fu(=)-7 b Fp(\))22 b Fv("X")125 340 y('|a)43 b(b|)457 +b Fu(=)-7 b Fp(\))22 b Fv(|a)43 b(b|)125 390 y('a|B|c)478 +b Fu(=)-7 b Fp(\))22 b Fv(|aBc|)125 439 y(\(write)e('|FoO|\))304 +b Fu(=)-7 b Fp(\))22 b Fv(writes)e(the)h(string)g("|FoO|")125 +489 y(\(display)f('|FoO|\))260 b Fu(=)-7 b Fp(\))22 b +Fv(writes)e(the)h(string)g("FoO")37 639 y Fn(Note:)44 +b Fu(This)16 b(notation)f(has)g(b)q(een)i(in)o(tro)q(duced)g(b)q +(ecause)g Fn(R)1014 624 y Fm(4)1026 639 y Fl(RS)h Fu(states)f(that)f +(case)h(m)o(ust)d(not)i(b)q(e)g(signi\014can)o(t)f(in)37 +695 y(sym)o(b)q(ols)f(whereas)i(the)f(Tk)g(to)q(olkit)e(is)i(case)g +(signi\014can)o(t)g(\(or)f(more)g(precisely)i(thinks)e(it)h(runs)g(o)o +(v)o(er)g(Tcl)g(whic)o(h)f(is)37 752 y(case)h(signi\014can)o(t\).)j(Ho) +o(w)o(ev)o(er,)c(sym)o(b)q(ols)e(con)o(taining)h(the)i(c)o(haracter)g +(\\)p Fv(|)p Fu(")e(itself)h(still)f(can't)g(b)q(e)i(read)f(in.)37 +868 y Fw(\(symbol?)23 b FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 +948 y(Returns)16 b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 +b(a)g(sym)o(b)q(ol,)g(otherwise)h(returns)f Fw(#f)p FF(.)125 +1041 y Fv(\(symbol?)20 b('foo\))304 b Fu(=)-7 b Fp(\))43 +b Fv(#t)125 1091 y(\(symbol?)20 b(\(car)h('\(a)g(b\)\)\))130 +b Fu(=)-7 b Fp(\))43 b Fv(#t)125 1141 y(\(symbol?)20 +b("bar"\))282 b Fu(=)-7 b Fp(\))43 b Fv(#f)125 1190 y(\(symbol?)20 +b('nil\))304 b Fu(=)-7 b Fp(\))43 b Fv(#t)125 1240 y(\(symbol?)20 +b('\(\)\))326 b Fu(=)-7 b Fp(\))43 b Fv(#f)125 1290 y(\(symbol?)20 +b(#f\))348 b Fu(=)-7 b Fp(\))43 b Fv(#f)125 1340 y(\(symbol?)20 +b(:key\))304 b Fu(=)-7 b Fp(\))43 b Fv(#f)37 1544 y Fw +(\(symbol->string)22 b FD(symb)n(ol)5 b Fw(\))1099 b +FF(pro)q(cedure)37 1600 y Fw(\(string->symbol)22 b FD(string)t +Fw(\))1118 b FF(pro)q(cedure)37 1680 y FD(Identic)n(al)15 +b(to)i(R)311 1664 y FA(4)331 1680 y FD(RS.)37 1791 y +Fw(\(gensym\))1450 b FF(pro)q(cedure)37 1847 y Fw(\(gensym)23 +b FD(pr)n(e\014x)5 b Fw(\))1314 b FF(pro)q(cedure)37 +1921 y Fw(Gensym)17 b FF(creates)g(a)f(new)i(sym)o(b)q(ol.)26 +b(The)17 b(prin)o(t)h(name)f(of)g(the)g(generated)g(sym)o(b)q(ol)h +(consists)f(of)g(a)f(pre\014x)37 1971 y(\(whic)o(h)23 +b(defaults)f(to)e Fw("G")p FF(\))h(follo)o(w)o(ed)h(b)o(y)f(the)h +(decimal)h(represen)o(tation)f(of)f(a)g(n)o(um)o(b)q(er.)39 +b(If)22 b FD(pr)n(e\014x)k FF(is)37 2020 y(sp)q(eci\014ed,)17 +b(it)f(m)o(ust)f(b)q(e)g(a)g(string.)125 2102 y Fv(\(gensym\))343 +2152 y Fu(=)-7 b Fp(\))21 b Fv(|G100|)125 2202 y(\(gensym)f("foo-"\)) +343 2252 y Fu(=)-7 b Fp(\))21 b Fv(foo-101)37 2449 y +FI(6.5)56 b(Num)n(b)r(ers)37 2535 y FF(The)18 b(only)f(n)o(um)o(b)q +(ers)h(recognized)g(b)o(y)f FB(STk)f FF(are)h(in)o(tegers)g(\(with)g +(arbitrary)f(precision\))i(and)f(reals)h(\(im-)37 2592 +y(plemen)o(ted)f(as)e(C)g Fw(double)23 b(float)p FF(s\).)37 +2707 y Fw(\(number?)g FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 +2787 y(Returns)16 b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 +b(a)g(n)o(um)o(b)q(er,)g(otherwise)h(returns)f Fw(#f)p +FF(.)p eop %%Page: 15 15 -15 14 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(15)p 75 64 1763 2 v 376 139 1161 2 v 375 185 2 46 v -401 171 a Fl(name)p 515 185 V 49 w(value)p 650 185 V -48 w(alternate)11 b(name)p 951 185 V 960 185 V 57 w(name)p -1100 185 V 49 w(value)p 1235 185 V 48 w(alternate)h(name)p -1536 185 V 376 186 1161 2 v 375 232 2 46 v 420 218 a -Fs(n)o(ul)p 515 232 V 84 w(000)p 650 232 V 158 w(n)o(ull)p -951 232 V 960 232 V 181 w(bs)p 1100 232 V 91 w(010)p -1235 232 V 107 w(bac)o(kspace)p 1536 232 V 375 278 V -418 264 a(soh)p 515 278 V 82 w(001)p 650 278 V 951 278 -V 960 278 V 401 w(h)o(t)p 1100 278 V 91 w(011)p 1235 -278 V 162 w(tab)p 1536 278 V 375 323 V 421 310 a(stx)p -515 323 V 84 w(002)p 650 323 V 951 323 V 960 323 V 402 -w(nl)p 1100 323 V 94 w(012)p 1235 323 V 127 w(newline)p -1536 323 V 375 369 V 420 355 a(etx)p 515 369 V 83 w(003)p -650 369 V 951 369 V 960 369 V 401 w(vt)p 1100 369 V 91 -w(013)p 1235 369 V 1536 369 V 375 415 V 420 401 a(eot)p -515 415 V 84 w(004)p 650 415 V 951 415 V 960 415 V 397 -w(np)p 1100 415 V 88 w(014)p 1235 415 V 152 w(page)p -1536 415 V 375 460 V 416 447 a(enq)p 515 460 V 81 w(005)p -650 460 V 951 460 V 960 460 V 402 w(cr)p 1100 460 V 93 -w(015)p 1235 460 V 138 w(return)p 1536 460 V 375 506 -V 418 492 a(ac)o(k)p 515 506 V 82 w(006)p 650 506 V 951 -506 V 960 506 V 401 w(so)p 1100 506 V 92 w(016)p 1235 -506 V 1536 506 V 375 575 2 70 v 421 538 a(b)q(el)p 515 -575 V 85 w(007)p 650 575 V 159 w(b)q(ell)p 951 575 V -960 575 V 187 w(si)p 1100 575 V 97 w(017)p 1235 575 V -1536 575 V 375 621 2 46 v 421 607 a(dle)p 515 621 V 86 -w(020)p 650 621 V 951 621 V 960 621 V 390 w(can)p 1100 -621 V 80 w(030)p 1235 621 V 1536 621 V 375 666 V 417 -653 a(dc1)p 515 666 V 81 w(021)p 650 666 V 951 666 V -960 666 V 394 w(em)p 1100 666 V 84 w(031)p 1235 666 V -1536 666 V 375 712 V 417 698 a(dc2)p 515 712 V 81 w(022)p -650 712 V 951 712 V 960 712 V 389 w(sub)p 1100 712 V -81 w(032)p 1235 712 V 1536 712 V 375 758 V 417 744 a(dc3)p -515 758 V 81 w(023)p 650 758 V 951 758 V 960 758 V 394 -w(esc)p 1100 758 V 84 w(033)p 1235 758 V 136 w(escap)q(e)p -1536 758 V 375 803 V 417 790 a(dc4)p 515 803 V 81 w(024)p -650 803 V 951 803 V 960 803 V 405 w(fs)p 1100 803 V 95 -w(034)p 1235 803 V 1536 803 V 375 849 V 415 835 a(nak)p -515 849 V 80 w(025)p 650 849 V 951 849 V 960 849 V 401 -w(gs)p 1100 849 V 92 w(035)p 1235 849 V 1536 849 V 375 -895 V 417 881 a(syn)p 515 895 V 82 w(026)p 650 895 V -951 895 V 960 895 V 403 w(rs)p 1100 895 V 94 w(036)p -1235 895 V 1536 895 V 375 964 2 70 v 419 927 a(etb)p -515 964 V 83 w(027)p 650 964 V 951 964 V 960 964 V 400 -w(us)p 1100 964 V 91 w(037)p 1235 964 V 1536 964 V 375 -1033 V 428 996 a(sp)p 515 1033 V 91 w(040)p 650 1033 -V 145 w(space)p 951 1033 V 960 1033 V 1100 1033 V 1235 -1033 V 1536 1033 V 375 1079 2 46 v 421 1065 a(del)p 515 -1079 V 86 w(177)p 650 1079 V 140 w(delete)p 951 1079 -V 960 1079 V 1100 1079 V 1235 1079 V 1536 1079 V 376 -1081 1161 2 v 665 1197 a FD(T)m(able)i(1:)j(V)m(alid)c(c)o(haracter)i -(names)75 1322 y Fu(\(sqrt)21 b Fx(z)r Fu(\))1410 b FD(pro)q(cedure)75 -1372 y Fu(\(expt)21 b Fx(z)225 1378 y Fy(1)265 1372 y -Fx(z)284 1378 y Fy(2)303 1372 y Fu(\))1334 b FD(pro)q(cedure)75 -1446 y FB(Identic)n(al)15 b(to)g(R)325 1431 y Fy(4)344 -1446 y FB(RS.)75 1556 y Fu(\(make-rectangular)j Fx(x)491 -1562 y Fy(1)531 1556 y Fx(x)555 1562 y Fy(2)574 1556 -y Fu(\))1063 b FD(pro)q(cedure)75 1606 y Fu(\(make-polar)20 -b Fx(x)361 1612 y Fy(1)401 1606 y Fx(x)425 1612 y Fy(2)443 -1606 y Fu(\))1194 b FD(pro)q(cedure)75 1656 y Fu(\(real-part)20 -b Fx(z)r Fu(\))1301 b FD(pro)q(cedure)75 1706 y Fu(\(imag-part)20 -b Fx(z)r Fu(\))1301 b FD(pro)q(cedure)75 1756 y Fu(\(magnitude)20 -b Fx(z)r Fu(\))1301 b FD(pro)q(cedure)75 1805 y Fu(\(angle)21 -b Fx(z)r Fu(\))1388 b FD(pro)q(cedure)75 1879 y(These)15 -b(pro)q(cedures)h(are)f(not)e(implemen)o(ted)f(since)j(complex)d(n)o -(um)o(b)q(ers)i(are)g(not)g(de\014ned.)75 1989 y Fu(\(exact->inexact)19 -b Fx(z)r Fu(\))1192 b FD(pro)q(cedure)75 2039 y Fu(\(inexact->exact)19 -b Fx(z)r Fu(\))1192 b FD(pro)q(cedure)75 2089 y Fu(\(number->string)19 -b FB(numb)n(er)t Fu(\))1076 b FD(pro)q(cedure)75 2139 -y Fu(\(number->string)19 b FB(numb)n(er)j(r)n(adix)5 -b Fu(\))963 b FD(pro)q(cedure)75 2189 y Fu(\(string->number)19 -b FB(string)t Fu(\))1105 b FD(pro)q(cedure)75 2238 y -Fu(\(string->number)19 b FB(string)i(r)n(adix)5 b Fu(\))993 -b FD(pro)q(cedure)75 2312 y FB(Identic)n(al)15 b(to)g(R)325 -2297 y Fy(4)344 2312 y FB(RS.)75 2435 y FG(6.6)56 b(Characters)75 -2512 y FD(T)m(able)14 b(1)g(giv)o(es)h(the)g(list)f(of)h(allo)o(w)o(ed) -e(c)o(haracter)j(names)e(together)i(with)e(their)h(ASCI)q(I)g(equiv)n -(alen)o(t)f(expressed)75 2562 y(in)f(o)q(ctal.)75 2669 -y Fu(\(char?)21 b FB(obj)6 b Fu(\))1350 b FD(pro)q(cedure)75 -2719 y Fu(\(char=?)20 b FB(char)328 2725 y Fy(1)369 2719 -y FB(char)448 2725 y Fy(2)466 2719 y Fu(\))1171 b FD(pro)q(cedure)75 -2769 y Fu(\(char?)20 b FB(char)328 2825 y Fy(1)369 2819 -y FB(char)448 2825 y Fy(2)466 2819 y Fu(\))1171 b FD(pro)q(cedure)p -eop +15 14 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(15)p 37 64 1838 2 v 37 190 a Fw(\(complex?)23 b FD(obj)7 +b Fw(\))1314 b FF(pro)q(cedure)37 272 y(Returns)16 b(the)g(same)e +(result)i(as)f FD(numb)n(er?)5 b FF(.)20 b(Note)15 b(that)g(complex)h +(n)o(um)o(b)q(ers)f(are)g(not)g(implemen)o(ted.)37 405 +y Fw(\(real?)24 b FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 +487 y(Returns)16 b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 +b(a)g(\015oat)g(n)o(um)o(b)q(er,)g(otherwise)g(returns)g +Fw(#f)p FF(.)37 619 y Fw(\(rational?)23 b FD(obj)7 b +Fw(\))1290 b FF(pro)q(cedure)37 701 y(Returns)16 b(the)g(same)e(result) +i(as)f FD(numb)n(er?)5 b FF(.)20 b(Note)15 b(that)g(rational)g(n)o(um)o +(b)q(ers)g(are)g(not)g(implemen)o(ted.)37 834 y Fw(\(integer?)23 +b FD(obj)7 b Fw(\))1314 b FF(pro)q(cedure)37 916 y(Returns)17 +b Fw(#t)e FF(if)i FD(obj)22 b FF(is)17 b(an)e(in)o(teger,)h(otherwise)g +(returns)g Fw(#f)p FF(.)22 b Fn(Note:)39 b Fu(The)15 +b Fk(STk)f Fu(in)o(terpreter)j(distinguishes)37 972 y(b)q(et)o(w)o(een) +22 b(in)o(tegers)g(whic)o(h)e(\014t)h(in)f(a)g(C)g Fv(long)h(int)f +Fu(\(min)o(us)f(8)h(bits\))h(and)f(in)o(tegers)h(of)f(arbitrary)g +(length)h(\(ak)n(a)37 1029 y(\\bign)o(ums"\).)16 b(This)e(should)g(b)q +(e)g(transparen)o(t)h(to)f(the)h(user,)f(though.)37 1161 +y Fw(\(exact?)23 b Fz(z)s Fw(\))1403 b FF(pro)q(cedure)37 +1218 y Fw(\(inexact?)23 b Fz(z)r Fw(\))1356 b FF(pro)q(cedure)37 +1300 y(In)20 b(this)f(implemen)o(tation,)h(in)o(tegers)f(\(C)f +Fw(long)23 b(int)18 b FF(or)g(\\bign)o(ums"\))h(are)f(exact)g(n)o(um)o +(b)q(ers)h(and)g(\015oats)37 1356 y(are)c(inexact.)37 +1489 y Fw(\(=)24 b Fz(z)130 1496 y FA(1)174 1489 y Fz(z)195 +1496 y FA(2)239 1489 y Fz(z)260 1496 y FA(3)303 1489 +y Fz(:)8 b(:)g(:)e Fw(\))1291 b FF(pro)q(cedure)37 1545 +y Fw(\(<)24 b Fz(x)135 1552 y FA(1)179 1545 y Fz(x)205 +1552 y FA(2)248 1545 y Fz(x)274 1552 y FA(3)318 1545 +y Fz(:)8 b(:)g(:)d Fw(\))1277 b FF(pro)q(cedure)37 1602 +y Fw(\(>)24 b Fz(x)135 1609 y FA(1)179 1602 y Fz(x)205 +1609 y FA(2)248 1602 y Fz(x)274 1609 y FA(3)318 1602 +y Fz(:)8 b(:)g(:)d Fw(\))1277 b FF(pro)q(cedure)37 1658 +y Fw(\(<=)24 b Fz(x)159 1665 y FA(1)203 1658 y Fz(x)229 +1665 y FA(2)272 1658 y Fz(x)298 1665 y FA(3)342 1658 +y Fz(:)8 b(:)g(:)d Fw(\))1253 b FF(pro)q(cedure)37 1715 +y Fw(\(>=)24 b Fz(x)159 1722 y FA(1)203 1715 y Fz(x)229 +1722 y FA(2)272 1715 y Fz(x)298 1722 y FA(3)342 1715 +y Fz(:)8 b(:)g(:)d Fw(\))1253 b FF(pro)q(cedure)37 1771 +y Fw(\(zero?)24 b FD(z)6 b Fw(\))1425 b FF(pro)q(cedure)37 +1828 y Fw(\(positive?)23 b FD(z)6 b Fw(\))1330 b FF(pro)q(cedure)37 +1884 y Fw(\(negative?)23 b FD(z)6 b Fw(\))1330 b FF(pro)q(cedure)37 +1941 y Fw(\(odd?)24 b FD(z)6 b Fw(\))1449 b FF(pro)q(cedure)37 +1997 y Fw(\(even?)24 b FD(z)6 b Fw(\))1425 b FF(pro)q(cedure)37 +2053 y Fw(\(max)24 b Fz(x)183 2060 y FA(1)226 2053 y +Fz(x)252 2060 y FA(2)296 2053 y Fz(:)8 b(:)g(:)e Fw(\))1298 +b FF(pro)q(cedure)37 2110 y Fw(\(min)24 b Fz(x)183 2117 +y FA(1)226 2110 y Fz(x)252 2117 y FA(2)296 2110 y Fz(:)8 +b(:)g(:)e Fw(\))1298 b FF(pro)q(cedure)37 2166 y Fw(\(+)24 +b Fz(z)130 2173 y FA(1)174 2166 y Fz(:)8 b(:)g(:)d Fw(\))1421 +b FF(pro)q(cedure)37 2223 y Fw(\(*)24 b Fz(z)130 2230 +y FA(1)174 2223 y Fz(:)8 b(:)g(:)d Fw(\))1421 b FF(pro)q(cedure)37 +2279 y Fw(\(-)24 b Fz(z)130 2286 y FA(1)174 2279 y Fz(z)195 +2286 y FA(2)215 2279 y Fw(\))1440 b FF(pro)q(cedure)37 +2336 y Fw(\(-)24 b Fz(z)r Fw(\))1523 b FF(pro)q(cedure)37 +2392 y Fw(\(-)24 b Fz(z)130 2399 y FA(1)174 2392 y Fz(z)195 +2399 y FA(2)239 2392 y Fz(:)8 b(:)g(:)d Fw(\))1356 b +FF(pro)q(cedure)37 2449 y Fw(\(/)24 b Fz(z)130 2456 y +FA(1)174 2449 y Fz(z)195 2456 y FA(2)215 2449 y Fw(\))1440 +b FF(pro)q(cedure)37 2505 y Fw(\(/)24 b Fz(z)r Fw(\))1523 +b FF(pro)q(cedure)37 2562 y Fw(\(/)24 b Fz(z)130 2569 +y FA(1)174 2562 y Fz(z)195 2569 y FA(2)239 2562 y Fz(:)8 +b(:)g(:)d Fw(\))1356 b FF(pro)q(cedure)37 2618 y Fw(\(abs)24 +b FD(x)5 b Fw(\))1472 b FF(pro)q(cedure)37 2674 y Fw(\(quotient)23 +b Fz(n)303 2681 y FA(1)347 2674 y Fz(n)374 2681 y FA(2)394 +2674 y Fw(\))1261 b FF(pro)q(cedure)37 2731 y Fw(\(remainder)23 +b Fz(n)327 2738 y FA(1)371 2731 y Fz(n)398 2738 y FA(2)418 +2731 y Fw(\))1237 b FF(pro)q(cedure)37 2787 y Fw(\(modulo)23 +b Fz(n)255 2794 y FA(1)299 2787 y Fz(n)326 2794 y FA(2)346 +2787 y Fw(\))1309 b FF(pro)q(cedure)p eop %%Page: 16 16 -16 15 bop 75 47 a FC(16)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 404 139 1105 2 v 403 185 2 46 v 453 171 -a Fl(Se)n(quenc)n(e)p 649 185 V 649 185 V 321 w(Char)n(acter)e(inserte) -n(d)p 1508 185 V 404 186 1105 2 v 403 232 2 46 v 429 -218 a Ft(\\)p Fs(b)p 649 232 V 205 w(Bac)o(kspace)p 1508 -232 V 403 278 V 429 264 a Ft(\\)p Fs(e)p 649 278 V 209 -w(Escap)q(e)p 1508 278 V 403 323 V 429 310 a Ft(\\)p -Fs(n)p 649 323 V 205 w(Newline)p 1508 323 V 403 369 V -429 355 a Ft(\\)p Fs(t)p 649 369 V 211 w(Horizon)o(tal)j(T)m(ab)p -1508 369 V 403 415 V 429 401 a Ft(\\)p Fs(n)p 649 415 -V 205 w(Carriage)f(Return)p 1508 415 V 403 460 V 429 -447 a Ft(\\)p Fs(0ab)q(c)p 649 460 V 149 w(ASCI)q(I)e(c)o(haracter)i -(with)f(o)q(ctal)h(v)n(alue)h(ab)q(c)p 1508 460 V 403 -506 V 429 492 a Ft(\\)p 649 506 V 47 w Fs(None)e(\(p)q -(ermits)h(to)f(en)o(ter)g(a)g(string)h(on)g(sev)o(eral)g(lines\))p -1508 506 V 403 552 V 429 538 a Ft(\\)p 649 552 -V 86 w()p 1508 552 V 404 553 1105 2 v 659 669 -a FD(T)m(able)f(2:)18 b(String)13 b(escap)q(e)j(sequences)75 -798 y Fu(\(char<=?)k FB(char)350 804 y Fy(1)391 798 y -FB(char)470 804 y Fy(2)488 798 y Fu(\))1149 b FD(pro)q(cedure)75 -848 y Fu(\(char>=?)20 b FB(char)350 854 y Fy(1)391 848 -y FB(char)470 854 y Fy(2)488 848 y Fu(\))1149 b FD(pro)q(cedure)75 -898 y Fu(\(char-ci=?)20 b FB(char)394 904 y Fy(1)434 -898 y FB(char)513 904 y Fy(2)532 898 y Fu(\))1105 b FD(pro)q(cedure)75 -948 y Fu(\(char-ci?)20 b FB(char)394 1003 y Fy(1)434 -997 y FB(char)513 1003 y Fy(2)532 997 y Fu(\))1105 b -FD(pro)q(cedure)75 1047 y Fu(\(char-ci<=?)20 b FB(char)416 -1053 y Fy(1)456 1047 y FB(char)535 1053 y Fy(2)554 1047 -y Fu(\))1083 b FD(pro)q(cedure)75 1097 y Fu(\(char-ci>=?)20 -b FB(char)416 1103 y Fy(1)456 1097 y FB(char)535 1103 -y Fy(2)554 1097 y Fu(\))1083 b FD(pro)q(cedure)75 1147 -y Fu(\(char-alphabetic?)18 b FB(char)t Fu(\))1087 b FD(pro)q(cedure)75 -1197 y Fu(\(char-numeric?)19 b FB(char)t Fu(\))1152 b -FD(pro)q(cedure)75 1246 y Fu(\(char-whitespace?)18 b -FB(char)t Fu(\))1087 b FD(pro)q(cedure)75 1296 y Fu(\(char-upper-case?) -18 b FB(letter)t Fu(\))1071 b FD(pro)q(cedure)75 1346 -y Fu(\(char-lower-case?)18 b FB(letter)t Fu(\))1071 b -FD(pro)q(cedure)75 1396 y Fu(\(char->integer)19 b FB(char)t -Fu(\))1152 b FD(pro)q(cedure)75 1446 y Fu(\(integer->char)19 -b Fx(n)p Fu(\))1210 b FD(pro)q(cedure)75 1495 y Fu(\(char-upcase)19 -b FB(char)t Fu(\))1196 b FD(pro)q(cedure)75 1545 y Fu(\(char-downcase) -19 b FB(char)t Fu(\))1152 b FD(pro)q(cedure)75 1619 y -FB(Identic)n(al)15 b(to)g(R)325 1604 y Fy(4)344 1619 -y FB(RS.)75 1730 y FG(6.7)56 b(Strings)75 1807 y Fz(STk)21 -b FD(string)f(constan)o(ts)i(allo)o(w)d(the)i(insertion)f(of)g -(arbitrary)g(c)o(haracters)j(b)o(y)d(enco)q(ding)h(them)e(as)i(escap)q -(e)75 1857 y(sequences,)c(in)o(tro)q(duced)f(b)o(y)f(a)f(bac)o(kslash)h -(\()p Fu(\\)p FD(\).)21 b(The)16 b(v)n(alid)d(escap)q(e)k(sequences)g -(are)e(sho)o(wn)g(in)g(T)m(able)f(2.)21 b(F)m(or)75 1906 -y(instance,)14 b(the)h(string)153 1989 y Ft("ab\\040c\\nd)o(\\)153 -2035 y(e")75 2167 y FD(is)f(the)g(string)g(consisting)g(of)f(the)i(c)o -(haracters)g Fu(#\\)p FD(a,)e Fu(#\\)p FD(b,)p Fu(#\\)p -FD(space,)g Fu(#\\)p FD(c,)h Fu(#\\)p FD(newline,)f Fu(#\\)p -FD(d)g(and)h Fu(#\\)p FD(e.)75 2271 y Fu(\(string?)20 -b FB(obj)6 b Fu(\))1307 b FD(pro)q(cedure)75 2321 y Fu(\(make-string)19 -b Fx(k)q Fu(\))1256 b FD(pro)q(cedure)75 2371 y Fu(\(make-string)19 -b Fx(k)k FB(char)t Fu(\))1151 b FD(pro)q(cedure)75 2420 -y Fu(\(string)20 b FB(char)i Fx(:)7 b(:)g(:)f Fu(\))1231 -b FD(pro)q(cedure)75 2470 y Fu(\(string-length)19 b FB(string)t -Fu(\))1127 b FD(pro)q(cedure)75 2520 y Fu(\(string-ref)20 -b FB(string)h Fx(k)q Fu(\))1152 b FD(pro)q(cedure)75 -2570 y Fu(\(string-set!)19 b FB(string)j(k)f(char)t Fu(\))1030 -b FD(pro)q(cedure)75 2620 y Fu(\(string=?)20 b FB(string)397 -2626 y Fy(1)437 2620 y FB(string)541 2626 y Fy(2)559 -2620 y Fu(\))1078 b FD(pro)q(cedure)75 2669 y Fu(\(string-ci=?)19 -b FB(string)462 2675 y Fy(1)502 2669 y FB(string)606 -2675 y Fy(2)624 2669 y Fu(\))1013 b FD(pro)q(cedure)75 -2719 y Fu(\(string?)20 b FB(string)397 -2775 y Fy(1)437 2769 y FB(string)541 2775 y Fy(2)559 -2769 y Fu(\))1078 b FD(pro)q(cedure)75 2819 y Fu(\(string<=?)20 -b FB(string)419 2825 y Fy(1)459 2819 y FB(string)563 -2825 y Fy(2)581 2819 y Fu(\))1056 b FD(pro)q(cedure)p -eop +16 15 bop 37 45 a FE(16)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(gcd)24 b Fz(n)184 197 y +FA(1)228 190 y Fz(:)8 b(:)g(:)d Fw(\))1367 b FF(pro)q(cedure)37 +247 y Fw(\(lcm)24 b Fz(n)184 254 y FA(1)228 247 y Fz(:)8 +b(:)g(:)d Fw(\))1367 b FF(pro)q(cedure)37 327 y FD(Identic)n(al)15 +b(to)i(R)311 310 y FA(4)331 327 y FD(RS.)37 433 y Fw(\(numerator)23 +b Fz(q)r Fw(\))1333 b FF(pro)q(cedure)37 489 y Fw(\(denominator)23 +b Fz(q)r Fw(\))1285 b FF(pro)q(cedure)37 569 y(Not)15 +b(implemen)o(ted.)37 675 y Fw(\(floor)24 b FD(x)5 b Fw(\))1424 +b FF(pro)q(cedure)37 731 y Fw(\(ceiling)23 b FD(x)5 b +Fw(\))1377 b FF(pro)q(cedure)37 788 y Fw(\(truncate)23 +b FD(x)5 b Fw(\))1353 b FF(pro)q(cedure)37 844 y Fw(\(round)24 +b FD(x)5 b Fw(\))1424 b FF(pro)q(cedure)37 924 y FD(Identic)n(al)15 +b(to)i(R)311 908 y FA(4)331 924 y FD(RS.)37 1030 y Fw(\(rationalize)23 +b FD(x)h(y)t Fw(\))1236 b FF(pro)q(cedure)37 1110 y(not)15 +b(y)o(et)g(implemen)o(ted.)37 1216 y Fw(\(exp)24 b Fz(z)r +Fw(\))1475 b FF(pro)q(cedure)37 1272 y Fw(\(log)24 b +Fz(z)r Fw(\))1475 b FF(pro)q(cedure)37 1328 y Fw(\(sin)24 +b Fz(z)r Fw(\))1475 b FF(pro)q(cedure)37 1385 y Fw(\(cos)24 +b Fz(z)r Fw(\))1475 b FF(pro)q(cedure)37 1441 y Fw(\(tan)24 +b Fz(z)r Fw(\))1475 b FF(pro)q(cedure)37 1498 y Fw(\(asin)24 +b Fz(z)r Fw(\))1451 b FF(pro)q(cedure)37 1554 y Fw(\(acos)24 +b Fz(z)r Fw(\))1451 b FF(pro)q(cedure)37 1611 y Fw(\(atan)24 +b Fz(z)r Fw(\))1451 b FF(pro)q(cedure)37 1667 y Fw(\(atan)24 +b Fz(y)h(x)p Fw(\))1401 b FF(pro)q(cedure)37 1724 y Fw(\(sqrt)24 +b Fz(z)r Fw(\))1451 b FF(pro)q(cedure)37 1780 y Fw(\(expt)24 +b Fz(z)202 1787 y FA(1)245 1780 y Fz(z)266 1787 y FA(2)286 +1780 y Fw(\))1369 b FF(pro)q(cedure)37 1860 y FD(Identic)n(al)15 +b(to)i(R)311 1844 y FA(4)331 1860 y FD(RS.)37 1966 y +Fw(\(make-rectangular)22 b Fz(x)493 1973 y FA(1)537 1966 +y Fz(x)563 1973 y FA(2)582 1966 y Fw(\))1073 b FF(pro)q(cedure)37 +2022 y Fw(\(make-polar)23 b Fz(x)350 2029 y FA(1)393 +2022 y Fz(x)419 2029 y FA(2)439 2022 y Fw(\))1216 b FF(pro)q(cedure)37 +2079 y Fw(\(real-part)23 b Fz(z)r Fw(\))1332 b FF(pro)q(cedure)37 +2135 y Fw(\(imag-part)23 b Fz(z)r Fw(\))1332 b FF(pro)q(cedure)37 +2192 y Fw(\(magnitude)23 b Fz(z)r Fw(\))1332 b FF(pro)q(cedure)37 +2248 y Fw(\(angle)24 b Fz(z)r Fw(\))1427 b FF(pro)q(cedure)37 +2328 y(These)16 b(pro)q(cedures)g(are)f(not)g(implemen)o(ted)i(since)f +(complex)g(n)o(um)o(b)q(ers)g(are)e(not)h(de\014ned.)37 +2434 y Fw(\(exact->inexact)22 b Fz(z)r Fw(\))1213 b FF(pro)q(cedure)37 +2490 y Fw(\(inexact->exact)22 b Fz(z)r Fw(\))1213 b FF(pro)q(cedure)37 +2547 y Fw(\(number->string)22 b FD(numb)n(er)5 b Fw(\))1085 +b FF(pro)q(cedure)37 2603 y Fw(\(number->string)22 b +FD(numb)n(er)i(r)n(adix)5 b Fw(\))963 b FF(pro)q(cedure)37 +2660 y Fw(\(string->number)22 b FD(string)t Fw(\))1118 +b FF(pro)q(cedure)37 2716 y Fw(\(string->number)22 b +FD(string)h(r)n(adix)5 b Fw(\))996 b FF(pro)q(cedure)37 +2796 y FD(Identic)n(al)15 b(to)i(R)311 2780 y FA(4)331 +2796 y FD(RS.)p eop %%Page: 17 17 -17 16 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(17)p 75 64 1763 2 v 75 179 a Fu(\(string>=?)20 b FB(string)419 -185 y Fy(1)459 179 y FB(string)563 185 y Fy(2)581 179 -y Fu(\))1056 b FD(pro)q(cedure)75 229 y Fu(\(string-ci?)19 b FB(string)462 284 y Fy(1)502 -278 y FB(string)606 284 y Fy(2)624 278 y Fu(\))1013 b -FD(pro)q(cedure)75 328 y Fu(\(string-ci<=?)19 b FB(string)484 -334 y Fy(1)524 328 y FB(string)628 334 y Fy(2)646 328 -y Fu(\))991 b FD(pro)q(cedure)75 378 y Fu(\(string-ci>=?)19 -b FB(string)484 384 y Fy(1)524 378 y FB(string)628 384 -y Fy(2)646 378 y Fu(\))991 b FD(pro)q(cedure)75 428 y -Fu(\(substring)20 b FB(string)h(start)g(end)t Fu(\))1025 -b FD(pro)q(cedure)75 478 y Fu(\(string-append)19 b FB(string)25 -b Fx(:)7 b(:)g(:)e Fu(\))1051 b FD(pro)q(cedure)75 527 -y Fu(\(string->list)19 b FB(string)t Fu(\))1149 b FD(pro)q(cedure)75 -577 y Fu(\(list->string)19 b FB(chars)s Fu(\))1158 b -FD(pro)q(cedure)75 627 y Fu(\(string-copy)19 b FB(string)t -Fu(\))1171 b FD(pro)q(cedure)75 677 y Fu(\(string-fill!)19 -b FB(string)i(char)t Fu(\))1049 b FD(pro)q(cedure)75 -750 y FB(Identic)n(al)15 b(to)g(R)325 735 y Fy(4)344 -750 y FB(RS.)75 855 y Fu(\(string-find?)k FB(string)484 -861 y Fy(1)524 855 y FB(string)628 861 y Fy(2)646 855 -y Fu(\))991 b FD(pro)q(cedure)75 929 y(Returns)15 b Fu(#t)e -FD(if)g FB(string)432 935 y Fy(1)464 929 y FD(app)q(ears)i(somewhere)f -(in)f FB(string)980 935 y Fy(2)999 929 y FD(;)g(otherwise)i(returns)g -Fu(#f)p FD(.)75 1034 y Fu(\(string-index)k FB(string)484 -1040 y Fy(1)524 1034 y FB(string)628 1040 y Fy(2)646 -1034 y Fu(\))991 b FD(pro)q(cedure)75 1103 y(Returns)15 -b(the)f(index)g(of)f(where)i FB(string)687 1109 y Fy(1)719 -1103 y FD(is)f(a)g(substring)g(of)f FB(string)1127 1109 -y Fy(2)1159 1103 y FD(if)g(it)h(exists;)g(returns)h Fu(#f)f -FD(otherwise.)153 1182 y Ft(\(string-ind)o(ex)i("ca")i("abracadab)o(ra) -o("\))350 1227 y Fs(=)-6 b Fn(\))19 b Ft(4)153 1273 y(\(string-ind)o -(ex)d("ba")i("abracadab)o(ra)o("\))350 1319 y Fs(=)-6 -b Fn(\))19 b Ft(#f)75 1502 y Fu(\(split-string)g FB(string)t -Fu(\))1149 b FD(pro)q(cedure)75 1552 y Fu(\(split-string)19 -b FB(string)i(delimiters)s Fu(\))950 b FD(pro)q(cedure)75 -1621 y(This)16 b(function)f(parses)i FB(string)567 1627 -y Fy(1)601 1621 y FD(and)f(returns)h(a)f(list)f(of)g(tok)o(ens)h(ended) -h(b)o(y)f(a)f(c)o(haracter)j(of)d(the)h FB(delimiters)1820 -1627 y Fy(1)75 1667 y FD(string.)30 b(If)17 b FB(delimiters)445 -1673 y Fy(1)480 1667 y FD(is)h(omitted,)f(it)g(defaults)h(to)g(a)g -(string)f(con)o(taining)g(a)h(space,)h(a)f(tabulation)e(and)i(a)75 -1712 y(newline)c(c)o(haracters.)153 1791 y Ft(\(split-stri)o(ng)i -("/usr/loca)o(l/)o(bin)o(")g("/"\))-138 b Fs(=)-6 b Fn(\))19 -b Ft(\("usr")e("local")g("bin"\))153 1837 y(\(split-stri)o(ng)f("once) -57 b(upon)18 b(a)h(time"\))-139 b Fs(=)-6 b Fn(\))19 -b Ft(\("once")e("upon")g("a")i("time"\))75 2020 y Fu(\(string-lower)g -FB(string)t Fu(\))1149 b FD(pro)q(cedure)75 2094 y(Returns)15 -b(a)f(string)g(in)g(whic)o(h)g(all)f(upp)q(er)i(case)g(letters)g(of)f -Fu(string)f FD(ha)o(v)o(e)h(b)q(een)h(replaced)g(b)o(y)f(their)h(lo)o -(w)o(er)e(case)75 2144 y(equiv)n(alen)o(t.)75 2249 y -Fu(\(string-upper)19 b FB(string)t Fu(\))1149 b FD(pro)q(cedure)75 -2322 y(Returns)15 b(a)f(string)g(in)g(whic)o(h)g(all)f(lo)o(w)o(er)h -(case)h(letters)g(of)f Fu(string)e FD(ha)o(v)o(e)i(b)q(een)i(replaced)f -(b)o(y)f(their)g(upp)q(er)h(case)75 2372 y(equiv)n(alen)o(t.)75 -2488 y FG(6.8)56 b(V)-5 b(ectors)75 2620 y Fu(\(vector?)20 -b FB(obj)6 b Fu(\))1307 b FD(pro)q(cedure)75 2669 y Fu(\(make-vector)19 -b FB(k)t Fu(\))1256 b FD(pro)q(cedure)75 2719 y Fu(\(make-vector)19 -b FB(k)j(\014l)r(l)t Fu(\))1187 b FD(pro)q(cedure)75 -2769 y Fu(\(vector)20 b FB(obj)i Fx(:)7 b(:)g(:)f Fu(\))1257 -b FD(pro)q(cedure)75 2819 y Fu(\(vector-length)19 b FB(ve)n(ctor)t -Fu(\))1123 b FD(pro)q(cedure)p eop +17 16 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(17)p 37 64 1838 2 v 341 146 1232 2 v 340 196 2 50 v +366 181 a Fn(name)p 487 196 V 50 w(value)p 629 196 V +50 w(alternate)15 b(name)p 951 196 V 960 196 V 58 w(name)p +1107 196 V 51 w(value)p 1249 196 V 50 w(alternate)f(name)p +1571 196 V 341 198 1232 2 v 340 248 2 50 v 386 233 a +Fu(n)o(ul)p 487 248 V 85 w(000)p 629 248 V 166 w(n)o(ull)p +951 248 V 960 248 V 188 w(bs)p 1107 248 V 95 w(010)p +1249 248 V 110 w(bac)o(kspace)p 1571 248 V 340 298 V +384 283 a(soh)p 487 298 V 84 w(001)p 629 298 V 951 298 +V 960 298 V 424 w(h)o(t)p 1107 298 V 95 w(011)p 1249 +298 V 170 w(tab)p 1571 298 V 340 347 V 387 332 a(stx)p +487 347 V 87 w(002)p 629 347 V 951 347 V 960 347 V 426 +w(nl)p 1107 347 V 96 w(012)p 1249 347 V 132 w(newline)p +1571 347 V 340 397 V 386 382 a(etx)p 487 397 V 86 w(003)p +629 397 V 951 397 V 960 397 V 424 w(vt)p 1107 397 V 95 +w(013)p 1249 397 V 1571 397 V 340 447 V 387 432 a(eot)p +487 447 V 86 w(004)p 629 447 V 951 447 V 960 447 V 420 +w(np)p 1107 447 V 91 w(014)p 1249 447 V 158 w(page)p +1571 447 V 340 497 V 383 482 a(enq)p 487 497 V 82 w(005)p +629 497 V 951 497 V 960 497 V 426 w(cr)p 1107 497 V 97 +w(015)p 1249 497 V 143 w(return)p 1571 497 V 340 547 +V 384 532 a(ac)o(k)p 487 547 V 84 w(006)p 629 547 V 951 +547 V 960 547 V 425 w(so)p 1107 547 V 95 w(016)p 1249 +547 V 1571 547 V 340 620 2 74 v 387 581 a(b)q(el)p 487 +620 V 87 w(007)p 629 620 V 167 w(b)q(ell)p 951 620 V +960 620 V 196 w(si)p 1107 620 V 100 w(017)p 1249 620 +V 1571 620 V 340 670 2 50 v 388 655 a(dle)p 487 670 V +87 w(020)p 629 670 V 951 670 V 960 670 V 412 w(can)p +1107 670 V 83 w(030)p 1249 670 V 1571 670 V 340 720 V +383 705 a(dc1)p 487 720 V 83 w(021)p 629 720 V 951 720 +V 960 720 V 417 w(em)p 1107 720 V 86 w(031)p 1249 720 +V 1571 720 V 340 769 V 383 755 a(dc2)p 487 769 V 83 w(022)p +629 769 V 951 769 V 960 769 V 412 w(sub)p 1107 769 V +83 w(032)p 1249 769 V 1571 769 V 340 819 V 383 804 a(dc3)p +487 819 V 83 w(023)p 629 819 V 951 819 V 960 819 V 416 +w(esc)p 1107 819 V 89 w(033)p 1249 819 V 142 w(escap)q(e)p +1571 819 V 340 869 V 383 854 a(dc4)p 487 869 V 83 w(024)p +629 869 V 951 869 V 960 869 V 429 w(fs)p 1107 869 V 99 +w(034)p 1249 869 V 1571 869 V 340 919 V 382 904 a(nak)p +487 919 V 80 w(025)p 629 919 V 951 919 V 960 919 V 425 +w(gs)p 1107 919 V 95 w(035)p 1249 919 V 1571 919 V 340 +969 V 384 954 a(syn)p 487 969 V 83 w(026)p 629 969 V +951 969 V 960 969 V 427 w(rs)p 1107 969 V 98 w(036)p +1249 969 V 1571 969 V 340 1042 2 74 v 386 1004 a(etb)p +487 1042 V 85 w(027)p 629 1042 V 951 1042 V 960 1042 +V 423 w(us)p 1107 1042 V 95 w(037)p 1249 1042 V 1571 +1042 V 340 1116 V 395 1077 a(sp)p 487 1116 V 94 w(040)p +629 1116 V 152 w(space)p 951 1116 V 960 1116 V 1107 1116 +V 1249 1116 V 1571 1116 V 340 1165 2 50 v 388 1150 a(del)p +487 1165 V 87 w(177)p 629 1165 V 147 w(delete)p 951 1165 +V 960 1165 V 1107 1165 V 1249 1165 V 1571 1165 V 341 +1167 1232 2 v 638 1294 a FF(T)l(able)i(1:)j(V)l(alid)e(c)o(haracter)e +(names)37 1447 y FI(6.6)56 b(Characters)37 1557 y FF(T)l(able)20 +b(1)e(giv)o(es)h(the)g(list)h(of)e(allo)o(w)o(ed)h(c)o(haracter)f +(names)h(together)f(with)h(their)g(ASCI)q(I)h(equiv)m(alen)o(t)h(ex-)37 +1613 y(pressed)16 b(in)g(o)q(ctal.)37 1771 y Fw(\(char?)24 +b FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 1828 y Fw(\(char=?)23 +b FD(char)314 1835 y FA(1)359 1828 y FD(char)445 1835 +y FA(2)465 1828 y Fw(\))1190 b FF(pro)q(cedure)37 1884 +y Fw(\(char?)23 b FD(char)314 1948 y FA(1)359 1941 +y FD(char)445 1948 y FA(2)465 1941 y Fw(\))1190 b FF(pro)q(cedure)37 +1997 y Fw(\(char<=?)23 b FD(char)338 2004 y FA(1)382 +1997 y FD(char)468 2004 y FA(2)489 1997 y Fw(\))1166 +b FF(pro)q(cedure)37 2053 y Fw(\(char>=?)23 b FD(char)338 +2060 y FA(1)382 2053 y FD(char)468 2060 y FA(2)489 2053 +y Fw(\))1166 b FF(pro)q(cedure)37 2110 y Fw(\(char-ci=?)23 +b FD(char)386 2117 y FA(1)430 2110 y FD(char)516 2117 +y FA(2)536 2110 y Fw(\))1119 b FF(pro)q(cedure)37 2166 +y Fw(\(char-ci?)23 b FD(char)386 2230 y FA(1)430 +2223 y FD(char)516 2230 y FA(2)536 2223 y Fw(\))1119 +b FF(pro)q(cedure)37 2279 y Fw(\(char-ci<=?)23 b FD(char)410 +2286 y FA(1)454 2279 y FD(char)540 2286 y FA(2)560 2279 +y Fw(\))1095 b FF(pro)q(cedure)37 2336 y Fw(\(char-ci>=?)23 +b FD(char)410 2343 y FA(1)454 2336 y FD(char)540 2343 +y FA(2)560 2336 y Fw(\))1095 b FF(pro)q(cedure)37 2392 +y Fw(\(char-alphabetic?)22 b FD(char)5 b Fw(\))1097 b +FF(pro)q(cedure)37 2449 y Fw(\(char-numeric?)22 b FD(char)5 +b Fw(\))1169 b FF(pro)q(cedure)37 2505 y Fw(\(char-whitespace?)22 +b FD(char)5 b Fw(\))1097 b FF(pro)q(cedure)37 2562 y +Fw(\(char-upper-case?)22 b FD(letter)5 b Fw(\))1080 b +FF(pro)q(cedure)37 2618 y Fw(\(char-lower-case?)22 b +FD(letter)5 b Fw(\))1080 b FF(pro)q(cedure)37 2674 y +Fw(\(char->integer)22 b FD(char)5 b Fw(\))1169 b FF(pro)q(cedure)37 +2731 y Fw(\(integer->char)22 b Fz(n)q Fw(\))1232 b FF(pro)q(cedure)37 +2787 y Fw(\(char-upcase)23 b FD(char)5 b Fw(\))1216 b +FF(pro)q(cedure)p eop %%Page: 18 18 -18 17 bop 75 47 a FC(18)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(vector-ref)20 b FB(ve)n(ctor)h(k)t -Fu(\))1148 b FD(pro)q(cedure)75 229 y Fu(\(vector-set!)19 -b FB(ve)n(ctor)j(k)g(obj)6 b Fu(\))1049 b FD(pro)q(cedure)75 -278 y Fu(\(vector->list)19 b FB(ve)n(ctor)t Fu(\))1145 -b FD(pro)q(cedure)75 328 y Fu(\(list->vector)19 b FB(list)t -Fu(\))1198 b FD(pro)q(cedure)75 378 y Fu(\(vector-fill!)19 -b FB(ve)n(ctor)j(\014l)r(l)t Fu(\))1076 b FD(pro)q(cedure)75 -451 y FB(Identic)n(al)15 b(to)g(R)325 436 y Fy(4)344 -451 y FB(RS.)75 542 y Fu(\(vector-copy)k FB(ve)n(ctor)t -Fu(\))1167 b FD(pro)q(cedure)75 616 y(returns)15 b(a)f(cop)o(y)g(of)f -FB(ve)n(ctor)t FD(.)75 706 y Fu(\(vector-resize)19 b -FB(ve)n(ctor)i(size)s Fu(\))1037 b FD(pro)q(cedure)75 -780 y FB(ve)n(ctor-r)n(esize)17 b FD(ph)o(ysically)d(c)o(hanges)h(the)h -(size)g(of)e FB(ve)n(ctor)t FD(.)21 b(If)15 b FB(size)j -FD(is)d(greater)h(than)f(the)g(old)g(v)o(ector)g(size,)h(the)75 -830 y(con)o(ten)o(ts)f(of)e(the)i(newly)f(allo)q(cated)f(cells)h(are)g -(unde\014ned.)75 932 y FG(6.9)56 b(Con)n(trol)19 b(features)75 -1061 y Fu(\(procedure?)h FB(obj)6 b Fu(\))1241 b FD(pro)q(cedure)75 -1111 y Fu(\(apply)21 b FB(pr)n(o)n(c)g(ar)n(gs)s Fu(\))1237 -b FD(pro)q(cedure)75 1161 y Fu(\(apply)21 b FB(pr)n(o)n(c)g(ar)n(g)380 -1167 y Fy(1)420 1161 y Fx(:)7 b(:)g(:)20 b FB(ar)n(gs)s -Fu(\))1071 b FD(pro)q(cedure)75 1210 y Fu(\(map)21 b -FB(pr)n(o)n(c)h(list)336 1216 y Fy(1)375 1210 y FB(list)430 -1216 y Fy(2)470 1210 y Fx(:)7 b(:)g(:)e Fu(\))1112 b -FD(pro)q(cedure)75 1260 y Fu(\(for-each)20 b FB(pr)n(o)n(c)i(list)445 -1266 y Fy(1)484 1260 y FB(list)539 1266 y Fy(2)579 1260 -y Fx(:)7 b(:)g(:)e Fu(\))1003 b FD(pro)q(cedure)75 1310 -y Fu(\(force)21 b FB(pr)n(omise)s Fu(\))1265 b FD(pro)q(cedure)75 -1384 y FB(Identic)n(al)15 b(to)g(R)325 1368 y Fy(4)344 -1384 y FB(RS.)75 1474 y Fu(\(call-with-curren)o(t-con)o(tinua)o(tion)j -FB(pr)n(o)n(c)r Fu(\))788 b FD(pro)q(cedure)75 1524 y -Fu(\(call/cc)20 b FB(pr)n(o)n(c)r Fu(\))1289 b FD(pro)q(cedure)75 -1597 y Fu(Call/cc)12 b FD(is)i(a)g(shorter)h(name)e(for)g -Fu(call-with-current-)o(conti)o(nuati)o(on)p FD(.)75 -1688 y Fu(\(closure?)20 b FB(obj)6 b Fu(\))1285 b FD(pro)q(cedure)75 -1762 y(returns)14 b Fu(#t)f FD(if)f FB(obj)18 b FD(is)13 -b(a)g(pro)q(cedure)h(created)h(b)o(y)d(ev)n(aluating)g(a)g(lam)o(b)q -(da)e(expression,)k(otherwise)g(returns)g Fu(#f)p FD(.)75 -1852 y Fu(\(primitive?)20 b FB(obj)6 b Fu(\))1241 b FD(pro)q(cedure)75 -1926 y(returns)15 b Fu(#t)f FD(if)f FB(obj)20 b FD(is)14 -b(a)f(pro)q(cedure)j(and)e(is)f(not)h(a)g(closure,)g(otherwise)h -(returns)g Fu(#f)p FD(.)75 2016 y Fu(\(promise?)20 b -FB(obj)6 b Fu(\))1285 b FD(pro)q(cedure)75 2090 y(returns)15 -b Fu(#t)f FD(if)f FB(obj)20 b FD(is)14 b(an)f(ob)r(ject)i(returned)g(b) -o(y)f(the)h(application)d(of)h Fu(delay)p FD(,)g(otherwise)i(returns)g -Fu(#f)p FD(.)75 2181 y Fu(\(continuation?)k FB(obj)6 -b Fu(\))1176 b FD(pro)q(cedure)75 2254 y(returns)15 b -Fu(#t)f FD(if)f FB(obj)20 b FD(is)14 b(a)f(con)o(tin)o(uation)g -(obtained)h(b)o(y)f Fu(call/cc)p FD(,)f(otherwise)j(returns)g -Fu(#f)p FD(.)75 2345 y Fu(\(dynamic-wind)k Fm(h)p FD(th)o(unk)502 -2351 y Fy(1)521 2345 y Fm(i)j(h)p FD(th)o(unk)681 2351 -y Fy(2)700 2345 y Fm(i)g(h)p FD(th)o(unk)860 2351 y Fy(3)879 -2345 y Fm(i)p Fu(\))742 b FD(pro)q(cedure)75 2418 y Fm(h)p -FD(Th)o(unk)211 2424 y Fy(1)230 2418 y Fm(i)p FD(,)17 -b Fm(h)p FD(th)o(unk)397 2424 y Fy(2)416 2418 y Fm(i)g -FD(and)g Fm(h)p FD(th)o(unk)655 2424 y Fy(3)674 2418 -y Fm(i)h FD(are)f(called)g(in)g(order.)28 b(The)18 b(result)g(of)f -Fu(dynamic-wind)d FD(is)j(the)h(v)n(alue)75 2468 y(returned)g(b)o(y)e -Fm(h)p FD(th)o(unk)428 2474 y Fy(2)447 2468 y Fm(i)p -FD(.)26 b(If)16 b Fm(h)p FD(th)o(unk)667 2474 y Fy(2)685 -2468 y Fm(i)h FD(escap)q(es)h(from)d(its)h(con)o(tin)o(uation)g(during) -g(ev)n(aluation)f(\(b)o(y)h(calling)f(a)75 2518 y(con)o(tin)o(uation)f -(obtained)g(b)o(y)h Fu(call/cc)e FD(or)i(on)f(error\),)i -Fm(h)p FD(th)o(unk)1076 2524 y Fy(3)1094 2518 y Fm(i)f -FD(is)g(called.)20 b(If)14 b Fm(h)p FD(th)o(unk)1468 -2524 y Fy(2)1487 2518 y Fm(i)h FD(is)g(later)g(reen)o(tered,)75 -2568 y Fm(h)p FD(th)o(unk)197 2574 y Fy(1)216 2568 y -Fm(i)f FD(is)g(called.)75 2658 y Fu(\(catch)21 b Fm(h)p -FD(expression)429 2664 y Fy(1)449 2658 y Fm(i)g(h)p FD(expression)687 -2664 y Fy(2)707 2658 y Fm(i)h Fx(:)7 b(:)g(:)f Fu(\))896 -b FD(syn)o(tax)75 2728 y(The)10 b Fm(h)p FD(expression)p -Fm(i)r FD(s)g(are)g(ev)n(aluated)f(from)f(left)i(to)f(righ)o(t.)17 -b(If)9 b(an)h(error)g(o)q(ccurs,)i(ev)n(aluation)c(of)h(the)i -Fm(h)p FD(expression)p Fm(i)q FD(s)75 2773 y(is)17 b(ab)q(orted,)h(and) -f Fu(#t)g FD(is)g(returned)i(to)e Fu(catch)p FD('s)f(caller.)28 -b(If)16 b(ev)n(aluation)g(\014nishes)i(without)f(an)g(error,)i -Fu(catch)75 2819 y FD(returns)c Fu(#f)p FD(.)p eop +18 17 bop 37 45 a FE(18)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 360 146 1192 2 v 359 196 2 50 v 414 181 +a Fn(Se)n(quenc)n(e)p 627 196 V 627 196 V 350 w(Char)n(acter)d(inserte) +n(d)p 1551 196 V 360 198 1192 2 v 359 248 2 50 v 385 +233 a Fv(\\)p Fu(b)p 627 248 V 223 w(Bac)o(kspace)p 1551 +248 V 359 298 V 385 283 a Fv(\\)p Fu(e)p 627 298 V 228 +w(Escap)q(e)p 1551 298 V 359 347 V 385 332 a Fv(\\)p +Fu(n)p 627 347 V 223 w(Newline)p 1551 347 V 359 397 V +385 382 a Fv(\\)p Fu(t)p 627 397 V 230 w(Horizon)o(tal)f(T)m(ab)p +1551 397 V 359 447 V 385 432 a Fv(\\)p Fu(n)p 627 447 +V 223 w(Carriage)h(Return)p 1551 447 V 359 497 V 385 +482 a Fv(\\)p Fu(0ab)q(c)p 627 497 V 162 w(ASCI)q(I)g(c)o(haracter)h +(with)f(o)q(ctal)g(v)n(alue)f(ab)q(c)p 1551 497 V 359 +547 V 385 532 a Fv(\\)p 627 547 V 48 w Fu(None)h(\(p)q(ermits) +g(to)g(en)o(ter)h(a)e(string)h(on)g(sev)o(eral)g(lines\))p +1551 547 V 359 596 V 385 581 a Fv(\\)p 627 596 +V 92 w()p 1551 596 V 360 598 1192 2 v 631 725 +a FF(T)l(able)i(2:)j(String)d(escap)q(e)g(sequences)37 +865 y Fw(\(char-downcase)22 b FD(char)5 b Fw(\))1169 +b FF(pro)q(cedure)37 946 y FD(Identic)n(al)15 b(to)i(R)311 +929 y FA(4)331 946 y FD(RS.)37 1077 y FI(6.7)56 b(Strings)37 +1165 y FB(STk)15 b FF(string)g(constan)o(ts)g(allo)o(w)g(the)h +(insertion)g(of)f(arbitrary)g(c)o(haracters)f(b)o(y)h(enco)q(ding)i +(them)e(as)g(escap)q(e)37 1222 y(sequences,)j(in)o(tro)q(duced)f(b)o(y) +f(a)g(bac)o(kslash)h(\()p Fw(\\)p FF(\).)k(The)c(v)m(alid)h(escap)q(e)f +(sequences)g(are)f(sho)o(wn)g(in)h(T)l(able)g(2.)37 1278 +y(F)l(or)e(instance,)h(the)f(string)125 1384 y Fv("ab\\040c\\nd\\)125 +1433 y(e")37 1594 y FF(is)h(the)f(string)h(consisting)g(of)f(the)g(c)o +(haracters)f Fw(#\\)p FF(a,)g Fw(#\\)p FF(b,)p Fw(#\\)p +FF(space,)h Fw(#\\)p FF(c,)g Fw(#\\)p FF(newline,)h Fw(#\\)p +FF(d)f(and)h Fw(#\\)p FF(e.)37 1715 y Fw(\(string?)23 +b FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 1771 y Fw(\(make-string)23 +b Fz(k)q Fw(\))1282 b FF(pro)q(cedure)37 1828 y Fw(\(make-string)23 +b Fz(k)i FD(char)5 b Fw(\))1167 b FF(pro)q(cedure)37 +1884 y Fw(\(string)23 b FD(char)i Fz(:)8 b(:)g(:)d Fw(\))1256 +b FF(pro)q(cedure)37 1941 y Fw(\(string-length)22 b FD(string)t +Fw(\))1142 b FF(pro)q(cedure)37 1997 y Fw(\(string-ref)23 +b FD(string)g Fz(k)q Fw(\))1169 b FF(pro)q(cedure)37 +2053 y Fw(\(string-set!)23 b FD(string)g(k)h(char)5 b +Fw(\))1034 b FF(pro)q(cedure)37 2110 y Fw(\(string=?)23 +b FD(string)390 2117 y FA(1)433 2110 y FD(string)547 +2117 y FA(2)566 2110 y Fw(\))1089 b FF(pro)q(cedure)37 +2166 y Fw(\(string-ci=?)23 b FD(string)462 2173 y FA(1)505 +2166 y FD(string)619 2173 y FA(2)638 2166 y Fw(\))1017 +b FF(pro)q(cedure)37 2223 y Fw(\(string?)23 +b FD(string)390 2286 y FA(1)433 2279 y FD(string)547 +2286 y FA(2)566 2279 y Fw(\))1089 b FF(pro)q(cedure)37 +2336 y Fw(\(string<=?)23 b FD(string)414 2343 y FA(1)457 +2336 y FD(string)571 2343 y FA(2)590 2336 y Fw(\))1065 +b FF(pro)q(cedure)37 2392 y Fw(\(string>=?)23 b FD(string)414 +2399 y FA(1)457 2392 y FD(string)571 2399 y FA(2)590 +2392 y Fw(\))1065 b FF(pro)q(cedure)37 2449 y Fw(\(string-ci?)23 b FD(string)462 2512 y FA(1)505 +2505 y FD(string)619 2512 y FA(2)638 2505 y Fw(\))1017 +b FF(pro)q(cedure)37 2562 y Fw(\(string-ci<=?)23 b FD(string)486 +2569 y FA(1)528 2562 y FD(string)642 2569 y FA(2)661 +2562 y Fw(\))994 b FF(pro)q(cedure)37 2618 y Fw(\(string-ci>=?)23 +b FD(string)486 2625 y FA(1)528 2618 y FD(string)642 +2625 y FA(2)661 2618 y Fw(\))994 b FF(pro)q(cedure)37 +2674 y Fw(\(substring)23 b FD(string)g(start)h(end)5 +b Fw(\))1028 b FF(pro)q(cedure)37 2731 y Fw(\(string-append)22 +b FD(string)28 b Fz(:)8 b(:)g(:)d Fw(\))1058 b FF(pro)q(cedure)37 +2787 y Fw(\(string->list)23 b FD(string)t Fw(\))1165 +b FF(pro)q(cedure)p eop %%Page: 19 19 -19 18 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(19)p 75 64 1763 2 v 153 179 a Ft(\(let*)18 b(\(\(x)h(0\))291 -224 y(\(y)g(\(catch)408 270 y(\(set!)f(x)h(1\))408 316 -y(\(/)g(0\))g(;)g(causes)f(a)h("division)d(by)j(0")g(error)408 -361 y(\(set!)f(x)h(2\)\)\)\))193 407 y(\(cons)e(x)j(y\)\))350 -453 y Fs(=)-6 b Fn(\))19 b Ft(\(1)g(.)g(#t\))75 641 y -Fu(\(procedure-body)g Fm(h)p FD(pro)q(cedure)p Fm(i)r -Fu(\))1002 b FD(pro)q(cedure)75 711 y(returns)15 b(the)f(b)q(o)q(dy)g -(of)f Fm(h)p FD(pro)q(cedure)p Fm(i)r FD(.)18 b(If)13 -b Fm(h)p FD(pro)q(cedure)p Fm(i)j FD(is)d(not)h(a)f(closure,)h -Fu(procedure-body)d FD(returns)k Fu(#f)p FD(.)153 791 -y Ft(\(define)i(\(f)i(a)g(b\))212 837 y(\(+)g(a)g(\(*)g(b)g(2\)\)\))153 -928 y(\(procedure-)o(bo)o(dy)d(f\))196 b Fs(=)-6 b Fn(\))19 -b Ft(\(lambda)e(\(a)i(b\))820 974 y(\(+)g(a)g(\(*)g(b)g(2\)\)\))153 -1020 y(\(procedure-)o(bo)o(dy)d(car\))156 b Fs(=)-6 b -Fn(\))19 b Ft(#f)75 1220 y FG(6.10)56 b(Input)18 b(and)i(output)75 -1297 y FD(The)d FB(R)193 1282 y Fy(4)205 1297 y Fx(RS)i -FD(states)e(that)g(p)q(orts)g(represen)o(t)h(input)e(and)h(output)f -(devices.)27 b(Ho)o(w)o(ev)o(er,)17 b(it)e(de\014nes)j(only)e(p)q(orts) -75 1347 y(whic)o(h)10 b(are)h(attac)o(hed)h(to)e(\014les.)17 -b(In)11 b Fz(STk)p FD(,)g(p)q(orts)g(can)g(also)f(b)q(e)h(attac)o(hed)g -(to)g(strings)g(or)f(to)h(a)f(external)h(command)75 1397 -y(input)16 b(or)g(output.)26 b(String)16 b(p)q(orts)h(are)f(similar)e -(to)i(\014le)g(p)q(orts,)h(except)h(that)e(c)o(haracters)i(are)f(read)g -(from)d(\(or)75 1447 y(written)g(to\))f(a)g(string)h(rather)g(than)f(a) -h(\014le.)j(External)d(command)d(input)i(or)g(output)h(p)q(orts)g(are)g -(implem)o(en)o(ted)75 1496 y(with)g(Unix)h(pip)q(es)g(and)f(are)h -(called)g(pip)q(e)f(p)q(orts.)21 b(A)15 b(pip)q(e)g(p)q(ort)g(is)f -(created)j(b)o(y)d(sp)q(ecifying)h(the)g(command)d(to)75 -1546 y(execute)19 b(pre\014xed)f(with)f(the)h(string)f -Fu("|)22 b(")p FD(.)27 b(Sp)q(eci\014cation)18 b(of)e(a)h(pip)q(e)g(p)q -(ort)h(can)f(o)q(ccur)h(ev)o(erywhere)i(a)c(\014le)75 -1596 y(name)d(is)g(needed.)75 1703 y Fu(\(call-with-input-)o(file)18 -b FB(string)k(pr)n(o)n(c)r Fu(\))880 b FD(pro)q(cedure)75 -1752 y Fu(\(call-with-output)o(-file)18 b FB(string)j(pr)n(o)n(c)r -Fu(\))859 b FD(pro)q(cedure)75 1826 y Fl(Note:)35 b Fs(if)14 -b Fl(s)s Fs(tring)h(starts)e(with)i(the)f(t)o(w)o(o)f(c)o(haracters)h -Ft("|)19 b(")p Fs(,)13 b(these)h(pro)q(cedures)h(return)g(a)e(pip)q(e)i -(p)q(ort.)20 b(Consequen)o(tly)m(,)75 1876 y(it)13 b(is)h(not)f(p)q -(ossible)j(to)d(op)q(en)g(a)g(\014le)h(whose)g(name)f(starts)g(with)h -(those)f(t)o(w)o(o)g(c)o(haracters.)75 1985 y Fu(\(call-with-input-)o -(strin)o(g)19 b FB(string)i(pr)n(o)n(c)r Fu(\))837 b -FD(pro)q(cedure)75 2058 y(b)q(eha)o(v)o(es)15 b(exactly)f(as)f -Fu(call-with-input-file)d FD(except)15 b(that)f(the)h(p)q(ort)f(passed) -h(to)e FB(pr)n(o)n(c)j FD(is)e(the)g(string)g(p)q(ort)75 -2108 y(obtained)g(from)e FB(string)s FD(.)153 2198 y -Ft(\(call-with-)o(in)o(put)o(-st)o(ri)o(ng)k("123)i(456")g(\(lambda)f -(\(x\))i(\(read)e(x\)\)\))350 2243 y Fs(=)-6 b Fn(\))19 -b Ft(123)75 2440 y Fu(\(call-with-output)o(-stri)o(ng)g -FB(pr)n(o)n(c)r Fu(\))940 b FD(pro)q(cedure)75 2510 y -FB(Pr)n(o)n(c)14 b FD(should)e(b)q(e)g(a)g(pro)q(cedure)i(of)d(one)h -(argumen)o(t.)k Fu(Call-with-output-st)o(ring)8 b FD(calls)k -FB(pr)n(o)n(c)i FD(with)e(a)f(freshly)75 2556 y(op)q(ened)i(output)g -(string)f(p)q(ort.)18 b(The)13 b(result)g(of)f(this)g(pro)q(cedure)j -(is)d(a)g(string)g(con)o(taining)g(all)f(the)i(text)g(that)f(has)75 -2601 y(b)q(een)j(written)f(on)g(the)h(string)f(p)q(ort.)153 -2682 y Ft(\(call-with-)o(ou)o(tpu)o(t-s)o(tr)o(ing)212 -2728 y(\(lambda)j(\(x\))i(\(write)e(123)h(x\))h(\(display)e("Hello")g -(x\)\)\))350 2773 y Fs(=)-6 b Fn(\))19 b Ft("123Hello")p -eop +19 18 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(19)p 37 64 1838 2 v 37 190 a Fw(\(list->string)23 b +FD(chars)t Fw(\))1174 b FF(pro)q(cedure)37 247 y Fw(\(string-copy)23 +b FD(string)t Fw(\))1189 b FF(pro)q(cedure)37 303 y Fw(\(string-fill!) +23 b FD(string)g(char)5 b Fw(\))1055 b FF(pro)q(cedure)37 +384 y FD(Identic)n(al)15 b(to)i(R)311 367 y FA(4)331 +384 y FD(RS.)37 501 y Fw(\(string-find?)23 b FD(string)486 +508 y FA(1)528 501 y FD(string)642 508 y FA(2)661 501 +y Fw(\))994 b FF(pro)q(cedure)37 582 y(Returns)16 b Fw(#t)f +FF(if)h FD(string)429 589 y FA(1)463 582 y FF(app)q(ears)f(somewhere)g +(in)h FD(string)1028 589 y FA(2)1047 582 y FF(;)f(otherwise)h(returns)f +Fw(#f)p FF(.)37 699 y Fw(\(string-index)23 b FD(string)486 +706 y FA(1)528 699 y FD(string)642 706 y FA(2)661 699 +y Fw(\))994 b FF(pro)q(cedure)37 773 y(Returns)12 b(the)f(index)h(of)e +(where)h FD(string)686 780 y FA(1)716 773 y FF(is)g(a)g(substring)g(of) +g FD(string)1146 780 y FA(2)1175 773 y FF(if)h(it)f(exists;)h(returns)f +Fw(#f)f FF(otherwise.)125 861 y Fv(\(string-index)19 +b("ca")i("abracadabra"\))343 910 y Fu(=)-7 b Fp(\))21 +b Fv(4)125 960 y(\(string-index)e("ba")i("abracadabra"\))343 +1010 y Fu(=)-7 b Fp(\))21 b Fv(#f)37 1215 y Fw(\(split-string)i +FD(string)t Fw(\))1165 b FF(pro)q(cedure)37 1272 y Fw(\(split-string)23 +b FD(string)g(delimiters)t Fw(\))947 b FF(pro)q(cedure)37 +1345 y(This)13 b(function)f(parses)g FD(string)560 1352 +y FA(1)590 1345 y FF(and)g(returns)f(a)h(list)g(of)f(tok)o(ens)g(ended) +i(b)o(y)f(a)f(c)o(haracter)g(of)g(the)h FD(delimiters)1856 +1352 y FA(1)37 1395 y FF(string.)20 b(If)15 b FD(delimiters)424 +1402 y FA(1)457 1395 y FF(is)g(omitted,)f(it)h(defaults)g(to)f(a)g +(string)g(con)o(taining)h(a)f(space,)h(a)f(tabulation)h(and)f(a)37 +1445 y(newline)k(c)o(haracters.)125 1533 y Fv(\(split-string)h +("/usr/local/bin")f("/"\))-153 b Fu(=)-7 b Fp(\))22 b +Fv(\("usr")e("local")g("bin"\))125 1583 y(\(split-string)f("once)64 +b(upon)21 b(a)h(time"\))-154 b Fu(=)-7 b Fp(\))22 b Fv(\("once")e +("upon")g("a")i("time"\))37 1788 y Fw(\(string-lower)h +FD(string)t Fw(\))1165 b FF(pro)q(cedure)37 1868 y(Returns)17 +b(a)e(string)h(in)g(whic)o(h)h(all)g(upp)q(er)f(case)g(letters)g(of)f +Fw(string)g FF(ha)o(v)o(e)h(b)q(een)g(replaced)h(b)o(y)f(their)g(lo)o +(w)o(er)37 1924 y(case)g(equiv)m(alen)o(t.)37 2042 y +Fw(\(string-upper)23 b FD(string)t Fw(\))1165 b FF(pro)q(cedure)37 +2123 y(Returns)17 b(a)e(string)h(in)g(whic)o(h)h(all)g(lo)o(w)o(er)e +(case)h(letters)g(of)f Fw(string)g FF(ha)o(v)o(e)g(b)q(een)i(replaced)g +(b)o(y)f(their)g(upp)q(er)37 2179 y(case)g(equiv)m(alen)o(t.)37 +2302 y FI(6.8)56 b(V)-5 b(ectors)37 2449 y Fw(\(vector?)23 +b FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 2505 y Fw(\(make-vector)23 +b FD(k)5 b Fw(\))1281 b FF(pro)q(cedure)37 2562 y Fw(\(make-vector)23 +b FD(k)g(\014l)r(l)5 b Fw(\))1206 b FF(pro)q(cedure)37 +2618 y Fw(\(vector)23 b FD(obj)h Fz(:)8 b(:)g(:)e Fw(\))1284 +b FF(pro)q(cedure)37 2674 y Fw(\(vector-length)22 b FD(ve)n(ctor)5 +b Fw(\))1137 b FF(pro)q(cedure)37 2731 y Fw(\(vector-ref)23 +b FD(ve)n(ctor)h(k)5 b Fw(\))1163 b FF(pro)q(cedure)37 +2787 y Fw(\(vector-set!)23 b FD(ve)n(ctor)g(k)h(obj)7 +b Fw(\))1056 b FF(pro)q(cedure)p eop %%Page: 20 20 -20 19 bop 75 47 a FC(20)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(input-port?)19 b FB(obj)6 -b Fu(\))1220 b FD(pro)q(cedure)75 229 y Fu(\(output-port?)19 -b FB(obj)6 b Fu(\))1198 b FD(pro)q(cedure)75 302 y FB(Identic)n(al)15 -b(to)g(R)325 287 y Fy(4)344 302 y FB(RS.)75 406 y Fu -(\(input-string-por)o(t?)k FB(obj)6 b Fu(\))1067 b FD(pro)q(cedure)75 -456 y Fu(\(output-string-po)o(rt?)19 b FB(obj)6 b Fu(\))1045 -b FD(pro)q(cedure)75 529 y(Returns)15 b Fu(#t)e FD(if)g -FB(obj)20 b FD(is)14 b(either)h(an)e(input)h(or)g(an)f(output)h(string) -g(p)q(ort,)g(otherwise)h(returns)g Fu(#f)p FD(.)75 633 -y Fu(\(current-input-po)o(rt)m(\))1148 b FD(pro)q(cedure)75 -683 y Fu(\(current-output-p)o(ort)m(\))1126 b FD(pro)q(cedure)75 -756 y FB(Identic)n(al)15 b(to)g(R)325 741 y Fy(4)344 -756 y FB(RS.)75 860 y Fu(\(current-error-po)o(rt)m(\))1148 -b FD(pro)q(cedure)75 933 y(Returns)15 b(the)f(curren)o(t)i(default)d -(error)i(p)q(ort.)75 1037 y Fu(\(with-input-from-)o(file)j -FB(string)k(thunk)t Fu(\))854 b FD(pro)q(cedure)75 1087 -y Fu(\(with-output-to-f)o(ile)19 b FB(string)i(thunk)t -Fu(\))876 b FD(pro)q(cedure)75 1160 y FB(Identic)n(al)15 -b(to)g(R)325 1145 y Fy(4)344 1160 y FB(RS.)75 1210 y -FD(The)10 b(follo)o(wing)e(example)g(uses)j(a)f(pip)q(e)g(p)q(ort)g(op) -q(ened)h(for)e(reading.)17 b(It)10 b(p)q(ermits)f(to)h(read)g(all)f -(the)h(lines)g(pro)q(duced)75 1260 y(b)o(y)15 b(an)g(external)g -Fu(ls)g FD(command)d(\(i.e.)21 b(the)16 b(ouput)f(of)g(the)g -Fu(ls)g FD(command)d(is)j FB(r)n(e)n(dir)n(e)n(cte)n(d)f -FD(to)h(the)g(Sc)o(heme)g(pip)q(e)75 1310 y(p)q(ort\).)153 -1395 y Ft(\(with-input)o(-f)o(rom)o(-fi)o(le)h("|)j(ls)g(-ls")193 -1441 y(\(lambda)e(\(\))232 1487 y(\(do)h(\(\(l)h(\(read-lin)o(e\))d -(\(read-line)o(\)\)\))310 1532 y(\(\(eof-objec)o(t?)g(l\)\))271 -1578 y(\(display)h(l\))271 1624 y(\(newline\)\))o(\)\))75 -1755 y FD(Hereafter)e(is)e(another)g(example)f(of)g(Unix)h(command)d -(redirection.)19 b(This)13 b(time,)e(it)i(is)g(the)h(standard)f(input)g -(of)75 1801 y(the)h(Unix)g(command)d(whic)o(h)j(is)g(redirected.)153 -1879 y Ft(\(with-outpu)o(t-)o(to-)o(fil)o(e)i("|)j(mail)f(root")193 -1924 y(\(lambda\(\))232 1970 y(\(format)f(#t)i("A)g(simple)e(mail)h -(sent)g(from)g(STk\\n"\)\)\))75 2152 y Fu(\(with-input-from-)o(strin)o -(g)h FB(string)i(thunk)t Fu(\))811 b FD(pro)q(cedure)75 -2225 y(A)12 b(string)f(p)q(ort)h(is)g(op)q(ened)g(for)g(input)f(from)f -FB(string)s FD(.)17 b Fu(Current-input-port)8 b FD(is)j(set)i(to)e(the) -i(p)q(ort)e(and)h FB(thunk)17 b FD(is)75 2275 y(called.)f(When)10 -b FB(thunk)15 b FD(returns,)c(the)g(previous)f(default)f(input)g(p)q -(ort)h(is)g(restored.)18 b Fu(With-input-from-st)o(ring)75 -2325 y FD(returns)d(the)g(v)n(alue)e(yielded)h(b)o(y)g -FB(thunk)5 b FD(.)153 2411 y Ft(\(with-input)o(-f)o(rom)o(-st)o(ri)o -(ng)16 b("123)i(456")g(\(lambda)f(\(\))i(\(read\)\)\))350 -2456 y Fs(=)-6 b Fn(\))19 b Ft(123)75 2646 y Fu(\(with-output-to-s)o -(tring)f FB(thunk)t Fu(\))958 b FD(pro)q(cedure)75 2719 -y(A)14 b(string)g(p)q(ort)g(is)g(op)q(ened)h(for)f(output.)k -Fu(Current-output-po)o(rt)11 b FD(is)j(set)g(to)g(it)g(and)g -FB(thunk)19 b FD(is)13 b(called.)18 b(When)75 2769 y(the)c -FB(thunk)19 b FD(returns,)14 b(the)g(previous)g(default)f(output)h(p)q -(ort)g(is)f(restored.)20 b Fu(With-output-to-s)o(tring)10 -b FD(returns)75 2819 y(the)k(string)g(con)o(taining)f(all)g(the)h(text) -h(written)f(on)g(the)g(string)g(p)q(ort.)p eop +20 19 bop 37 45 a FE(20)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(vector->list)23 b FD(ve)n(ctor)5 +b Fw(\))1160 b FF(pro)q(cedure)37 247 y Fw(\(list->vector)23 +b FD(list)t Fw(\))1219 b FF(pro)q(cedure)37 303 y Fw(\(vector-fill!)23 +b FD(ve)n(ctor)g(\014l)r(l)5 b Fw(\))1085 b FF(pro)q(cedure)37 +383 y FD(Identic)n(al)15 b(to)i(R)311 367 y FA(4)331 +383 y FD(RS.)37 497 y Fw(\(vector-copy)23 b FD(ve)n(ctor)5 +b Fw(\))1184 b FF(pro)q(cedure)37 577 y(returns)16 b(a)e(cop)o(y)i(of)e +FD(ve)n(ctor)5 b FF(.)37 691 y Fw(\(vector-resize)22 +b FD(ve)n(ctor)i(size)s Fw(\))1042 b FF(pro)q(cedure)37 +771 y FD(ve)n(ctor-r)n(esize)18 b FF(ph)o(ysically)g(c)o(hanges)e(the)f +(size)i(of)e FD(ve)n(ctor)5 b FF(.)21 b(If)16 b FD(size)i +FF(is)e(greater)f(than)h(the)f(old)h(v)o(ector)f(size,)37 +828 y(the)h(con)o(ten)o(ts)e(of)h(the)g(newly)h(allo)q(cated)h(cells)f +(are)f(unde\014ned.)37 946 y FI(6.9)56 b(Con)n(trol)19 +b(features)37 1092 y Fw(\(procedure?)k FD(obj)7 b Fw(\))1266 +b FF(pro)q(cedure)37 1149 y Fw(\(apply)24 b FD(pr)n(o)n(c)f(ar)n(gs)t +Fw(\))1261 b FF(pro)q(cedure)37 1205 y Fw(\(apply)24 +b FD(pr)n(o)n(c)f(ar)n(g)371 1212 y FA(1)415 1205 y Fz(:)8 +b(:)g(:)22 b FD(ar)n(gs)t Fw(\))1079 b FF(pro)q(cedure)37 +1261 y Fw(\(map)24 b FD(pr)n(o)n(c)g(list)323 1268 y +FA(1)365 1261 y FD(list)425 1268 y FA(2)468 1261 y Fz(:)8 +b(:)g(:)e Fw(\))1126 b FF(pro)q(cedure)37 1318 y Fw(\(for-each)23 +b FD(pr)n(o)n(c)h(list)442 1325 y FA(1)485 1318 y FD(list)545 +1325 y FA(2)588 1318 y Fz(:)8 b(:)g(:)d Fw(\))1007 b +FF(pro)q(cedure)37 1374 y Fw(\(force)24 b FD(pr)n(omise)s +Fw(\))1293 b FF(pro)q(cedure)37 1454 y FD(Identic)n(al)15 +b(to)i(R)311 1438 y FA(4)331 1454 y FD(RS.)37 1568 y +Fw(\(call-with-current-continuatio)o(n)k FD(pr)n(o)n(c)s +Fw(\))769 b FF(pro)q(cedure)37 1625 y Fw(\(call/cc)23 +b FD(pr)n(o)n(c)s Fw(\))1318 b FF(pro)q(cedure)37 1705 +y Fw(Call/cc)15 b FF(is)g(a)g(shorter)g(name)g(for)g +Fw(call-with-current-conti)o(nuation)p FF(.)37 1819 y +Fw(\(closure?)23 b FD(obj)7 b Fw(\))1314 b FF(pro)q(cedure)37 +1899 y(returns)14 b Fw(#t)g FF(if)h FD(obj)21 b FF(is)14 +b(a)g(pro)q(cedure)h(created)f(b)o(y)g(ev)m(aluating)i(a)d(lam)o(b)q +(da)i(expression,)g(otherwise)f(returns)37 1955 y Fw(#f)p +FF(.)37 2069 y Fw(\(primitive?)23 b FD(obj)7 b Fw(\))1266 +b FF(pro)q(cedure)37 2149 y(returns)16 b Fw(#t)e FF(if)i +FD(obj)22 b FF(is)16 b(a)f(pro)q(cedure)h(and)f(is)h(not)f(a)f +(closure,)i(otherwise)f(returns)g Fw(#f)p FF(.)37 2263 +y Fw(\(promise?)23 b FD(obj)7 b Fw(\))1314 b FF(pro)q(cedure)37 +2343 y(returns)16 b Fw(#t)e FF(if)i FD(obj)22 b FF(is)16 +b(an)f(ob)s(ject)f(returned)i(b)o(y)f(the)g(application)i(of)e +Fw(delay)p FF(,)f(otherwise)i(returns)f Fw(#f)p FF(.)37 +2457 y Fw(\(continuation?)22 b FD(obj)7 b Fw(\))1195 +b FF(pro)q(cedure)37 2537 y(returns)16 b Fw(#t)e FF(if)i +FD(obj)22 b FF(is)16 b(a)f(con)o(tin)o(uation)g(obtained)h(b)o(y)f +Fw(call/cc)p FF(,)f(otherwise)h(returns)g Fw(#f)p FF(.)37 +2651 y Fw(\(dynamic-wind)23 b Fo(h)p FF(th)o(unk)506 +2658 y FA(1)525 2651 y Fo(i)h(h)p FF(th)o(unk)701 2658 +y FA(2)720 2651 y Fo(i)g(h)p FF(th)o(unk)896 2658 y FA(3)915 +2651 y Fo(i)p Fw(\))722 b FF(pro)q(cedure)37 2731 y Fo(h)p +FF(Th)o(unk)186 2738 y FA(1)206 2731 y Fo(i)p FF(,)22 +b Fo(h)p FF(th)o(unk)393 2738 y FA(2)412 2731 y Fo(i)f +FF(and)g Fo(h)p FF(th)o(unk)679 2738 y FA(3)698 2731 +y Fo(i)g FF(are)f(called)j(in)e(order.)37 b(The)21 b(result)g(of)f +Fw(dynamic-wind)g FF(is)h(the)37 2787 y(v)m(alue)d(returned)f(b)o(y)f +Fo(h)p FF(th)o(unk)540 2794 y FA(2)559 2787 y Fo(i)p +FF(.)23 b(If)16 b Fo(h)p FF(th)o(unk)793 2794 y FA(2)813 +2787 y Fo(i)g FF(escap)q(es)g(from)g(its)g(con)o(tin)o(uation)h(during) +g(ev)m(aluation)g(\(b)o(y)p eop %%Page: 21 21 -21 20 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(21)p 75 64 1763 2 v 153 179 a Ft(\(with-outpu)o(t-)o(to-)o(str)o(in)o -(g)17 b(\(lambda)f(\(\))j(\(write)f(123\))g(\(write)f("Hello"\)\)\))350 -224 y Fs(=)-6 b Fn(\))19 b Ft("123Hello")75 410 y Fu(\(open-input-file) -f FB(\014lename)s Fu(\))1039 b FD(pro)q(cedure)75 460 -y Fu(\(open-output-file)18 b FB(\014lename)s Fu(\))1017 -b FD(pro)q(cedure)75 534 y FB(Identic)n(al)15 b(to)g(R)325 -518 y Fy(4)344 534 y FB(RS.)75 583 y Fl(Note:)31 b Fs(if)12 -b Fl(f)c Fs(ilename)14 b(starts)e(with)g(the)g(string)h -Ft("|)19 b(")p Fs(,)11 b(these)i(pro)q(cedure)g(return)f(a)g(pip)q(e)i -(p)q(ort.)i(Consequen)o(tly)m(,)e(it)f(is)f(not)75 633 -y(p)q(ossible)j(to)e(op)q(en)h(a)f(\014le)h(whose)f(name)h(starts)f -(with)g(those)h(t)o(w)o(o)e(c)o(haracters.)75 735 y Fu -(\(open-input-strin)o(g)19 b FB(string)t Fu(\))1040 b -FD(pro)q(cedure)75 808 y(Returns)15 b(an)e(input)h(string)g(p)q(ort)g -(capable)g(of)f(deliv)o(ering)h(c)o(haracters)h(from)d -FB(string)t FD(.)75 910 y Fu(\(open-output-stri)o(ng)m(\))1148 -b FD(pro)q(cedure)75 984 y(Returns)15 b(an)e(output)h(string)g(p)q(ort) -h(capable)f(of)f(receiving)h(and)g(collecting)f(c)o(haracters.)75 -1085 y Fu(\(get-output-strin)o(g)19 b FB(p)n(ort)t Fu(\))1072 -b FD(pro)q(cedure)75 1155 y(Returns)15 b(a)e(string)h(con)o(taining)f -(all)g(the)h(text)h(that)f(has)g(b)q(een)h(written)f(on)g(the)g(output) -g(string)g FB(p)n(ort)t FD(.)153 1231 y Ft(\(let)19 b(\(\(p)f -(\(open-outp)o(ut)o(-st)o(ri)o(ng\))o(\)\))193 1277 y(\(display)e -("Hello,)h(world")g(p\))193 1322 y(\(get-outp)o(ut)o(-st)o(rin)o(g)f -(p\)\))350 1368 y Fs(=)-6 b Fn(\))19 b Ft("Hello,)e(world")75 -1546 y Fu(\(close-input-port)h FB(p)n(ort)t Fu(\))1094 -b FD(pro)q(cedure)75 1596 y Fu(\(close-output-por)o(t)19 -b FB(p)n(ort)t Fu(\))1072 b FD(pro)q(cedure)75 1669 y -FB(Identic)n(al)15 b(to)g(R)325 1654 y Fy(4)344 1669 -y FB(RS.)75 1771 y Fu(\(read)o(\))1453 b FD(pro)q(cedure)75 -1821 y Fu(\(read)21 b FB(p)n(ort)t Fu(\))1355 b FD(pro)q(cedure)75 -1871 y Fu(\(read-char)n(\))1344 b FD(pro)q(cedure)75 -1921 y Fu(\(read-char)20 b FB(p)n(ort)t Fu(\))1246 b -FD(pro)q(cedure)75 1970 y Fu(\(peek-char)n(\))1344 b -FD(pro)q(cedure)75 2020 y Fu(\(peek-char)20 b FB(p)n(ort)t -Fu(\))1246 b FD(pro)q(cedure)75 2070 y Fu(\(char-ready?)n(\))1300 -b FD(pro)q(cedure)75 2120 y Fu(\(char-ready?)19 b FB(p)n(ort)t -Fu(\))1203 b FD(pro)q(cedure)75 2193 y FB(Identic)n(al)15 -b(to)g(R)325 2178 y Fy(4)344 2193 y FB(RS.)75 2295 y -Fu(\(read-line)n(\))1344 b FD(pro)q(cedure)75 2345 y -Fu(\(read-line)20 b FB(p)n(ort)t Fu(\))1246 b FD(pro)q(cedure)75 -2418 y(Reads)18 b(the)h(next)g(line)f(a)o(v)n(ailable)e(from)g(the)j -(input)f(p)q(ort)h FB(p)n(ort)j FD(and)c(returns)i(it)d(as)i(a)f -(string.)31 b(The)19 b(termi-)75 2468 y(nating)d(newline)h(is)g(not)g -(included)g(in)g(the)g(string.)27 b(If)17 b(no)g(more)f(c)o(haracters)i -(are)g(a)o(v)n(ailable,)d(an)i(end)g(of)f(\014le)75 2518 -y(ob)r(ject)k(is)g(returned.)37 b FB(Port)23 b FD(ma)o(y)18 -b(b)q(e)i(omitted,)f(in)h(whic)o(h)f(case)i(it)e(defaults)h(to)f(the)h -(v)n(alue)f(returned)j(b)o(y)75 2568 y Fu(current-input-por)o(t)p -FD(.)75 2669 y Fu(\(write)f FB(obj)6 b Fu(\))1350 b FD(pro)q(cedure)75 -2719 y Fu(\(write)21 b FB(obj)g(p)n(ort)t Fu(\))1259 -b FD(pro)q(cedure)75 2769 y Fu(\(display)20 b FB(obj)6 -b Fu(\))1307 b FD(pro)q(cedure)75 2819 y Fu(\(display)20 -b FB(obj)i(p)n(ort)t Fu(\))1215 b FD(pro)q(cedure)p eop +21 20 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(21)p 37 64 1838 2 v 37 190 a FF(calling)21 b(a)e(con)o(tin)o(uation)g +(obtained)g(b)o(y)g Fw(call/cc)f FF(or)g(on)h(error\),)g +Fo(h)p FF(th)o(unk)1343 197 y FA(3)1362 190 y Fo(i)g +FF(is)g(called.)32 b(If)19 b Fo(h)p FF(th)o(unk)1788 +197 y FA(2)1808 190 y Fo(i)f FF(is)37 247 y(later)e(reen)o(tered,)f +Fo(h)p FF(th)o(unk)489 254 y FA(1)508 247 y Fo(i)g FF(is)h(called.)37 +364 y Fw(\(catch)24 b Fo(h)p FF(expression)426 371 y +FA(1)446 364 y Fo(i)f(h)p FF(expression)708 371 y FA(2)729 +364 y Fo(i)g Fz(:)8 b(:)g(:)e Fw(\))890 b FF(syn)o(tax)37 +438 y(The)23 b Fo(h)p FF(expression)p Fo(i)p FF(s)g(are)f(ev)m(aluated) +h(from)f(left)g(to)g(righ)o(t.)41 b(If)22 b(an)h(error)e(o)q(ccurs,)j +(ev)m(aluation)g(of)e(the)37 488 y Fo(h)p FF(expression)p +Fo(i)q FF(s)16 b(is)h(ab)q(orted,)g(and)f Fw(#t)g FF(is)h(returned)g +(to)f Fw(catch)p FF('s)g(caller.)25 b(If)16 b(ev)m(aluation)i +(\014nishes)g(without)37 538 y(an)e(error,)e Fw(catch)g +FF(returns)h Fw(#f)p FF(.)125 625 y Fv(\(let*)20 b(\(\(x)i(0\))277 +675 y(\(y)g(\(catch)408 725 y(\(set!)f(x)g(1\))408 774 +y(\(/)g(0\))h(;)f(causes)g(a)g("division)f(by)i(0")f(error)408 +824 y(\(set!)g(x)g(2\)\)\)\))168 874 y(\(cons)g(x)h(y\)\))343 +924 y Fu(=)-7 b Fp(\))21 b Fv(\(1)h(.)f(#t\))37 1129 +y Fw(\(procedure-body)h Fo(h)p FF(pro)q(cedure)p Fo(i)q +Fw(\))1004 b FF(pro)q(cedure)37 1202 y(returns)20 b(the)f(b)q(o)q(dy)h +(of)f Fo(h)p FF(pro)q(cedure)p Fo(i)p FF(.)33 b(If)19 +b Fo(h)p FF(pro)q(cedure)p Fo(i)h FF(is)g(not)f(a)g(closure,)i +Fw(procedure-body)c FF(returns)37 1252 y Fw(#f)p FF(.)125 +1340 y Fv(\(define)j(\(f)h(a)h(b\))190 1389 y(\(+)f(a)h(\(*)f(b)h +(2\)\)\))125 1489 y(\(procedure-body)c(f\))218 b Fu(=)-7 +b Fp(\))22 b Fv(\(lambda)e(\(a)h(b\))866 1539 y(\(+)g(a)h(\(*)f(b)h +(2\)\)\))125 1589 y(\(procedure-body)c(car\))174 b Fu(=)-7 +b Fp(\))22 b Fv(#f)37 1798 y FI(6.10)56 b(Input)19 b(and)g(output)37 +1884 y FF(The)12 b FD(R)160 1868 y FA(4)173 1884 y Fz(RS)h +FF(states)e(that)g(p)q(orts)g(represen)o(t)g(input)i(and)f(output)f +(devices.)20 b(Ho)o(w)o(ev)o(er,)11 b(it)h(de\014nes)g(only)g(p)q(orts) +37 1941 y(whic)o(h)19 b(are)f(attac)o(hed)f(to)h(\014les.)29 +b(In)18 b FB(STk)p FF(,)g(p)q(orts)f(can)h(also)g(b)q(e)h(attac)o(hed)e +(to)g(strings)h(or)g(to)f(a)h(external)37 1997 y(command)f(input)h(or)f +(output.)25 b(String)17 b(p)q(orts)g(are)g(similar)h(to)e(\014le)i(p)q +(orts,)f(except)h(that)e(c)o(haracters)g(are)37 2053 +y(read)k(from)g(\(or)f(written)h(to\))f(a)g(string)h(rather)f(than)h(a) +g(\014le.)35 b(External)20 b(command)g(input)h(or)e(output)37 +2110 y(p)q(orts)d(are)g(implemen)o(ted)h(with)f(Unix)h(pip)q(es)h(and)e +(are)f(called)j(pip)q(e)f(p)q(orts.)22 b(A)16 b(pip)q(e)h(p)q(ort)f(is) +g(created)g(b)o(y)37 2166 y(sp)q(ecifying)f(the)e(command)g(to)f +(execute)i(pre\014xed)g(with)f(the)g(string)g Fw("|)24 +b(")p FF(.)19 b(Sp)q(eci\014cation)c(of)d(a)h(pip)q(e)h(p)q(ort)37 +2223 y(can)i(o)q(ccur)f(ev)o(erywhere)h(a)f(\014le)h(name)f(is)h +(needed.)37 2340 y Fw(\(call-with-input-file)21 b FD(string)j(pr)n(o)n +(c)s Fw(\))870 b FF(pro)q(cedure)37 2397 y Fw(\(call-with-output-file) +21 b FD(string)i(pr)n(o)n(c)s Fw(\))847 b FF(pro)q(cedure)37 +2477 y Fn(Note:)33 b Fu(if)9 b Fn(s)t Fu(tring)g(starts)i(with)f(the)h +(t)o(w)o(o)e(c)o(haracters)j Fv("|)21 b(")p Fu(,)10 b(these)i(pro)q +(cedures)g(return)f(a)f(pip)q(e)g(p)q(ort.)17 b(Consequen)o(tly)m(,)37 +2533 y(it)d(is)g(not)g(p)q(ossible)g(to)f(op)q(en)i(a)e(\014le)h(whose) +h(name)d(starts)j(with)f(those)g(t)o(w)o(o)g(c)o(haracters.)37 +2651 y Fw(\(call-with-input-string)21 b FD(string)i(pr)n(o)n(c)s +Fw(\))823 b FF(pro)q(cedure)37 2731 y(b)q(eha)o(v)o(es)16 +b(exactly)g(as)g Fw(call-with-input-file)d FF(except)j(that)f(the)h(p)q +(ort)f(passed)h(to)f FD(pr)n(o)n(c)j FF(is)e(the)g(string)37 +2787 y(p)q(ort)f(obtained)h(from)f FD(string)s FF(.)p +eop %%Page: 22 22 -22 21 bop 75 47 a FC(22)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(newline)n(\))1388 b FD(pro)q(cedure)75 -229 y Fu(\(newline)20 b FB(p)n(ort)t Fu(\))1290 b FD(pro)q(cedure)75 -278 y Fu(\(write-char)20 b FB(char)t Fu(\))1217 b FD(pro)q(cedure)75 -328 y Fu(\(write-char)20 b FB(char)h(p)n(ort)t Fu(\))1124 -b FD(pro)q(cedure)75 402 y FB(Identic)n(al)15 b(to)g(R)325 -387 y Fy(4)344 402 y FB(RS.)75 511 y Fu(\(format)20 b -FB(p)n(ort)i(string)f Fx(obj)523 517 y Fy(1)563 511 y -Fx(obj)618 517 y Fy(2)659 511 y Fx(:)7 b(:)g(:)e Fu(\))923 -b FD(pro)q(cedure)75 585 y(W)m(rites)12 b(the)h FB(obj)6 -b FD(s)13 b(to)f(the)h(giv)o(en)f FB(p)n(ort)t FD(,)g(according)g(to)g -(the)h(format)e(string)h FB(string)s FD(.)18 b FB(String)e -FD(is)c(written)h(literally)m(,)75 635 y(except)i(for)f(the)g(follo)o -(wing)e(sequences:)137 720 y Fm(\017)21 b Fu(~)p FD(a)13 -b(or)h Fu(~)p FD(A)g(is)g(replaced)g(b)o(y)g(the)h(prin)o(ted)f -(represen)o(tation)h(of)e(the)i(next)f FB(obj)6 b FD(.)137 -805 y Fm(\017)21 b Fu(~)p FD(s)14 b(or)g Fu(~)p FD(S)f(is)h(replaced)h -(b)o(y)f(the)g(\\slashi\014ed")g(prin)o(ted)g(represen)o(tation)h(of)f -(the)g(next)g FB(obj)7 b FD(.)137 890 y Fm(\017)21 b -Fu(~~)13 b FD(is)h(replaced)h(b)o(y)e(a)h(single)g(tilde.)137 -975 y Fm(\017)21 b Fu(~)p FD(\045)13 b(is)h(replaced)h(b)o(y)e(a)h -(newline)75 1055 y FB(Port)19 b FD(can)d(b)q(e)g(a)f(b)q(o)q(olean,)g -(a)g(p)q(ort)h(or)g(a)f(string)h(p)q(ort.)23 b(If)15 -b FB(p)n(ort)k FD(is)c Fu(#t)p FD(,)g(output)h(go)q(es)g(to)f(the)h -(curren)o(t)h(output)75 1101 y(p)q(ort;)i(if)d FB(p)n(ort)k -FD(is)d Fu(#f)p FD(,)g(the)h(output)f(is)g(returned)i(as)e(a)g(string.) -28 b(Otherwise,)19 b(the)e(output)h(is)f(prin)o(ted)g(on)g(the)75 -1147 y(sp)q(eci\014ed)e(p)q(ort.)153 1227 y Ft(\(format)i(#f)i("A)g -(test."\))350 1273 y Fs(=)-6 b Fn(\))19 b Ft("A)g(test.")153 -1319 y(\(format)e(#f)i("A)g(~a.")f("test"\))350 1364 -y Fs(=)-6 b Fn(\))19 b Ft("A)g(test.")153 1410 y(\(format)e(#f)i("A)g -(~s.")f("test"\))350 1456 y Fs(=)-6 b Fn(\))19 b Ft("A)g(\\"test\\".)o -(")75 1645 y Fu(\(get-output-strin)o(g)g FB(p)n(ort)t -Fu(\))1072 b FD(pro)q(cedure)75 1715 y(Returns)15 b(the)f(string)g -(asso)q(ciated)h(with)e(the)i(output)f(string)g FB(p)n(ort)s -FD(.)153 1795 y Ft(\(let)19 b(\(\(p)f(\(open-outp)o(ut)o(-st)o(ri)o -(ng\))o(\)\))193 1841 y(\(display)e("Hello,)h(world")g(p\))193 -1887 y(\(get-outp)o(ut)o(-st)o(rin)o(g)f(p\)\))350 1932 -y Fs(=)-6 b Fn(\))19 b Ft("Hello,)e(world")75 2121 y -Fu(\(flush)o(\))1431 b FD(pro)q(cedure)75 2171 y Fu(\(flush)21 -b FB(p)n(ort)t Fu(\))1333 b FD(pro)q(cedure)75 2245 y(Flushes)16 -b(the)f(bu\013er)h(asso)q(ciated)g(with)f(the)g(giv)o(en)g -FB(p)n(ort)s FD(.)21 b(The)16 b FB(p)n(ort)i FD(argumen)o(t)c(ma)o(y)f -(b)q(e)j(omitted,)d(in)i(whic)o(h)75 2295 y(case)g(it)e(defaults)h(to)g -(the)h(v)n(alue)e(returned)i(b)o(y)f Fu(current-output-po)o(rt)p -FD(.)75 2404 y Fu(\(when-port-readab)o(le)19 b FB(p)n(ort)i(hand)r(ler) -t Fu(\))893 b FD(pro)q(cedure)75 2454 y Fu(\(when-port-readab)o(le)19 -b FB(p)n(ort)t Fu(\))1050 b FD(pro)q(cedure)75 2528 y(When)18 -b FB(p)n(ort)j FD(is)c(ready)h(for)f(reading,)h FB(hand)r(ler)5 -b FD(,)18 b(whic)o(h)f(m)o(ust)g(b)q(e)h(a)f(th)o(unk,)h(is)f(called)h -(lea)o(ving)e(the)i(curren)o(t)75 2578 y(ev)n(aluation)d(susp)q(ended.) -29 b(When)17 b FB(hand)r(ler)k FD(execution)c(is)g(terminated,)f -(normal)f(ev)n(aluation)g(is)i(resumed)g(at)75 2627 y(its)e(susp)q -(ension)i(p)q(oin)o(t.)22 b(If)14 b(the)i(sp)q(ecial)g(v)n(alue)f -Fu(#f)f FD(is)h(pro)o(vided)h(as)f FB(hand)r(ler)5 b -FD(,)15 b(the)h(curren)o(t)h(handler)e(for)g FB(p)n(ort)75 -2677 y FD(is)j(deleted.)34 b(If)18 b(a)g(handler)h(is)f(pro)o(vided,)i -(the)f(v)n(alue)f(returned)i(b)o(y)e Fu(when-port-readable)d -FD(is)k(unde\014ned.)75 2727 y(Otherwise,)c(it)e(returns)j(the)e -(handler)g(curren)o(tly)h(asso)q(ciated)g(to)f FB(p)n(ort)s -FD(.)75 2773 y(The)i(example)e(b)q(elo)o(w)h(sho)o(ws)h(a)f(simple)f -(usage)i(of)f(the)h Fu(when-port-reada)o(ble)c FD(pro)q(cedure:)23 -b(the)16 b(command)75 2819 y FB(cmd)i FD(is)c(run)g(with)g(its)g -(output)g(redirected)i(in)d(a)h(pip)q(e)g(asso)q(ciated)h(to)e(the)i -FB(p)h FD(Sc)o(heme)e(p)q(ort.)p eop +22 21 bop 37 45 a FE(22)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(call-with-input)o(-stri)o(ng)i("123)i +(456")g(\(lambda)f(\(x\))h(\(read)g(x\)\)\))343 240 y +Fu(=)-7 b Fp(\))21 b Fv(123)37 448 y Fw(\(call-with-output-string)g +FD(pr)n(o)n(c)s Fw(\))936 b FF(pro)q(cedure)37 522 y +FD(Pr)n(o)n(c)20 b FF(should)e(b)q(e)g(a)f(pro)q(cedure)h(of)e(one)i +(argumen)o(t.)25 b Fw(Call-with-output-string)14 b FF(calls)k +FD(pr)n(o)n(c)i FF(with)d(a)37 572 y(freshly)g(op)q(ened)g(output)e +(string)h(p)q(ort.)21 b(The)16 b(result)g(of)f(this)h(pro)q(cedure)h +(is)f(a)f(string)h(con)o(taining)g(all)h(the)37 621 y(text)e(that)g +(has)g(b)q(een)h(written)f(on)g(the)h(string)f(p)q(ort.)125 +705 y Fv(\(call-with-outpu)o(t-str)o(ing)190 755 y(\(lambda)20 +b(\(x\))i(\(write)e(123)h(x\))h(\(display)e("Hello")g(x\)\)\))343 +805 y Fu(=)-7 b Fp(\))21 b Fv("123Hello")37 1001 y Fw(\(input-port?)i +FD(obj)7 b Fw(\))1242 b FF(pro)q(cedure)37 1058 y Fw(\(output-port?)23 +b FD(obj)7 b Fw(\))1218 b FF(pro)q(cedure)37 1138 y FD(Identic)n(al)15 +b(to)i(R)311 1121 y FA(4)331 1138 y FD(RS.)37 1250 y +Fw(\(input-string-port?)22 b FD(obj)7 b Fw(\))1075 b +FF(pro)q(cedure)37 1307 y Fw(\(output-string-port?)22 +b FD(obj)7 b Fw(\))1051 b FF(pro)q(cedure)37 1387 y(Returns)16 +b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 b(either)h(an)f(input)i(or)d(an) +h(output)g(string)h(p)q(ort,)e(otherwise)h(returns)g +Fw(#f)p FF(.)37 1500 y Fw(\(current-input-port)n(\))1164 +b FF(pro)q(cedure)37 1556 y Fw(\(current-output-port)n(\))1140 +b FF(pro)q(cedure)37 1636 y FD(Identic)n(al)15 b(to)i(R)311 +1620 y FA(4)331 1636 y FD(RS.)37 1749 y Fw(\(current-error-port)n(\)) +1164 b FF(pro)q(cedure)37 1829 y(Returns)16 b(the)g(curren)o(t)f +(default)g(error)g(p)q(ort.)37 1942 y Fw(\(with-input-from-file)21 +b FD(string)j(thunk)5 b Fw(\))841 b FF(pro)q(cedure)37 +1998 y Fw(\(with-output-to-file)22 b FD(string)h(thunk)5 +b Fw(\))865 b FF(pro)q(cedure)37 2079 y FD(Identic)n(al)15 +b(to)i(R)311 2062 y FA(4)331 2079 y FD(RS.)37 2135 y +FF(The)h(follo)o(wing)g(example)g(uses)f(a)g(pip)q(e)h(p)q(ort)f(op)q +(ened)h(for)f(reading.)26 b(It)17 b(p)q(ermits)h(to)e(read)h(all)h(the) +f(lines)37 2191 y(pro)q(duced)g(b)o(y)e(an)f(external)i +Fw(ls)e FF(command)h(\(i.e.)20 b(the)15 b(ouput)g(of)g(the)g +Fw(ls)f FF(command)h(is)h FD(r)n(e)n(dir)n(e)n(cte)n(d)e +FF(to)g(the)37 2248 y(Sc)o(heme)i(pip)q(e)h(p)q(ort\).)125 +2343 y Fv(\(with-input-from)o(-file)h("|)j(ls)h(-ls")168 +2393 y(\(lambda)f(\(\))212 2443 y(\(do)g(\(\(l)g(\(read-line\))f +(\(read-line\)\)\))299 2493 y(\(\(eof-object?)f(l\)\))255 +2543 y(\(display)i(l\))255 2592 y(\(newline\)\)\)\))37 +2738 y FF(Hereafter)f(is)g(another)f(example)i(of)e(Unix)h(command)g +(redirection.)35 b(This)20 b(time,)h(it)e(is)i(the)e(standard)37 +2787 y(input)e(of)d(the)i(Unix)g(command)f(whic)o(h)h(is)g(redirected.) +p eop %%Page: 23 23 -23 22 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(23)p 75 64 1763 2 v 153 179 a Ft(\(define)17 b(p)j(\(open-inp)o(ut)o -(-fi)o(le)c("|)j(cmd"\)\))153 224 y(\(when-port-)o(re)o(ada)o(ble)d(p) -389 270 y(\(lambda\(\))428 316 y(\(let)i(\(\()h(l)g(\(read-line)d -(p\)\)\))467 361 y(\(if)j(\(eof-obje)o(ct)o(?)e(l\))546 -407 y(\(begin)585 453 y(;;)i(delete)e(handler)585 498 -y(\(when-por)o(t-r)o(ead)o(ab)o(le)f(p)j(#f\))585 544 -y(;;)g(and)f(close)g(port)585 590 y(\(close-in)o(put)o(-po)o(rt)e -(p\)\))546 635 y(\(format)h(#t)h("Line)g(read:)g(~A\\n")g(l\)\)\)\)\)) -75 850 y Fu(\(when-port-writab)o(le)h FB(p)n(ort)i(hand)r(ler)t -Fu(\))893 b FD(pro)q(cedure)75 900 y Fu(\(when-port-writab)o(le)19 -b FB(p)n(ort)t Fu(\))1050 b FD(pro)q(cedure)75 974 y(When)18 -b FB(p)n(ort)j FD(is)d(ready)g(for)g(writing,)f FB(hand)r(ler)5 -b FD(,)18 b(whic)o(h)g(m)o(ust)f(b)q(e)h(a)f(th)o(unk,)i(is)e(called)h -(lea)o(ving)f(the)h(curren)o(t)75 1023 y(ev)n(aluation)d(susp)q(ended.) -29 b(When)17 b FB(hand)r(ler)k FD(execution)c(is)g(terminated,)f -(normal)f(ev)n(aluation)g(is)i(resumed)g(at)75 1073 y(its)e(susp)q -(ension)i(p)q(oin)o(t.)22 b(If)14 b(the)i(sp)q(ecial)g(v)n(alue)f -Fu(#f)f FD(is)h(pro)o(vided)h(as)f FB(hand)r(ler)5 b -FD(,)15 b(the)h(curren)o(t)h(handler)e(for)g FB(p)n(ort)75 -1123 y FD(is)j(deleted.)34 b(If)18 b(a)g(handler)h(is)f(pro)o(vided,)i -(the)f(v)n(alue)f(returned)i(b)o(y)e Fu(when-port-writable)d -FD(is)k(unde\014ned.)75 1173 y(Otherwise,)c(it)e(returns)j(the)e -(handler)g(curren)o(tly)h(asso)q(ciated)g(to)f FB(p)n(ort)s -FD(.)75 1269 y Fu(\(load)21 b FB(\014lename)s Fu(\))1278 -b FD(pro)q(cedure)75 1319 y Fu(\(load)21 b FB(\014lename)h(envir)n -(onment)t Fu(\))1031 b FD(pro)q(cedure)75 1389 y(The)17 -b(\014rst)g(form)e(is)i(iden)o(tical)f(to)g FB(R)650 -1374 y Fy(4)662 1389 y Fx(RS)r FD(.)27 b(The)17 b(second)h(one)f(loads) -f(the)h(con)o(ten)o(t)g(of)f FB(\014lename)21 b FD(in)16 -b(the)h(giv)o(en)75 1434 y FB(envir)n(onment)t FD(.)h(So,)13 -b(the)i(\014rst)g(form)d(is)i(equiv)n(alen)o(t)f(to)153 -1507 y Ft(\(load)18 b(filename)f(\(global-e)o(nv)o(iro)o(nm)o(ent)o -(\)\))75 1629 y Fl(Note:)28 b Fs(The)10 b Fl(lo)n(ad)h -Fs(primitiv)o(e)g(has)f(b)q(een)g(extended)g(to)f(allo)o(w)h(loading)i -(of)d(ob)r(ject)g(\014les,)i(though)f(this)g(is)g(not)f(implemen)o(ted) -75 1679 y(on)h(all)h(systems.)16 b(This)10 b(extension)i(uses)e -(dynamic)h(loading)h(on)e(systems)g(whic)o(h)g(supp)q(ort)h(it)1411 -1663 y Fr(2)1428 1679 y Fs(.)16 b(See)10 b([4])f(for)g(more)h(details.) -75 1826 y Fu(\(try-load)20 b FB(\014lename)s Fu(\))1191 -b FD(pro)q(cedure)75 1876 y Fu(\(try-load)20 b FB(\014lename)i(envir)n -(onment)t Fu(\))944 b FD(pro)q(cedure)75 1949 y(T)m(ries)11 -b(to)g(load)g(the)h(\014le)f(named)f FB(\014lename)t -FD(.)17 b(If)11 b FB(\014lename)k FD(exists)d(and)f(is)g(readable,)g -(it)g(is)g(loaded,)g(and)g Fu(try-load)75 1999 y FD(returns)17 -b Fu(#t)p FD(.)k(Otherwise,)c(the)e(result)h(of)f(the)g(call)g(is)g -Fu(#f)p FD(.)21 b(The)16 b(second)g(form)d(of)i FB(try-lo)n(ad)k -FD(tries)d(to)f(load)f(the)75 2049 y(con)o(ten)o(t)h(of)e -FB(\014lename)k FD(in)d(the)g(giv)o(en)g FB(envir)n(onment)t -FD(.)75 2145 y Fu(\(autoload)20 b FB(\014lename)i Fm(h)p -FD(sym)o(b)q(ol)611 2151 y Fy(1)628 2145 y Fm(i)g(h)p -FD(sym)o(b)q(ol)812 2151 y Fy(2)829 2145 y Fm(i)g Fx(:)7 -b(:)g(:)f Fu(\))774 b FD(syn)o(tax)75 2219 y(De\014nes)14 -b Fm(h)p FD(sym)o(b)q(ol)p Fm(i)n FD(s)f(as)g(autoload)f(sym)o(b)q(ols) -f(asso)q(ciated)i(to)g(\014le)f FB(\014lename)t FD(.)18 -b(Fisrt)13 b(ev)n(aluation)e(of)h(an)h(autoload)75 2268 -y(sym)o(b)q(ol)i(will)h(cause)i(the)f(loading)f(of)g(its)h(asso)q -(ciated)h(\014le.)28 b FB(Filename)20 b FD(m)o(ust)c(pro)o(vide)h(a)g -(de\014nition)f(for)h(the)75 2318 y(sym)o(b)q(ol)12 b(whic)o(h)i(lead)f -(to)h(its)g(loading,)e(otherwise)j(an)e(error)i(is)f(signaled.)75 -2415 y Fu(\(autoload?)20 b FB(symb)n(ol)t Fu(\))1198 -b FD(pro)q(cedure)75 2488 y(Returns)15 b Fu(#t)e FD(if)g -FB(symb)n(ol)18 b FD(is)c(an)g(autoload)e(sym)o(b)q(ol;)g(returns)j -Fu(#f)f FD(otherwise.)75 2585 y Fu(\(require)20 b FB(string)t -Fu(\))1258 b FD(pro)q(cedure)75 2635 y Fu(\(provide)20 -b FB(string)t Fu(\))1258 b FD(pro)q(cedure)75 2685 y -Fu(\(provided?)20 b FB(string)t Fu(\))1214 b FD(pro)q(cedure)p -75 2741 705 2 v 121 2768 a Fr(2)139 2779 y Fq(Curren)o(t)10 -b(v)o(ersion)h(\(3.99\))f(allo)o(ws)h(dynamic)f(loading)g(only)h(on)g -(some)g(platforms:)j(SunOs)d(4.1.x,)g(SunOs)g(5.x,)g(NetBSD)h(1.0,)75 -2819 y(Lin)o(ux)e(2.0,)h(HPUX,)i(Irix)e(5.3)p eop +23 22 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(23)p 37 64 1838 2 v 125 190 a Fv(\(with-output-to-)o(file)18 +b("|)k(mail)f(root")168 240 y(\(lambda\(\))212 290 y(\(format)f(#t)i +("A)f(simple)f(mail)h(sent)g(from)g(STk\\n"\)\)\))37 +501 y Fw(\(with-input-from-string)g FD(string)i(thunk)5 +b Fw(\))794 b FF(pro)q(cedure)37 582 y(A)24 b(string)f(p)q(ort)g(is)h +(op)q(ened)g(for)f(input)h(from)f FD(string)s FF(.)44 +b Fw(Current-input-port)21 b FF(is)j(set)f(to)g(the)g(p)q(ort)37 +639 y(and)i FD(thunk)30 b FF(is)25 b(called.)50 b(When)26 +b FD(thunk)j FF(returns,)e(the)e(previous)g(default)g(input)h(p)q(ort)f +(is)g(restored.)37 695 y Fw(With-input-from-string)13 +b FF(returns)i(the)g(v)m(alue)h(yielded)i(b)o(y)d FD(thunk)5 +b FF(.)125 799 y Fv(\(with-input-from)o(-stri)o(ng)19 +b("123)i(456")g(\(lambda)f(\(\))h(\(read\)\)\))343 848 +y Fu(=)-7 b Fp(\))21 b Fv(123)37 1073 y Fw(\(with-output-to-string)g +FD(thunk)5 b Fw(\))955 b FF(pro)q(cedure)37 1154 y(A)18 +b(string)g(p)q(ort)g(is)g(op)q(ened)h(for)f(output.)27 +b Fw(Current-output-port)16 b FF(is)i(set)g(to)f(it)h(and)g +FD(thunk)23 b FF(is)c(called.)37 1210 y(When)11 b(the)f +FD(thunk)15 b FF(returns,)c(the)f(previous)h(default)g(output)f(p)q +(ort)g(is)g(restored.)18 b Fw(With-output-to-string)37 +1267 y FF(returns)e(the)f(string)g(con)o(taining)h(all)g(the)f(text)g +(written)g(on)g(the)h(string)f(p)q(ort.)125 1370 y Fv +(\(with-output-to-)o(strin)o(g)k(\(lambda)h(\(\))i(\(write)e(123\))h +(\(write)g("Hello"\)\)\))343 1420 y Fu(=)-7 b Fp(\))21 +b Fv("123Hello")37 1644 y Fw(\(open-input-file)h FD(\014lename)s +Fw(\))1043 b FF(pro)q(cedure)37 1701 y Fw(\(open-output-file)22 +b FD(\014lename)s Fw(\))1019 b FF(pro)q(cedure)37 1782 +y FD(Identic)n(al)15 b(to)i(R)311 1765 y FA(4)331 1782 +y FD(RS.)37 1839 y Fn(Note:)36 b Fu(if)12 b Fn(f)d Fu(ilename)i(starts) +j(with)e(the)i(string)f Fv("|)21 b(")p Fu(,)12 b(these)j(pro)q(cedure)f +(return)g(a)f(pip)q(e)g(p)q(ort.)18 b(Consequen)o(tly)m(,)13 +b(it)f(is)37 1895 y(not)i(p)q(ossible)g(to)g(op)q(en)g(a)g(\014le)g +(whose)g(name)f(starts)i(with)f(those)g(t)o(w)o(o)g(c)o(haracters.)37 +2018 y Fw(\(open-input-string)22 b FD(string)t Fw(\))1046 +b FF(pro)q(cedure)37 2098 y(Returns)16 b(an)f(input)i(string)e(p)q(ort) +g(capable)h(of)f(deliv)o(ering)i(c)o(haracters)d(from)h +FD(string)s FF(.)37 2221 y Fw(\(open-output-string)n(\))1164 +b FF(pro)q(cedure)37 2301 y(Returns)16 b(an)f(output)g(string)h(p)q +(ort)e(capable)j(of)d(receiving)j(and)e(collecting)i(c)o(haracters.)37 +2424 y Fw(\(get-output-string)22 b FD(p)n(ort)t Fw(\))1082 +b FF(pro)q(cedure)37 2498 y(Returns)16 b(a)f(string)g(con)o(taining)h +(all)g(the)f(text)g(that)f(has)h(b)q(een)i(written)e(on)g(the)g(output) +g(string)g FD(p)n(ort)5 b FF(.)125 2588 y Fv(\(let)21 +b(\(\(p)g(\(open-output-str)o(ing\)\))o(\))168 2638 y(\(display)f +("Hello,)h(world")f(p\))168 2688 y(\(get-output-string)e(p\)\))343 +2738 y Fu(=)-7 b Fp(\))21 b Fv("Hello,)g(world")p eop %%Page: 24 24 -24 23 bop 75 47 a FC(24)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(Require)f FD(loads)h(the)h(\014le)g(whose)g -(name)e(is)i FB(string)j FD(if)13 b(it)h(w)o(as)h(not)f(previously)h -(\\pro)o(vided".)p Fu(Provide)d FD(p)q(ermits)75 229 -y(to)k(store)g FB(string)j FD(in)c(the)i(list)e(of)g(already)h(pro)o -(vided)f(\014les.)24 b(Pro)o(viding)15 b(a)h(\014le)f(p)q(ermits)h(to)f -(a)o(v)o(oid)g(subsequen)o(t)75 278 y(loads)e(of)h(this)g(\014le.)k -Fu(Provided?)12 b FD(returns)j Fu(#t)e FD(if)g FB(string)k -FD(w)o(as)d(already)g(pro)o(vided;)f(it)h(returns)h Fu(#f)e -FD(otherwise.)75 388 y Fu(\(transcript-on)19 b FB(\014lename)s -Fu(\))1082 b FD(pro)q(cedure)75 438 y Fu(\(transcript-off)m(\))1235 -b FD(pro)q(cedure)75 512 y(Not)14 b(implemen)o(ted.)75 -622 y Fu(\(open-file)20 b FB(\014lename)i(mo)n(de)s Fu(\))1054 -b FD(pro)q(cedure)75 696 y(Op)q(ens)18 b(the)f(\014le)f(whose)h(name)e -(is)i FB(\014lename)j FD(with)c(the)h(sp)q(eci\014ed)h -FB(mo)n(de)s FD(.)26 b FB(Mo)n(de)20 b FD(m)o(ust)15 -b(b)q(e)j(\\r")e(to)g(op)q(en)h(for)75 746 y(reading)c(or)f(\\w")g(to)h -(op)q(en)g(for)g(writing.)j(If)d(the)g(\014le)g(can)g(b)q(e)g(op)q -(ened,)h FB(op)n(en-\014le)i FD(returns)e(the)g(p)q(ort)f(asso)q -(ciated)75 796 y(with)h(the)g(giv)o(en)f(\014le,)h(otherwise)h(it)e -(returns)j Fu(#f)p FD(.)h(Here)e(again,)e(the)h(\\magic")d(string)j -Fu("|)22 b(``)13 b FD(p)q(ermit)g(to)h(op)q(en)75 846 -y(a)g(pip)q(e)g(p)q(ort.)75 956 y Fu(\(close-port)20 -b FB(p)n(ort)t Fu(\))1224 b FD(pro)q(cedure)75 1030 y(Closes)14 -b FB(p)n(ort)t FD(.)k(If)13 b FB(p)n(ort)18 b FD(denotes)d(a)e(string)h -(p)q(ort,)g(further)h(reading)f(or)f(writing)h(on)f(this)h(p)q(ort)g -(is)g(disallo)o(w)o(ed.)75 1140 y Fu(\(transcript-on)19 -b FB(\014lename)s Fu(\))1082 b FD(pro)q(cedure)75 1189 -y Fu(\(transcript-off)m(\))1235 b FD(pro)q(cedure)75 -1264 y(Not)14 b(implemen)o(ted.)75 1373 y Fu(\(port->string)19 -b FB(p)n(ort)t Fu(\))1181 b FD(pro)q(cedure)75 1423 y -Fu(\(port->list)20 b FB(r)n(e)n(ader)h(p)n(ort)t Fu(\))1091 -b FD(pro)q(cedure)75 1473 y Fu(\(port->string-lis)o(t)19 -b FB(p)n(ort)t Fu(\))1072 b FD(pro)q(cedure)75 1523 y -Fu(\(port->sexp-list)18 b FB(p)n(ort)t Fu(\))1116 b FD(pro)q(cedure)75 -1597 y(Those)19 b(pro)q(cedures)i(are)e(utilit)o(y)e(for)h(generally)g -(parsing)g(input)g(streams.)32 b(Their)19 b(sp)q(eci\014cation)g(has)f -(b)q(een)75 1647 y(stolen)c(from)e Fu(scsh)p FD(.)75 -1693 y Fu(Port->string)f FD(reads)k(the)g(input)e(p)q(ort)h(un)o(til)f -(eof,)h(then)g(returns)i(the)e(accum)o(ulated)f(string.)153 -1774 y Ft(\(port->stri)o(ng)j(\(open-inpu)o(t-)o(fil)o(e)g("|)j(\(echo) -f(AAA;)g(echo)g(BBB\)"\)\))703 1820 y Fs(=)-6 b Fn(\))19 -b Ft("AAA\\nBBB\\)o(n")153 1866 y(\(define)e(exec)310 -1911 y(\(lambda)g(\(command\))369 1957 y(\(call-with)o(-in)o(pu)o(t-f)o -(il)o(e)428 2003 y(\(string-ap)o(pe)o(nd)f("|)j(")g(command\))e -(port->str)o(ing)o(\)\))o(\))153 2094 y(\(exec)h("ls)h(-l"\))273 -b Fs(=)-6 b Fn(\))19 b Ft(a)g(string)f(which)f(contains)g(the)h(result) -g(of)g("ls)h(-l")75 2221 y Fu(Port->list)f FD(uses)j(the)f -FB(r)n(e)n(ader)j FD(function)d(to)f(rep)q(eatedly)i(read)g(ob)r(jects) -g(from)c FB(p)n(ort)t FD(.)36 b(Thes)20 b(ob)r(jects)h(are)75 -2266 y(accum)o(ulated)13 b(in)g(a)h(list)f(whic)o(h)h(is)g(returned)i -(up)q(on)d(eof.)153 2348 y Ft(\(port->list)j(read-line)g(\(open-inp)o -(ut-)o(fil)o(e)g("|)j(\(echo)f(AAA;)g(echo)g(BBB\)"\)\))703 -2393 y Fs(=)-6 b Fn(\))19 b Ft(\("AAA")e("BBB"\))75 2520 -y Fu(Port->string-list)10 b FD(reads)15 b(the)g(input)e(p)q(ort)i(line) -e(b)o(y)h(line)f(un)o(til)g(eof,)g(then)i(returns)g(the)g(accum)o -(ulated)e(list)75 2565 y(of)g(lines.)18 b(This)c(pro)q(cedure)i(is)e -(de\014ned)h(as)153 2647 y Ft(\(define)i(port->strin)o(g-)o(lis)o(t)f -(\(lambda)h(\(p\)\(port->)o(lis)o(t)g(read-lin)o(e)g(p\)\)\))75 -2773 y Fu(Port->sexp-list)9 b FD(rep)q(eatedly)k(reads)f(data)g(from)e -(the)i(p)q(ort)g(un)o(til)f(eof,)h(then)g(returns)i(the)e(accum)o -(ulated)f(list)75 2819 y(of)i(items.)k(This)d(pro)q(cedure)i(is)e -(de\014ned)h(as)p eop +24 23 bop 37 45 a FE(24)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(close-input-port)22 b FD(p)n(ort)t +Fw(\))1106 b FF(pro)q(cedure)37 247 y Fw(\(close-output-port)22 +b FD(p)n(ort)t Fw(\))1082 b FF(pro)q(cedure)37 328 y +FD(Identic)n(al)15 b(to)i(R)311 311 y FA(4)331 328 y +FD(RS.)37 450 y Fw(\(read\))1498 b FF(pro)q(cedure)37 +506 y Fw(\(read)24 b FD(p)n(ort)t Fw(\))1392 b FF(pro)q(cedure)37 +563 y Fw(\(read-char)o(\))1379 b FF(pro)q(cedure)37 619 +y Fw(\(read-char)23 b FD(p)n(ort)t Fw(\))1273 b FF(pro)q(cedure)37 +676 y Fw(\(peek-char)o(\))1379 b FF(pro)q(cedure)37 732 +y Fw(\(peek-char)23 b FD(p)n(ort)t Fw(\))1273 b FF(pro)q(cedure)37 +789 y Fw(\(char-ready?)o(\))1331 b FF(pro)q(cedure)37 +845 y Fw(\(char-ready?)23 b FD(p)n(ort)t Fw(\))1225 b +FF(pro)q(cedure)37 926 y FD(Identic)n(al)15 b(to)i(R)311 +909 y FA(4)331 926 y FD(RS.)37 1048 y Fw(\(read-line)o(\))1379 +b FF(pro)q(cedure)37 1105 y Fw(\(read-line)23 b FD(p)n(ort)t +Fw(\))1273 b FF(pro)q(cedure)37 1185 y(Reads)24 b(the)f(next)f(line)j +(a)o(v)m(ailable)f(from)e(the)h(input)g(p)q(ort)g FD(p)n(ort)k +FF(and)c(returns)g(it)g(as)f(a)g(string.)43 b(The)37 +1242 y(terminating)15 b(newline)i(is)e(not)f(included)j(in)f(the)f +(string.)k(If)c(no)g(more)f(c)o(haracters)g(are)g(a)o(v)m(ailable,)i +(an)e(end)37 1298 y(of)f(\014le)h(ob)s(ject)e(is)h(returned.)20 +b FD(Port)d FF(ma)o(y)12 b(b)q(e)h(omitted,)g(in)h(whic)o(h)g(case)e +(it)h(defaults)h(to)e(the)h(v)m(alue)h(returned)37 1355 +y(b)o(y)i Fw(current-input-port)p FF(.)37 1477 y Fw(\(write)24 +b FD(obj)7 b Fw(\))1385 b FF(pro)q(cedure)37 1533 y Fw(\(write)24 +b FD(obj)f(p)n(ort)t Fw(\))1287 b FF(pro)q(cedure)37 +1590 y Fw(\(display)23 b FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 +1646 y Fw(\(display)23 b FD(obj)h(p)n(ort)t Fw(\))1239 +b FF(pro)q(cedure)37 1703 y Fw(\(newline)o(\))1427 b +FF(pro)q(cedure)37 1759 y Fw(\(newline)23 b FD(p)n(ort)t +Fw(\))1321 b FF(pro)q(cedure)37 1816 y Fw(\(write-char)23 +b FD(char)5 b Fw(\))1240 b FF(pro)q(cedure)37 1872 y +Fw(\(write-char)23 b FD(char)h(p)n(ort)t Fw(\))1139 b +FF(pro)q(cedure)37 1953 y FD(Identic)n(al)15 b(to)i(R)311 +1936 y FA(4)331 1953 y FD(RS.)37 2075 y Fw(\(format)23 +b FD(p)n(ort)i(string)e Fz(obj)529 2082 y FA(1)572 2075 +y Fz(obj)633 2082 y FA(2)675 2075 y Fz(:)8 b(:)g(:)e +Fw(\))919 b FF(pro)q(cedure)37 2156 y(W)l(rites)19 b(the)g +FD(obj)7 b FF(s)18 b(to)g(the)h(giv)o(en)g FD(p)n(ort)5 +b FF(,)19 b(according)g(to)f(the)h(format)e(string)i +FD(string)s FF(.)30 b FD(String)22 b FF(is)d(written)37 +2212 y(literally)l(,)e(except)f(for)f(the)g(follo)o(wing)h(sequences:) +106 2309 y Fo(\017)22 b Fw(~)p FF(a)15 b(or)g Fw(~)p +FF(A)g(is)g(replaced)i(b)o(y)e(the)g(prin)o(ted)h(represen)o(tation)f +(of)g(the)g(next)h FD(obj)6 b FF(.)106 2405 y Fo(\017)22 +b Fw(~)p FF(s)15 b(or)g Fw(~)p FF(S)g(is)h(replaced)g(b)o(y)f(the)h +(\\slashi\014ed")g(prin)o(ted)g(represen)o(tation)f(of)g(the)g(next)g +FD(obj)7 b FF(.)106 2502 y Fo(\017)22 b Fw(~~)15 b FF(is)h(replaced)g +(b)o(y)f(a)g(single)i(tilde.)106 2598 y Fo(\017)22 b +Fw(~)p FF(\045)15 b(is)h(replaced)g(b)o(y)f(a)g(newline)37 +2688 y FD(Port)j FF(can)12 b(b)q(e)h(a)f(b)q(o)q(olean,)i(a)e(p)q(ort)g +(or)g(a)g(string)g(p)q(ort.)19 b(If)13 b FD(p)n(ort)k +FF(is)c Fw(#t)p FF(,)f(output)g(go)q(es)h(to)e(the)i(curren)o(t)f +(output)37 2738 y(p)q(ort;)i(if)h FD(p)n(ort)k FF(is)14 +b Fw(#f)p FF(,)g(the)g(output)g(is)g(returned)h(as)e(a)h(string.)20 +b(Otherwise,)14 b(the)h(output)e(is)i(prin)o(ted)g(on)f(the)37 +2787 y(sp)q(eci\014ed)k(p)q(ort.)p eop %%Page: 25 25 -25 24 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(25)p 75 64 1763 2 v 153 179 a Ft(\(define)17 b(port->sexp-)o(li)o(st) -f(\(lambda)h(\(p\))i(\(port->l)o(ist)d(read)i(p\)\)\))75 -311 y FD(F)m(or)d(instance,)i(the)f(follo)o(wing)d(expression)j(giv)o -(es)g(the)g(list)f(of)g(users)i(curren)o(tly)g(connected)g(on)f(the)g -(mac)o(hine)75 357 y(running)e(the)g Fz(STk)g FD(in)o(terpreter.)153 -446 y Ft(\(port->sexp)o(-l)o(ist)i(\(open-inp)o(ut-)o(fi)o(le)g("|)j -(users"\)\))75 672 y FG(6.11)56 b(Keyw)n(ords)75 754 -y FD(Keyw)o(ords)18 b(are)g(sym)o(b)q(olic)d(constan)o(ts)j(whic)o(h)g -(ev)n(aluate)e(to)i(themselv)o(es.)28 b(A)17 b(k)o(eyw)o(ord)g(m)o(ust) -g(b)q(egin)g(with)g(a)75 804 y(colon.)75 917 y Fu(\(keyword?)j -FB(obj)6 b Fu(\))1285 b FD(pro)q(cedure)75 993 y(Returns)15 -b Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 b(a)f(k)o(eyw)o(ord,)h -(otherwise)h(returns)g Fu(#f)p FD(.)75 1118 y Fu(\(make-keyword)k -FB(obj)6 b Fu(\))1198 b FD(pro)q(cedure)75 1190 y(Builds)14 -b(a)f(k)o(eyw)o(ord)h(from)e(the)i(giv)o(en)f FB(obj)6 -b FD(.)18 b FB(obj)i FD(m)o(ust)12 b(b)q(e)j(a)e(sym)o(b)q(ol)f(or)i(a) -f(string.)18 b(A)c(colon)f(is)h(automatically)75 1236 -y(prep)q(ended.)153 1325 y Ft(\(make-keywo)o(rd)i("test"\))350 -1371 y Fs(=)-6 b Fn(\))19 b Ft(:test)153 1417 y(\(make-keywo)o(rd)d -('test\))350 1462 y Fs(=)-6 b Fn(\))19 b Ft(:test)153 -1508 y(\(make-keywo)o(rd)d(":hello"\))350 1553 y Fs(=)-6 -b Fn(\))19 b Ft(::hello)75 1763 y Fu(\(keyword->string)f -FB(keywor)n(d)t Fu(\))1044 b FD(pro)q(cedure)75 1835 -y(Returns)15 b(the)f(name)f(of)g FB(keywor)n(d)18 b FD(as)c(a)g -(string.)k(The)c(leading)f(colon)g(is)h(included)g(in)g(the)g(result.) -153 1924 y Ft(\(keyword->s)o(tr)o(ing)i(:test\))350 1970 -y Fs(=)-6 b Fn(\))19 b Ft(":test")75 2179 y Fu(\(get-keyword)g -FB(keywor)n(d)j(list)t Fu(\))1054 b FD(pro)q(cedure)75 -2229 y Fu(\(get-keyword)19 b FB(keywor)n(d)j(list)f(default)t -Fu(\))912 b FD(pro)q(cedure)75 2301 y FB(List)14 b FD(m)o(ust)c(b)q(e)i -(a)f(list)f(of)h(k)o(eyw)o(ords)g(and)g(their)g(resp)q(ectiv)o(e)i(v)n -(alues.)k Fu(Get-keyword)9 b FD(scans)j(the)f FB(list)j -FD(and)d(returns)75 2346 y(the)16 b(v)n(alue)e(asso)q(ciated)i(with)f -(the)g(giv)o(en)g FB(keywor)n(d)t FD(.)22 b(If)14 b(the)i -FB(keywor)n(d)j FD(do)q(es)d(not)f(app)q(ear)h(in)e(an)h(o)q(dd)g(p)q -(osition)75 2392 y(in)e FB(list)s FD(,)h(the)g(sp)q(eci\014ed)i -FB(default)h FD(is)d(returned,)h(or)f(an)g(error)h(is)e(raised)i(if)e -(no)g(default)h(w)o(as)g(sp)q(eci\014ed.)153 2481 y Ft(\(get-keywor)o -(d)i(:one)j('\(:one)e(1)i(:two)f(2\)\))350 2527 y Fs(=)-6 -b Fn(\))19 b Ft(1)153 2573 y(\(get-keywor)o(d)d(:four)i('\(:one)f(1)j -(:two)e(2\))h(#f\))350 2618 y Fs(=)-6 b Fn(\))19 b Ft(#f)153 -2664 y(\(get-keywor)o(d)d(:four)i('\(:one)f(1)j(:two)e(2\)\))350 -2710 y Fs(=)-6 b Fn(\))19 b Fi(error)p eop +25 24 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(25)p 37 64 1838 2 v 125 190 a Fv(\(format)20 b(#f)h("A)h(test."\))343 +240 y Fu(=)-7 b Fp(\))21 b Fv("A)h(test.")125 290 y(\(format)e(#f)h("A) +h(~a.")f("test"\))343 340 y Fu(=)-7 b Fp(\))21 b Fv("A)h(test.")125 +390 y(\(format)e(#f)h("A)h(~s.")f("test"\))343 439 y +Fu(=)-7 b Fp(\))21 b Fv("A)h(\\"test\\".")37 687 y Fw +(\(get-output-string)g FD(p)n(ort)t Fw(\))1082 b FF(pro)q(cedure)37 +764 y(Returns)16 b(the)g(string)f(asso)q(ciated)g(with)h(the)f(output)g +(string)g FD(p)n(ort)5 b FF(.)125 871 y Fv(\(let)21 b(\(\(p)g +(\(open-output-str)o(ing\)\))o(\))168 921 y(\(display)f("Hello,)h +(world")f(p\))168 971 y(\(get-output-string)e(p\)\))343 +1020 y Fu(=)-7 b Fp(\))21 b Fv("Hello,)g(world")37 1268 +y Fw(\(flush\))1474 b FF(pro)q(cedure)37 1324 y Fw(\(flush)24 +b FD(p)n(ort)t Fw(\))1368 b FF(pro)q(cedure)37 1408 y(Flushes)20 +b(the)f(bu\013er)g(asso)q(ciated)g(with)g(the)g(giv)o(en)g +FD(p)n(ort)5 b FF(.)30 b(The)19 b FD(p)n(ort)k FF(argumen)o(t)18 +b(ma)o(y)g(b)q(e)i(omitted,)f(in)37 1465 y(whic)o(h)e(case)e(it)g +(defaults)h(to)e(the)i(v)m(alue)g(returned)g(b)o(y)f +Fw(current-output-port)p FF(.)37 1613 y Fw(\(when-port-readable)22 +b FD(p)n(ort)i(hand)r(ler)5 b Fw(\))884 b FF(pro)q(cedure)37 +1670 y Fw(\(when-port-readable)22 b FD(p)n(ort)t Fw(\))1058 +b FF(pro)q(cedure)37 1754 y(When)14 b FD(p)n(ort)19 b +FF(is)14 b(ready)f(for)g(reading,)h FD(hand)r(ler)5 b +FF(,)14 b(whic)o(h)g(m)o(ust)f(b)q(e)h(a)f(th)o(unk,)h(is)g(called)h +(lea)o(ving)f(the)g(curren)o(t)37 1810 y(ev)m(aluation)j(susp)q(ended.) +23 b(When)16 b FD(hand)r(ler)k FF(execution)d(is)f(terminated,)f +(normal)h(ev)m(aluation)g(is)g(resumed)37 1867 y(at)i(its)g(susp)q +(ension)h(p)q(oin)o(t.)29 b(If)18 b(the)g(sp)q(ecial)i(v)m(alue)f +Fw(#f)f FF(is)g(pro)o(vided)h(as)f FD(hand)r(ler)5 b +FF(,)18 b(the)g(curren)o(t)g(handler)37 1923 y(for)f +FD(p)n(ort)23 b FF(is)18 b(deleted.)28 b(If)18 b(a)f(handler)i(is)f +(pro)o(vided,)g(the)g(v)m(alue)h(returned)f(b)o(y)f Fw +(when-port-readable)e FF(is)37 1979 y(unde\014ned.)22 +b(Otherwise,)16 b(it)f(returns)g(the)h(handler)g(curren)o(tly)g(asso)q +(ciated)f(to)g FD(p)n(ort)t FF(.)37 2033 y(The)j(example)g(b)q(elo)o(w) +g(sho)o(ws)e(a)h(simple)i(usage)e(of)f(the)h Fw(when-port-readable)e +FF(pro)q(cedure:)25 b(the)17 b(com-)37 2083 y(mand)f +FD(cmd)k FF(is)c(run)f(with)h(its)f(output)g(redirected)h(in)g(a)f(pip) +q(e)i(asso)q(ciated)e(to)g(the)g FD(p)k FF(Sc)o(heme)c(p)q(ort.)125 +2190 y Fv(\(define)20 b(p)i(\(open-input-fil)o(e)d("|)i(cmd"\)\))125 +2239 y(\(when-port-reada)o(ble)e(p)386 2289 y(\(lambda\(\))430 +2339 y(\(let)i(\(\()g(l)h(\(read-line)d(p\)\)\))473 2389 +y(\(if)j(\(eof-object?)d(l\))561 2439 y(\(begin)604 2488 +y(;;)i(delete)g(handler)604 2538 y(\(when-port-readabl)o(e)e(p)j(#f\)) +604 2588 y(;;)f(and)h(close)e(port)604 2638 y(\(close-input-port)e +(p\)\))561 2688 y(\(format)i(#t)h("Line)g(read:)g(~A\\n")g(l\)\)\)\)\)) +p eop %%Page: 26 26 -26 25 bop 75 47 a FC(26)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FG(6.12)56 b(Tk)18 b(commands)75 -257 y FD(As)e(w)o(e)f(men)o(tioned)f(in)g(the)i(in)o(tro)q(duction,)f -Fz(STk)g FD(can)h(easily)e(comm)o(unicate)f(with)i(the)g(Tk)g(to)q -(olkit.)21 b(All)14 b(the)75 306 y(commands)f(de\014ned)k(b)o(y)e(the)i -(Tk)e(to)q(olkit)g(are)h(visible)f(as)g Fu(Tk-command)p -FD(s,)f(a)i(basic)f(t)o(yp)q(e)i(recognized)f(b)o(y)g(the)75 -356 y(in)o(terpreter.)21 b Fu(Tk-command)p FD(s)13 b(can)i(b)q(e)g -(called)f(lik)o(e)f(regular)i(sc)o(heme)f(pro)q(cedures,)j(serving)d -(as)h(an)f(en)o(try)h(p)q(oin)o(t)75 406 y(in)o(to)e(the)i(Tk)e -(library)m(.)75 488 y Fl(Note:)50 b Fs(Some)18 b Ft(Tk-comman)o(d)p -Fs(s)c(can)k(dynamically)j(create)c(other)h Ft(Tk-comman)o(d)p -Fs(s.)27 b(F)m(or)17 b(instance,)j(execution)f(of)e(the)75 -533 y(expression)153 615 y Ft(\(label)h('.lab\))75 746 -y Fs(will)11 b(create)f(a)g(new)g Ft(Tk-command)c Fs(called)12 -b(\\)p Fl(.lab)q Fs(".)k(This)10 b(new)g(ob)r(ject,)h(whic)o(h)f(w)o -(as)g(created)g(b)o(y)h(a)e(primitiv)o(e)k Ft(Tk-comman)o(d)p -Fs(,)75 795 y(will)i(b)q(e)e(called)i(a)e Fl(widget)r -Fs(.)75 846 y Fl(Note:)31 b Fs(When)12 b(a)f(new)h(widget)g(is)g -(created,)f(it)h(captures)g(its)g(creation)h(en)o(vironmen)o(t.)18 -b(This)12 b(p)q(ermits)g(to)g(ha)o(v)o(e)f(bindings)75 -896 y(whic)o(h)j(access)f(v)n(ariables)j(in)d(the)h(scop)q(e)f(of)g -(the)g(widget)h(creation)g(call)h(\(see)e(6.17\).)75 -1003 y Fu(\(tk-command?)19 b FB(obj)6 b Fu(\))1220 b -FD(pro)q(cedure)75 1073 y(Returns)15 b Fu(#t)e FD(if)g -FB(obj)20 b FD(is)14 b(a)f Fu(Tk-command)p FD(,)f(otherwise)j(returns)g -Fu(#f)p FD(.)153 1154 y Ft(\(tk-command)o(?)h(label\))350 -1200 y Fs(=)-6 b Fn(\))19 b Ft(#t)153 1246 y(\(begin)f(\(label)f -('.lab\))g(\(tk-comman)o(d?)f(.lab\)\))350 1291 y Fs(=)-6 -b Fn(\))19 b Ft(#t)153 1337 y(\(tk-command)o(?)d(12\))350 -1383 y Fs(=)-6 b Fn(\))19 b Ft(#f)75 1573 y Fu(\(widget?)h -FB(obj)6 b Fu(\))1307 b FD(pro)q(cedure)75 1643 y(Returns)20 -b Fu(#t)f FD(if)f FB(obj)25 b FD(is)19 b(a)g(widget,)h(otherwise)g -(returns)h Fu(#f)p FD(.)34 b(A)19 b(widget)g(is)g(a)g -Fu(Tk-command)e FD(created)k(b)o(y)e(a)75 1689 y(primitiv)o(e)12 -b Fu(Tk-command)f FD(suc)o(h)k(as)f Fu(button)p FD(,)e -Fu(label)p FD(,)h Fu(menu)p FD(,)f(etc.)153 1770 y Ft(\(widget?)17 -b(label\))350 1816 y Fs(=)-6 b Fn(\))19 b Ft(#f)153 1861 -y(\(begin)f(\(label)f('.lab\))g(\(widget?)g(.lab\)\))350 -1907 y Fs(=)-6 b Fn(\))19 b Ft(#t)153 1953 y(\(widget?)e(12\))350 -1998 y Fs(=)-6 b Fn(\))19 b Ft(#f)75 2189 y Fu(\(widget->string)g -FB(widget)t Fu(\))1095 b FD(pro)q(cedure)75 2259 y(Returns)15 -b(the)f(widget)g(name)f(of)g FB(widget)k FD(as)d(a)g(string.)153 -2340 y Ft(\(begin)k(\(label)f('.lab\))g(\(widget->s)o(tri)o(ng)f -(.lab\)\))350 2386 y Fs(=)-6 b Fn(\))19 b Ft(".lab")75 -2576 y Fu(\(string->widget)g FB(str)t Fu(\))1160 b FD(pro)q(cedure)75 -2646 y(Returns)15 b(the)f(widget)g(whose)g(name)f(is)h -FB(str)j FD(if)d(it)f(exists;)h(otherwise)h(returns)g -Fu(#f)p FD(.)153 2728 y Ft(\(begin)j(\(label)f('.lab\))g(\(string->w)o -(idg)o(et)f(".lab"\)\))350 2773 y Fs(=)-6 b Fn(\))19 -b Ft(the)g(Tk-comma)o(nd)d(named)i(".lab")p eop +26 25 bop 37 45 a FE(26)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(when-port-writable)22 b +FD(p)n(ort)i(hand)r(ler)5 b Fw(\))884 b FF(pro)q(cedure)37 +247 y Fw(\(when-port-writable)22 b FD(p)n(ort)t Fw(\))1058 +b FF(pro)q(cedure)37 327 y(When)15 b FD(p)n(ort)j FF(is)d(ready)e(for)h +(writing,)g FD(hand)r(ler)5 b FF(,)14 b(whic)o(h)g(m)o(ust)g(b)q(e)g(a) +g(th)o(unk,)g(is)g(called)h(lea)o(ving)g(the)f(curren)o(t)37 +384 y(ev)m(aluation)j(susp)q(ended.)23 b(When)16 b FD(hand)r(ler)k +FF(execution)d(is)f(terminated,)f(normal)h(ev)m(aluation)g(is)g +(resumed)37 440 y(at)i(its)g(susp)q(ension)h(p)q(oin)o(t.)29 +b(If)18 b(the)g(sp)q(ecial)i(v)m(alue)f Fw(#f)f FF(is)g(pro)o(vided)h +(as)f FD(hand)r(ler)5 b FF(,)18 b(the)g(curren)o(t)g(handler)37 +497 y(for)f FD(p)n(ort)23 b FF(is)18 b(deleted.)28 b(If)18 +b(a)f(handler)i(is)f(pro)o(vided,)g(the)g(v)m(alue)h(returned)f(b)o(y)f +Fw(when-port-writable)e FF(is)37 553 y(unde\014ned.)22 +b(Otherwise,)16 b(it)f(returns)g(the)h(handler)g(curren)o(tly)g(asso)q +(ciated)f(to)g FD(p)n(ort)t FF(.)37 673 y Fw(\(load)24 +b FD(\014lename)s Fw(\))1305 b FF(pro)q(cedure)37 729 +y Fw(\(load)24 b FD(\014lename)e(mo)n(dule)s Fw(\))1145 +b FF(pro)q(cedure)37 810 y(The)14 b(\014rst)e(form)h(is)g(iden)o(tical) +i(to)e FD(R)637 793 y FA(4)649 810 y Fz(RS)s FF(.)18 +b(The)c(second)f(one)h(loads)f(the)g(con)o(ten)o(t)f(of)h +FD(\014lename)i FF(in)f(the)f(giv)o(en)37 866 y FD(mo)n(dule)20 +b FF(en)o(vironmen)o(t.)h Fn(Note:)39 b Fu(The)14 b Fn(lo)n(ad)19 +b Fu(primitiv)o(e)12 b(has)i(b)q(een)i(extended)g(to)e(allo)o(w)f +(loading)f(of)i(ob)r(ject)h(\014les,)37 923 y(though)d(this)g(is)g(not) +g(implemen)o(ted)e(on)i(all)f(systems.)17 b(This)12 b(extension)h(uses) +g(dynamic)e(loading)f(on)i(systems)g(whic)o(h)37 979 +y(supp)q(ort)j(it)233 964 y Fm(3)251 979 y Fu(.)j(See)d([4)o(])f(for)f +(more)g(details.)37 1099 y Fw(\(try-load)23 b FD(\014lename)s +Fw(\))1210 b FF(pro)q(cedure)37 1156 y Fw(\(try-load)23 +b FD(\014lename)g(mo)n(dule)s Fw(\))1049 b FF(pro)q(cedure)37 +1236 y(T)l(ries)20 b(to)e(load)h(the)g(\014le)h(named)f +FD(\014lename)s FF(.)30 b(If)19 b FD(\014lename)j FF(exists)d(and)g(is) +g(readable,)h(it)f(is)h(loaded,)g(and)37 1292 y Fw(try-load)e +FF(returns)g Fw(#t)p FF(.)30 b(Otherwise,)20 b(the)f(result)g(of)f(the) +h(call)h(is)f Fw(#f)p FF(.)30 b(The)19 b(second)g(form)f(of)g +FD(try-lo)n(ad)37 1349 y FF(tries)e(to)e(load)i(the)f(con)o(ten)o(t)g +(of)g FD(\014lename)i FF(in)f(the)f(giv)o(en)h FD(mo)n(dule)j +FF(en)o(vironmen)o(t.)37 1469 y Fw(\(autoload)k FD(\014lename)g +Fo(h)p FF(sym)o(b)q(ol)623 1476 y FA(1)643 1469 y Fo(i)g(h)p +FF(sym)o(b)q(ol)842 1476 y FA(2)862 1469 y Fo(i)h Fz(:)8 +b(:)g(:)d Fw(\))757 b FF(syn)o(tax)37 1549 y(De\014nes)22 +b Fo(h)p FF(sym)o(b)q(ol)p Fo(i)p FF(s)e(as)h(autoload)f(sym)o(b)q(ols) +h(asso)q(ciated)g(to)f(\014le)i FD(\014lename)s FF(.)36 +b(First)21 b(ev)m(aluation)h(of)e(an)37 1606 y(autoload)f(sym)o(b)q(ol) +h(will)g(cause)g(the)f(loading)h(of)f(its)g(asso)q(ciated)g(\014le)h +(in)g(the)f(mo)q(dule)i(en)o(vironmen)o(t)e(in)37 1662 +y(whic)o(h)d(the)g(autoload)e(w)o(as)h(done.)20 b FD(Filename)d +FF(m)o(ust)e(pro)o(vide)g(a)g(de\014nition)i(for)e(the)g(sym)o(b)q(ol)g +(whic)o(h)h(lead)37 1718 y(to)f(its)g(loading,)h(otherwise)g(an)f +(error)f(is)i(signaled.)37 1838 y Fw(\(autoload?)23 b +FD(symb)n(ol)g(mo)n(dule)s Fw(\))1059 b FF(pro)q(cedure)37 +1919 y(Returns)16 b Fw(#t)f FF(if)h FD(symb)n(ol)j FF(is)d(an)f +(autoload)g(sym)o(b)q(ol)g(in)h FD(mo)n(dule)j FF(en)o(vironmen)o(t)c +(;)g(returns)g Fw(#f)g FF(otherwise.)37 2039 y Fw(\(require)23 +b FD(string)t Fw(\))1285 b FF(pro)q(cedure)37 2095 y +Fw(\(provide)23 b FD(string)t Fw(\))1285 b FF(pro)q(cedure)37 +2152 y Fw(\(provided?)23 b FD(string)t Fw(\))1237 b FF(pro)q(cedure)37 +2232 y Fw(Require)21 b FF(loads)h(the)g(\014le)h(whose)e(name)h(is)g +FD(string)j FF(if)d(it)g(w)o(as)f(not)g(previously)i(\\pro)o(vided".)p +Fw(Provide)37 2288 y FF(p)q(ermits)17 b(to)e(store)g +FD(string)k FF(in)e(the)f(list)h(of)e(already)h(pro)o(vided)h(\014les.) +23 b(Pro)o(viding)16 b(a)g(\014le)h(p)q(ermits)f(to)f(a)o(v)o(oid)37 +2345 y(subsequen)o(t)h(loads)f(of)g(this)h(\014le.)k +Fw(Provided?)14 b FF(returns)h Fw(#t)g FF(if)g FD(string)k +FF(w)o(as)14 b(already)h(pro)o(vided;)h(it)f(returns)37 +2401 y Fw(#f)g FF(otherwise.)37 2521 y Fw(\(transcript-on)22 +b FD(\014lename)s Fw(\))1091 b FF(pro)q(cedure)37 2578 +y Fw(\(transcript-off)n(\))1260 b FF(pro)q(cedure)37 +2658 y(Not)15 b(implemen)o(ted.)p 37 2699 735 2 v 89 +2726 a Ft(3)107 2742 y Fs(Curren)o(t)23 b(v)o(ersion)i(\(3.99\))f(allo) +o(ws)h(dynamic)g(loading)h(only)f(on)f(some)g(platforms:)39 +b(SunOs)24 b(4.1.x,)i(SunOs)e(5.x,)37 2787 y(NetBSD)14 +b(1.0,)e(Lin)o(ux)j(2.0,)d(HPUX,)g(Irix)i(5.3)p eop %%Page: 27 27 -27 26 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(27)p 75 64 1763 2 v 75 179 a Fu(\(widget-name)19 b -FB(widget)t Fu(\))1161 b FD(pro)q(cedure)75 248 y(Returns)15 -b(the)f(widget)g(name)f(of)g FB(widget)k FD(as)d(a)g(sym)o(b)q(ol.)153 -329 y Ft(\(begin)k(\(label)f('.lab\))g(\(widget->n)o(ame)f(.lab\)\))350 -374 y Fs(=)-6 b Fn(\))19 b Ft(.lab)75 562 y Fu(\(set-widget-data!)f -FB(widget)k(expr)t Fu(\))953 b FD(pro)q(cedure)75 636 -y Fu(Set-widget-data!)13 b FD(asso)q(ciates)18 b(arbitrary)e(data)g -(with)g(a)g FB(widget)t FD(.)26 b(The)17 b(system)f(mak)o(es)f(no)h -(assumptions)75 685 y(ab)q(out)f(the)h(t)o(yp)q(e)g(of)f -Fu(expr)p FD(;)f(the)i(data)f(is)g(for)g(programmer)e(con)o(v)o -(enience)k(only)m(.)k(As)15 b(sho)o(wn)h(b)q(elo)o(w,)f(it)g(could)75 -735 y(b)q(e)g(used)f(as)g(a)g(kind)f(of)h(prop)q(ert)o(y)g(list)g(for)f -(widgets.)75 843 y Fu(\(get-widget-data)18 b FB(widget)t -Fu(\))1074 b FD(pro)q(cedure)75 913 y(Returns)15 b(the)f(data)g -(previously)f(asso)q(ciated)i(with)f FB(widget)j FD(if)c(it)h(exists;)g -(otherwise)g(returns)i Fu(#f)p FD(.)153 993 y Ft(\(begin)212 -1039 y(\(set-widge)o(t-d)o(ata)o(!)g(.w)j('\(:mapped)d(#t)j(:geometry)d -("10x50"\)\))212 1084 y(\(get-keywo)o(rd)g(:mapped)h(\(get-widge)o(t-d) -o(at)o(a)g(.w\)\)\))350 1130 y Fs(=)-6 b Fn(\))19 b Ft(#t)75 -1329 y FG(6.13)56 b(Mo)r(dules)75 1407 y Fz(STk)18 b -FD(mo)q(dules)e(can)i(b)q(e)h(used)f(to)g(organize)f(a)g(program)f(in)o -(to)h(separate)i(en)o(vironmen)o(ts)e(\(or)p FB(name)i(sp)n(ac)n(es)s -FD(\).)75 1456 y(Mo)q(dules)e(pro)o(vide)e(a)h(clean)h(w)o(a)o(y)e(to)h -(organize)g(and)g(enforce)h(the)g(barriers)g(b)q(et)o(w)o(een)h(the)e -(comp)q(onen)o(ts)g(of)g(a)75 1506 y(program.)75 1556 -y Fz(STk)g FD(pro)o(vides)g(a)f(simple)f(mo)q(dule)g(system)i(whic)o(h) -f(is)h(largely)f(inspired)h(from)d(the)k(one)f(of)f(T)m(ung)g(and)g -(Dyb-)75 1606 y(vig)h(exp)q(osed)i(in)f([5)o(].)27 b(As)18 -b(their)f(mo)q(dules)f(system,)h Fz(STk)h FD(mo)q(dules)e(are)h -(de\014ned)h(to)f(b)q(e)h(easily)e(used)i(in)f(an)75 -1656 y(in)o(teractiv)o(e)d(en)o(vironmen)o(t.)75 1762 -y Fu(\(define-module)19 b FB(name)j Fm(h)p FD(b)q(o)q(dy)p -Fm(i)q Fu(\))1052 b FD(syn)o(tax)75 1836 y FB(De\014ne-mo)n(dule)21 -b FD(ev)n(aluates)c(the)g(expressions)i(whic)o(h)d(are)i(in)e -Fm(h)p FD(b)q(o)q(dy)p Fm(i)h FD(in)f(the)i(en)o(vironmen)o(t)d(of)i -(the)g(mo)q(dule)75 1886 y FB(name)t FD(.)g FB(name)e -FD(m)o(ust)c(b)q(e)h(a)g(v)n(alid)e(sym)o(b)q(ol.)15 -b(If)d(this)f(sym)o(b)q(ol)f(has)i(not)g(already)f(b)q(een)i(used)g(to) -e(de\014ne)i(a)e(mo)q(dule,)75 1936 y(a)i(new)g(mo)q(dule,)e(named)h -FB(name)s FD(,)h(is)f(created.)20 b(Otherwise,)14 b Fm(h)p -FD(b)q(o)q(dy)p Fm(i)f FD(is)g(ev)n(aluated)f(in)g(the)i(en)o(vironmen) -o(t)e(of)g(the)75 1986 y(\(old\))h(mo)q(dule)g FB(name)424 -1970 y Fy(3)442 1986 y FD(.)75 2032 y(De\014nitions)i(done)g(in)g(a)g -(mo)q(dule)f(are)h(lo)q(cal)g(to)g(the)h(mo)q(dule)d(and)i(do)g(not)g -(in)o(teract)h(with)f(the)h(de\014nitions)f(of)75 2077 -y(other)g(mo)q(dules.)h(Consider)f(the)f(follo)o(wing)e(de\014nitions,) -193 2158 y Ft(\(define-m)o(od)o(ule)k(M1)252 2203 y(\(define)g(a)k -(1\)\))193 2295 y(\(define-m)o(od)o(ule)c(M2)232 2340 -y(\(define)h(a)i(2\))232 2386 y(\(define)e(b)i(\(*)g(2)g(x\)\)\))75 -2516 y FD(Here,)c(t)o(w)o(o)e(mo)q(dules)g(are)h(de\014ned)h(and)e -(they)i(b)q(oth)f(bind)f(the)h(sym)o(b)q(ol)e Fu(a)i -FD(to)g(a)f(v)n(alue.)k(Ho)o(w)o(ev)o(er,)d(since)h Fu(a)e -FD(has)75 2565 y(b)q(een)i(de\014ned)g(in)e(t)o(w)o(o)h(distincts)g(mo) -q(dules)f(they)i(denote)f(t)o(w)o(o)g(di\013eren)o(t)h(lo)q(cations.)75 -2616 y(The)e(\\)p Fu(STk)p FD(")f(mo)q(dule,)f(whic)o(h)i(is)g -(prede\014ned,)h(is)f(a)f(sp)q(ecial)h(mo)q(dule)f(whic)o(h)h(con)o -(tains)f(all)g(the)h FB(glob)n(al)h(variables)75 2665 -y FD(of)h(a)g FB(R)190 2650 y Fy(4)202 2665 y Fx(RS)j -FD(program.)k(A)15 b(sym)o(b)q(ol)f(de\014ned)j(in)e(the)h -Fu(STk)f FD(mo)q(dule,)f(if)g(not)i(hidden)f(b)o(y)h(a)f(lo)q(cal)g -(de\014nition,)g(is)p 75 2701 705 2 v 121 2728 a Fr(3)139 -2740 y Fq(In)9 b(fact)h Fo(define-mod)o(ule)d Fq(on)j(a)g(giv)o(en)f -(name)g(de\014nes)g(a)h(new)h(mo)q(dule)d(only)h(the)h(\014rst)g(time)f -(it)h(is)h(in)o(v)o(ok)o(ed)d(on)i(this)f(name.)14 b(By)75 -2779 y(this)d(w)o(a)o(y)m(,)g(in)o(teactiv)o(ely)d(reloading)h(a)j(mo)q -(dule)d(do)q(es)i(not)f(de\014ne)g(a)i(new)f(en)o(tit)o(y)m(,)f(and)g -(the)h(other)f(mo)q(dules)g(whic)o(h)h(use)f(it)i(are)f(not)75 -2819 y(altered.)p eop +27 26 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(27)p 37 64 1838 2 v 37 190 a Fw(\(open-file)23 b FD(\014lename)g(mo)n +(de)s Fw(\))1061 b FF(pro)q(cedure)37 271 y(Op)q(ens)19 +b(the)e(\014le)g(whose)g(name)g(is)g FD(\014lename)j +FF(with)d(the)g(sp)q(eci\014ed)i FD(mo)n(de)s FF(.)25 +b FD(Mo)n(de)20 b FF(m)o(ust)c(b)q(e)i(\\r")e(to)g(op)q(en)37 +327 y(for)h(reading)g(or)g(\\w")f(to)g(op)q(en)i(for)e(writing.)26 +b(If)17 b(the)g(\014le)h(can)f(b)q(e)h(op)q(ened,)g FD(op)n(en-\014le)h +FF(returns)e(the)g(p)q(ort)37 384 y(asso)q(ciated)f(with)g(the)g(giv)o +(en)f(\014le,)i(otherwise)e(it)h(returns)f Fw(#f)p FF(.)21 +b(Here)15 b(again,)h(the)f(\\magic")g(string)h Fw("|)23 +b(``)37 440 y FF(p)q(ermit)16 b(to)f(op)q(en)h(a)f(pip)q(e)h(p)q(ort.) +37 558 y Fw(\(close-port)23 b FD(p)n(ort)t Fw(\))1249 +b FF(pro)q(cedure)37 639 y(Closes)13 b FD(p)n(ort)5 b +FF(.)19 b(If)12 b FD(p)n(ort)17 b FF(denotes)c(a)e(string)i(p)q(ort,)f +(further)g(reading)h(or)f(writing)g(on)h(this)f(p)q(ort)g(is)h(disallo) +o(w)o(ed.)37 814 y Fw(\(transcript-on)22 b FD(\014lename)s +Fw(\))1091 b FF(pro)q(cedure)37 870 y Fw(\(transcript-off)n(\))1260 +b FF(pro)q(cedure)37 950 y(Not)15 b(implemen)o(ted.)37 +1069 y Fw(\(port->string)23 b FD(p)n(ort)t Fw(\))1201 +b FF(pro)q(cedure)37 1125 y Fw(\(port->list)23 b FD(r)n(e)n(ader)h(p)n +(ort)t Fw(\))1103 b FF(pro)q(cedure)37 1182 y Fw(\(port->string-list)22 +b FD(p)n(ort)t Fw(\))1082 b FF(pro)q(cedure)37 1238 y +Fw(\(port->sexp-list)22 b FD(p)n(ort)t Fw(\))1130 b FF(pro)q(cedure)37 +1318 y(Those)14 b(pro)q(cedures)g(are)f(utilit)o(y)h(for)e(generally)j +(parsing)e(input)h(streams.)19 b(Their)14 b(sp)q(eci\014cation)h(has)e +(b)q(een)37 1375 y(stolen)j(from)f Fw(scsh)p FF(.)37 +1425 y Fw(Port->string)f FF(reads)h(the)g(input)i(p)q(ort)d(un)o(til)j +(eof,)d(then)i(returns)f(the)g(accum)o(ulated)h(string.)125 +1513 y Fv(\(port->string)j(\(open-input-file)f("|)k(\(echo)e(AAA;)h +(echo)g(BBB\)"\)\))735 1563 y Fu(=)-7 b Fp(\))22 b Fv("AAA\\nBBB\\n") +125 1612 y(\(define)e(exec)299 1662 y(\(lambda)g(\(command\))364 +1712 y(\(call-with-input-fi)o(le)430 1762 y(\(string-append)f("|)i(")h +(command\))e(port->string\)\)\))125 1861 y(\(exec)g("ls)i(-l"\))304 +b Fu(=)-7 b Fp(\))22 b Fv(a)f(string)g(which)f(contains)h(the)g(result) +f(of)i("ls)f(-l")37 1999 y Fw(Port->list)15 b FF(uses)g(the)h +FD(r)n(e)n(ader)k FF(function)c(to)f(rep)q(eatedly)i(read)e(ob)s(jects) +g(from)g FD(p)n(ort)t FF(.)21 b(Thes)15 b(ob)s(jects)g(are)37 +2049 y(accum)o(ulated)h(in)g(a)f(list)h(whic)o(h)g(is)g(returned)g(up)q +(on)g(eof.)125 2137 y Fv(\(port->list)j(read-line)h(\(open-input-file)f +("|)i(\(echo)g(AAA;)g(echo)g(BBB\)"\)\))735 2187 y Fu(=)-7 +b Fp(\))22 b Fv(\("AAA")e("BBB"\))37 2324 y Fw(Port->string-list)12 +b FF(reads)i(the)g(input)h(p)q(ort)e(line)j(b)o(y)e(line)i(un)o(til)f +(eof,)e(then)h(returns)g(the)g(accum)o(ulated)37 2374 +y(list)j(of)d(lines.)22 b(This)16 b(pro)q(cedure)g(is)f(de\014ned)i(as) +125 2462 y Fv(\(define)j(port->string-list)e(\(lambda)j +(\(p\)\(port->list)e(read-line)g(p\)\)\))37 2600 y Fw(Port->sexp-list) +10 b FF(rep)q(eatedly)i(reads)f(data)g(from)g(the)g(p)q(ort)g(un)o(til) +h(eof,)g(then)g(returns)f(the)g(accum)o(ulated)37 2650 +y(list)17 b(of)d(items.)20 b(This)c(pro)q(cedure)g(is)g(de\014ned)h(as) +125 2738 y Fv(\(define)j(port->sexp-list)f(\(lambda)h(\(p\))h +(\(port->list)f(read)h(p\)\)\))p eop %%Page: 28 28 -28 27 bop 75 47 a FC(28)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FD(alw)o(a)o(ys)d(visible)g(from)f(inside)h(a)h -(mo)q(dule.)k(So,)11 b(in)g(the)i(previous)f(exemple,)f(the)h -Fu(x)f FD(sym)o(b)q(ol)f(refers)k(the)e Fu(x)f FD(sym)o(b)q(ol)75 -229 y(de\014ned)k(in)e(the)i Fu(STk)e FD(mo)q(dule.)75 -279 y(The)h(result)h(of)e FB(de\014ne-mo)n(dule)18 b -FD(is)c(unde\014ned.)75 387 y Fu(\(find-module)19 b FB(name)s -Fu(\))1179 b FD(pro)q(cedure)75 437 y Fu(\(find-module)19 -b FB(name)k(default)t Fu(\))1034 b FD(pro)q(cedure)75 -511 y Fz(STk)16 b FD(mo)q(dules)f(are)h(\014rst)g(class)g(ob)r(jects)h -(and)e Fu(find-module)f FD(returns)j(the)f(mo)q(dule)e(asso)q(ciated)j -(to)e FB(name)k FD(if)75 561 y(it)14 b(exists.)22 b(If)14 -b(there)i(is)f(no)f(mo)q(dule)f(asso)q(ciated)j(to)e -FB(name)t FD(,)h(an)f(error)i(is)e(signaled)h(if)e(no)i -FB(default)j FD(is)d(pro)o(vided,)75 610 y(otherwise)g -Fu(find-module)c FD(returns)16 b(default.)75 719 y Fu(\(module?)k -FB(obje)n(ct)t Fu(\))1259 b FD(pro)q(cedure)75 788 y(Returns)15 -b Fu(#t)e FD(if)g FB(obje)n(ct)18 b FD(is)c(a)f(mo)q(dule)g(and)g -Fu(#f)h FD(otherwise.)193 869 y Ft(\(module?)i(\(find-modu)o(le)g -('STk\)\))350 915 y Fs(=)-6 b Fn(\))19 b Ft(#t)193 960 -y(\(module?)d('STk\))350 1006 y Fs(=)-6 b Fn(\))19 b -Ft(#f)193 1052 y(\(module?)d(1\))350 1097 y Fs(=)-6 b -Fn(\))19 b Ft(#f)75 1285 y Fu(\(export)h Fm(h)p FD(sym)o(b)q(ol)395 -1291 y Fy(1)412 1285 y Fm(i)i(h)p FD(sym)o(b)q(ol)596 -1291 y Fy(2)613 1285 y Fm(i)p FB(.)6 b(.)g(.)g Fu(\))1011 -b FD(syn)o(tax)75 1359 y(Sp)q(eci\014es)18 b(the)g(sym)o(b)q(ols)d -(whic)o(h)i(are)g(exp)q(orted)h(\(i.e.)26 b FB(visible)s -FD(\))16 b(outside)h(the)h(curren)o(t)g(mo)q(dule.)25 -b(By)17 b(default,)75 1409 y(sym)o(b)q(ols)g(de\014ned)j(in)f(a)g(mo)q -(dule)e(are)i(not)g(visible)f(outside)i(this)f(mo)q(dule,)f(excepted)j -(the)e(sym)o(b)q(ols)f(whic)o(h)75 1459 y(app)q(ear)c(in)g(an)f -Fu(export)g FD(clause.)75 1509 y(If)c(sev)o(eral)h Fu(export)f -FD(clauses)h(app)q(ear)h(in)e(a)g(mo)q(dule,)g(the)h(set)h(of)e(exp)q -(orted)i(sym)o(b)q(ols)d(is)h(determined)h(b)o(y)f FB(unioning)75 -1559 y FD(sym)o(b)q(ols)j(exp)q(orted)k(in)d(all)g(the)h -Fu(export)f FD(clauses.)75 1609 y(The)h(result)h(of)e -FB(exp)n(ort)18 b FD(is)c(unde\014ned.)75 1717 y Fu(\(import)20 -b Fm(h)p FD(mo)q(dule)399 1723 y Fy(1)417 1717 y Fm(i)i(h)p -FD(mo)q(dule)605 1723 y Fy(2)622 1717 y Fm(i)p FB(.)6 -b(.)g(.)g Fu(\))1002 b FD(syn)o(tax)75 1791 y(Sp)q(eci\014es)15 -b(the)g(mo)q(dules)d(whic)o(h)i(are)g(imp)q(orted)f(b)o(y)g(the)i -(curren)o(t)g(mo)q(dule.)h(Imp)q(orting)c(a)i(mo)q(dule)e(mak)o(es)h -(the)75 1841 y(sym)o(b)q(ols)h(it)i(exp)q(orts)h(visible)e(to)g(the)i -(imp)q(orter,)e(if)f(not)i(hidden)g(b)o(y)g(lo)q(cal)f(de\014nitions.) -23 b(When)16 b(a)g(sym)o(b)q(ol)e(is)75 1891 y(exp)q(orted)g(b)o(y)e -(sev)o(eral)h(of)f(the)h(imp)q(orted)e(mo)q(dules,)g(the)i(lo)q(cation) -f(denoted)h(b)o(y)f(this)h(sym)o(b)q(ol)d(in)i(the)h(imp)q(orter)75 -1941 y(mo)q(dule)k(corresp)q(ond)j(to)f(the)g(one)f(of)g(the)h(\014rst) -h(mo)q(dule)d(in)h(the)h(list)f(\()p Fm(h)p FD(mo)q(dule)1393 -1947 y Fy(1)1411 1941 y Fm(i)g(h)p FD(mo)q(dule)1595 -1947 y Fy(2)1613 1941 y Fm(i)p FD(.)6 b(.)h(.)f(\))33 -b(whic)o(h)75 1990 y(exp)q(ort)15 b(it.)75 2041 y(If)20 -b(sev)o(eral)g Fu(import)f FD(clauses)i(app)q(ear)g(in)f(a)f(mo)q -(dule,)h(the)h(set)g(of)e(imp)q(orted)h(mo)q(dules)f(is)h(determined)g -(b)o(y)75 2090 y(app)q(ending)14 b(the)g(v)n(arious)f(list)h(of)f(mo)q -(dules)g(in)g(their)i(apparition)d(order.)153 2180 y -Ft(\(define-mod)o(ul)o(e)17 b(M1)193 2225 y(\(export)g(a)i(b\))193 -2271 y(\(define)e(a)i('M1-a\))193 2317 y(\(define)e(b)i('M1-b\)\))153 -2408 y(\(define-mod)o(ul)o(e)e(M2)193 2454 y(\(export)g(b)i(c\))193 -2499 y(\(define)e(b)i('M2-b\))193 2545 y(\(define)e(c)i('M2-c\)\))153 -2636 y(\(define-mod)o(ul)o(e)e(M3)193 2682 y(\(import)g(M1)h(M2\))193 -2728 y(\(display)e(\(list)i(a)h(b)g(c\)\)\))350 2773 -y Fs(=)-6 b Fn(\))19 b Ft(displays)e(\(m1-a)g(m1-b)h(m2-c\))p -eop +28 27 bop 37 45 a FE(28)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FF(F)l(or)10 b(instance,)i(the)f(follo)o(wing)g +(expression)g(giv)o(es)g(the)f(list)h(of)f(users)h(curren)o(tly)g +(connected)g(on)g(the)f(mac)o(hine)37 240 y(running)17 +b(the)e FB(STk)g FF(in)o(terpreter.)125 327 y Fv(\(port->sexp-list)j +(\(open-input-file)h("|)i(users"\)\))37 536 y FI(6.11)56 +b(Keyw)n(ords)37 622 y FF(Keyw)o(ords)16 b(are)e(sym)o(b)q(olic)j +(constan)o(ts)d(whic)o(h)i(ev)m(aluate)g(to)f(themselv)o(es.)21 +b(A)15 b(k)o(eyw)o(ord)f(m)o(ust)h(b)q(egin)i(with)37 +678 y(a)e(colon.)37 795 y Fw(\(keyword?)23 b FD(obj)7 +b Fw(\))1314 b FF(pro)q(cedure)37 875 y(Returns)16 b +Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 b(a)g(k)o(eyw)o(ord,)f(otherwise)i +(returns)f Fw(#f)p FF(.)37 992 y Fw(\(make-keyword)23 +b FD(obj)7 b Fw(\))1218 b FF(pro)q(cedure)37 1066 y(Builds)17 +b(a)e(k)o(eyw)o(ord)f(from)g(the)h(giv)o(en)g FD(obj)7 +b FF(.)19 b FD(obj)j FF(m)o(ust)14 b(b)q(e)h(a)g(sym)o(b)q(ol)g(or)f(a) +h(string.)20 b(A)15 b(colon)g(is)g(automat-)37 1116 y(ically)i(prep)q +(ended.)125 1203 y Fv(\(make-keyword)i("test"\))343 1252 +y Fu(=)-7 b Fp(\))21 b Fv(:test)125 1302 y(\(make-keyword)e('test\))343 +1352 y Fu(=)-7 b Fp(\))21 b Fv(:test)125 1402 y(\(make-keyword)e +(":hello"\))343 1452 y Fu(=)-7 b Fp(\))21 b Fv(::hello)37 +1656 y Fw(\(keyword->string)h FD(keywor)n(d)5 b Fw(\))1050 +b FF(pro)q(cedure)37 1729 y(Returns)16 b(the)g(name)f(of)f +FD(keywor)n(d)21 b FF(as)15 b(a)f(string.)20 b(The)c(leading)g(colon)g +(is)g(included)h(in)g(the)e(result.)125 1816 y Fv(\(keyword->string)j +(:test\))343 1866 y Fu(=)-7 b Fp(\))21 b Fv(":test")37 +2070 y Fw(\(get-keyword)i FD(keywor)n(d)h(list)t Fw(\))1062 +b FF(pro)q(cedure)37 2126 y Fw(\(get-keyword)23 b FD(keywor)n(d)h(list) +f(default)t Fw(\))907 b FF(pro)q(cedure)37 2200 y FD(List)20 +b FF(m)o(ust)c(b)q(e)g(a)g(list)h(of)f(k)o(eyw)o(ords)f(and)i(their)f +(resp)q(ectiv)o(e)h(v)m(alues.)24 b Fw(Get-keyword)15 +b FF(scans)h(the)g FD(list)k FF(and)37 2250 y(returns)e(the)f(v)m(alue) +i(asso)q(ciated)e(with)h(the)g(giv)o(en)g FD(keywor)n(d)5 +b FF(.)26 b(If)18 b(the)f FD(keywor)n(d)23 b FF(do)q(es)17 +b(not)g(app)q(ear)h(in)g(an)37 2300 y(o)q(dd)g(p)q(osition)h(in)f +FD(list)s FF(,)g(the)f(sp)q(eci\014ed)i FD(default)j +FF(is)c(returned,)g(or)f(an)g(error)f(is)i(raised)g(if)g(no)f(default)h +(w)o(as)37 2349 y(sp)q(eci\014ed.)125 2436 y Fv(\(get-keyword)h(:one)i +('\(:one)f(1)i(:two)f(2\)\))343 2486 y Fu(=)-7 b Fp(\))21 +b Fv(1)125 2536 y(\(get-keyword)e(:four)i('\(:one)f(1)i(:two)f(2\))g +(#f\))343 2586 y Fu(=)-7 b Fp(\))21 b Fv(#f)125 2636 +y(\(get-keyword)e(:four)i('\(:one)f(1)i(:two)f(2\)\))343 +2685 y Fu(=)-7 b Fp(\))21 b Fi(error)p eop %%Page: 29 29 -29 28 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(29)p 75 64 1763 2 v 75 179 a Fl(Note:)34 b Fs(There)14 -b(is)g(no)g(kind)h(of)e Fl(tr)n(ansitivity)g Fs(in)i(mo)q(dule)g(imp)q -(ortations:)20 b(when)14 b(the)f(mo)q(dule)i Fk(C)i Fs(imp)q(orts)d -(the)g(mo)q(dule)75 229 y Fk(B)g Fs(whic)o(h)g(an)f(imp)q(orter)h(of)e -Fk(A)p Fs(,)g(the)h(sym)o(b)q(ols)h(of)f Fk(A)f Fs(are)h(not)g(visible) -i(from)d Fk(C)s Fs(,)h(except)g(b)o(y)g(explicitly)j(imp)q(orting)f -(the)e Fk(A)75 278 y Fs(mo)q(dule)f(from)e Fk(C)s Fs(.)33 -b Fl(Note:)c Fs(The)11 b(mo)q(dule)g Ft(STk)p Fs(,)e(whic)o(h)i(con)o -(tains)h(the)e Fl(glob)n(al)g(variables)g Fs(is)h(alw)o(a)o(ys)g -(implicitl)q(y)i(imp)q(orted)75 328 y(from)g(a)g(mo)q(dule.F)m -(urthermore,)h(this)g(mo)q(dule)h(is)e(alw)o(a)o(ys)h(placed)h(at)e -(the)g(end)g(of)g(the)g(list)h(of)f(imp)q(orted)i(mo)q(dules.)75 -415 y Fu(\(export-symbol)k FB(symb)n(ol)j(mo)n(dule)s -Fu(\))964 b FD(pro)q(cedure)75 489 y(Exp)q(orts)14 b -FB(symb)n(ol)k FD(from)12 b FB(mo)n(dule)s FD(.)18 b(This)13 -b(pro)q(cedure)i(can)f(b)q(e)g(useful,)f(when)h(debugging)f(a)g -(program,)f(to)h(mak)o(e)75 539 y(visible)g(a)g(giv)o(en)f(sym)o(b)q -(ol)g(without)h(reloading)f(or)h(rede\014ning)h(the)g(mo)q(dule)e -(where)i(this)f(sym)o(b)q(ol)f(w)o(as)h(de\014ned.)75 -676 y Fu(\(export-all-symbo)o(ls)m(\))1148 b FD(pro)q(cedure)75 -749 y(Exp)q(orts)14 b(all)e(the)i(sym)o(b)q(ols)e(of)h(curren)o(t)i(mo) -q(dule)d(.)18 b(If)13 b(sym)o(b)q(ols)f(are)i(added)f(to)h(the)g -(curren)o(t)g FB(mo)n(dule)j FD(after)d(the)75 799 y(call)f(to)h -Fu(export-all-symbol)o(s)p FD(,)c(they)15 b(are)f(automatically)d(exp)q -(orted.)75 849 y Fl(Note:)34 b Fs(The)14 b Ft(STk)e Fs(mo)q(dule)j(exp) -q(ort)f(all)h(the)e(sym)o(b)q(ols)i(whic)o(h)g(are)e(de\014ned)i(in)f -(it)g(\(i.e.)19 b Fl(glob)n(al)12 b(variables)i Fs(are)f(visible,)j(if) -75 898 y(not)d(hidden,)i(from)e(all)h(the)f(mo)q(dules)i(of)d(a)h -(program.)75 986 y Fu(\(with-module)19 b FB(mo)n(dule)j -Fm(h)p FD(expr)601 992 y Fy(1)621 986 y Fm(i)g(h)p FD(expr)754 -992 y Fy(2)773 986 y Fm(i)g FB(.)6 b(.)g(.)g Fu(\))829 -b FD(syn)o(tax)75 1059 y(Ev)n(aluates)17 b(the)h(expressions)g(of)f -Fm(h)p FD(expr)707 1065 y Fy(1)726 1059 y Fm(i)g(h)p -FD(expr)854 1065 y Fy(2)874 1059 y Fm(i)g FD(.)7 b(.)f(.)g(in)17 -b(the)h FB(mo)n(dule)i FD(en)o(vironmen)o(t.)27 b FB(Mo)n(dule)21 -b FD(m)o(ust)16 b(ha)o(v)o(e)75 1109 y(b)q(een)k(created)g(previously)f -(b)o(y)g(a)f Fu(define-module)p FD(.)30 b(The)20 b(result)f(of)f -Fu(with-module)f FD(is)i(the)g(result)h(of)e(the)75 1159 -y(ev)n(aluation)12 b(of)i(the)g(last)g Fm(h)p FD(expr)p -Fm(i)q FD(.)193 1230 y Ft(\(define-m)o(od)o(ule)i(M)232 -1275 y(\(define)h(a)i(1\))232 1321 y(\(define)e(b)i(2\)\))193 -1412 y(\(with-mod)o(ul)o(e)e(M)252 1458 y(\(+)h(a)i(b\)\))350 -1504 y Fs(=)-6 b Fn(\))19 b Ft(3)75 1662 y Fu(\(current-module)m(\)) -1235 b FD(pro)q(cedure)75 1731 y(Returns)15 b(the)f(curren)o(t-mo)q -(dule.)193 1797 y Ft(\(define-m)o(od)o(ule)i(M)252 1843 -y(...\))212 1934 y(\(with-modu)o(le)g(M)252 1980 y(\(cons)h(\(eq?)h -(\(current-m)o(odu)o(le)o(\))f(\(find-mod)o(ul)o(e)g('M\)\))369 -2025 y(\(eq?)h(\(current-m)o(odu)o(le)o(\))f(\(find-mod)o(ul)o(e)g -('STk\)\)\)\))350 2117 y Fs(=)-6 b Fn(\))19 b Ft(\(#t)g(.)g(#f\))75 -2270 y Fu(\(module-name)g FB(mo)n(dule)s Fu(\))1150 b -FD(pro)q(cedure)75 2343 y(Returns)15 b(the)f(name)f(\(a)h(sym)o(b)q -(ol\))e(asso)q(ciated)j(to)e(a)h FB(mo)n(dule)s FD(.)75 -2430 y Fu(\(module-imports)19 b FB(mo)n(dule)s Fu(\))1084 -b FD(pro)q(cedure)75 2504 y(Returns)15 b(the)f(list)g(mo)q(dules)e -(that)i FB(mo)n(dule)k FD(imp)q(orts.)75 2591 y Fu(\(module-exports)h -FB(mo)n(dule)s Fu(\))1084 b FD(pro)q(cedure)75 2664 y(Returns)15 -b(the)f(list)g(of)f(sym)o(b)q(ols)f(exp)q(orted)j(b)o(y)f -FB(mo)n(dule)s FD(.)75 2751 y Fu(\(module-symbols)19 -b FB(mo)n(dule)s Fu(\))1084 b FD(pro)q(cedure)75 2825 -y(Returns)15 b(the)f(list)g(sym)o(b)q(ols)e(that)i(ere)h(de\014ned)g -(in)e FB(mo)n(dule)t FD(.)p eop +29 28 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(29)p 37 64 1838 2 v 37 190 a FI(6.12)56 b(Tk)18 b(commands)37 +276 y FF(As)e(w)o(e)g(men)o(tioned)g(in)h(the)e(in)o(tro)q(duction,)i +FB(STk)e FF(can)h(easily)h(comm)o(unicate)f(with)g(the)f(Tk)h(to)q +(olkit.)22 b(All)37 333 y(the)16 b(commands)f(de\014ned)h(b)o(y)g(the)f +(Tk)g(to)q(olkit)g(are)g(visible)j(as)c Fw(Tk-command)p +FF(s,)g(a)h(basic)h(t)o(yp)q(e)f(recognized)37 389 y(b)o(y)h(the)g(in)o +(terpreter.)23 b Fw(Tk-command)p FF(s)14 b(can)j(b)q(e)f(called)i(lik)o +(e)f(regular)f(sc)o(heme)g(pro)q(cedures,)h(serving)f(as)g(an)37 +446 y(en)o(try)f(p)q(oin)o(t)h(in)o(to)f(the)g(Tk)g(library)l(.)37 +531 y Fn(Note:)37 b Fu(Some)13 b Fv(Tk-command)p Fu(s)g(can)h +(dynamically)d(create)k(other)g Fv(Tk-command)p Fu(s.)h(F)m(or)e +(instance,)g(execution)h(of)e(the)37 581 y(expression)125 +661 y Fv(\(label)20 b('.lab\))37 799 y Fu(will)f(create)j(a)e(new)h +Fv(Tk-command)d Fu(called)j(\\)p Fn(.lab)r Fu(".)37 b(This)20 +b(new)h(ob)r(ject,)h(whic)o(h)f(w)o(as)f(created)i(b)o(y)e(a)g +(primitiv)o(e)37 855 y Fv(Tk-command)p Fu(,)12 b(will)g(b)q(e)j(called) +e(a)h Fn(widget)s Fu(.)37 912 y Fn(Note:)51 b Fu(When)18 +b(a)f(new)h(widget)f(is)g(created,)i(it)e(captures)i(its)f(creation)f +(en)o(vironmen)o(t.)28 b(This)17 b(p)q(ermits)g(to)g(ha)o(v)o(e)37 +968 y(bindings)d(whic)o(h)g(access)h(v)n(ariables)e(in)h(the)g(scop)q +(e)h(of)f(the)g(widget)g(creation)g(call)f(\(see)j(6.17\).)37 +1083 y Fw(\(tk-command?)23 b FD(obj)7 b Fw(\))1242 b +FF(pro)q(cedure)37 1157 y(Returns)16 b Fw(#t)f FF(if)h +FD(obj)22 b FF(is)15 b(a)g Fw(Tk-command)p FF(,)f(otherwise)h(returns)g +Fw(#f)p FF(.)125 1238 y Fv(\(tk-command?)k(label\))343 +1287 y Fu(=)-7 b Fp(\))21 b Fv(#t)125 1337 y(\(begin)f(\(label)h +('.lab\))f(\(tk-command?)g(.lab\)\))343 1387 y Fu(=)-7 +b Fp(\))21 b Fv(#t)125 1437 y(\(tk-command?)e(12\))343 +1487 y Fu(=)-7 b Fp(\))21 b Fv(#f)37 1677 y Fw(\(widget?)i +FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 1750 y(Returns)17 +b Fw(#t)f FF(if)h FD(obj)23 b FF(is)16 b(a)g(widget,)h(otherwise)f +(returns)g Fw(#f)p FF(.)23 b(A)16 b(widget)g(is)h(a)f +Fw(Tk-command)f FF(created)h(b)o(y)g(a)37 1800 y(primitiv)o(e)h +Fw(Tk-command)d FF(suc)o(h)h(as)g Fw(button)p FF(,)f +Fw(label)p FF(,)g Fw(menu)p FF(,)g(etc.)125 1881 y Fv(\(widget?)20 +b(label\))343 1931 y Fu(=)-7 b Fp(\))21 b Fv(#f)125 1980 +y(\(begin)f(\(label)h('.lab\))f(\(widget?)g(.lab\)\))343 +2030 y Fu(=)-7 b Fp(\))21 b Fv(#t)125 2080 y(\(widget?)f(12\))343 +2130 y Fu(=)-7 b Fp(\))21 b Fv(#f)37 2320 y Fw(\(widget->string)h +FD(widget)t Fw(\))1108 b FF(pro)q(cedure)37 2393 y(Returns)16 +b(the)g(widget)f(name)g(of)g FD(widget)20 b FF(as)15 +b(a)f(string.)125 2474 y Fv(\(begin)20 b(\(label)h('.lab\))f +(\(widget->string)f(.lab\)\))343 2524 y Fu(=)-7 b Fp(\))21 +b Fv(".lab")37 2714 y Fw(\(string->widget)h FD(str)5 +b Fw(\))1178 b FF(pro)q(cedure)37 2787 y(Returns)16 b(the)g(widget)f +(whose)g(name)g(is)h FD(str)k FF(if)c(it)f(exists;)g(otherwise)h +(returns)f Fw(#f)p FF(.)p eop %%Page: 30 30 -30 29 bop 75 47 a FC(30)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FG(6.14)56 b(En)n(vironmen)n(ts)75 -255 y FD(En)o(vironmen)o(ts)11 b(are)h(\014rst)g(class)g(ob)r(jects)h -(in)e(STk.)17 b(The)c(follo)o(wing)c(primitiv)o(es)g(are)j(de\014ned)h -(on)f(en)o(vironmen)o(ts.)75 357 y Fu(\(environment?)19 -b FB(obj)6 b Fu(\))1198 b FD(pro)q(cedure)75 431 y(Returns)15 -b Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 b(an)f(en)o(vironmen)o(t,)g -(otherwise)i(returns)g Fu(#f)p FD(.)75 522 y Fu(\(the-environment)m(\)) -1213 b FD(pro)q(cedure)75 596 y(Returns)15 b(the)f(curren)o(t)i(en)o -(vironmen)o(t.)75 687 y Fu(\(global-environme)o(nt)m(\))1148 -b FD(pro)q(cedure)75 761 y(Returns)15 b(the)f(\\global")e(en)o -(vironmen)o(t)h(\(i.e.)k(the)e(toplev)o(el)e(en)o(vironmen)o(t\).)75 -852 y Fu(\(parent-environme)o(nt)19 b FB(env)t Fu(\))1061 -b FD(pro)q(cedure)75 926 y(Returns)20 b(the)f(paren)o(t)g(en)o -(vironmen)o(t)f(of)g FB(env)5 b FD(.)33 b(If)18 b(en)o(v)h(is)g(the)g -(\\global")e(en)o(vironmen)o(t)g(\(i.e.)32 b(the)20 b(toplev)o(el)75 -975 y(en)o(vironmen)o(t\),)12 b Fu(parent-environment)f -FD(returns)k Fu(#f)p FD(.)75 1067 y Fu(\(environment->lis)o(t)k -FB(envir)n(onment)t Fu(\))920 b FD(pro)q(cedure)75 1136 -y(Returns)15 b(a)e(list)h(of)f FB(a-lists)p FD(,)g(represen)o(ting)i -(the)g(bindings)e(in)h FB(envir)n(onment)t FD(.)k(Eac)o(h)d -FB(a-list)e FD(describ)q(es)j(one)e(lev)o(el)75 1182 -y(of)f(bindings,)g(with)h(the)g(innermost)f(lev)o(el)h(coming)e -(\014rst.)153 1251 y Ft(\(define)17 b(E)j(\(let)e(\(\(a)g(1\))h(\(b)g -(2\)\))389 1297 y(\(let)f(\(\(c)g(3\)\))428 1342 y(\(the-envir)o(on)o -(men)o(t\))o(\)\)\))153 1434 y(\(car)h(\(environ)o(men)o(t->)o(li)o(st) -d(E\)\))j Fs(=)-6 b Fn(\))19 b Ft(\(\(c)g(.)g(3\)\))153 -1525 y(\(cadr)f(\(environme)o(nt-)o(>l)o(ist)e(E\)\))p -Fs(=)-6 b Fn(\))18 b Ft(\(\(b)h(.)g(2\))g(\(a)f(.)i(1\)\))75 -1685 y Fu(\(procedure-enviro)o(nment)e FB(pr)n(o)n(c)n(e)n(dur)n(e)s -Fu(\))890 b FD(pro)q(cedure)75 1755 y(Returns)10 b(the)g(en)o(vironmen) -o(t)e(asso)q(ciated)i(with)f FB(pr)n(o)n(c)n(e)n(dur)n(e)s -FD(.)16 b Fu(Procedure-environme)o(nt)6 b FD(returns)11 -b Fu(#f)e FD(if)f FB(pr)n(o)n(c)n(e)n(dur)n(e)75 1800 -y FD(is)14 b(not)g(a)f(closure.)153 1869 y Ft(\(define)k(foo)i(\(let)f -(\(\(a)g(1\)\))h(\(lambda)e(\(\))i(a\)\)\))153 1915 y(\(car)g -(\(environ)o(men)o(t->)o(li)o(st)330 1961 y(\(procedure)o(-e)o(nvi)o -(ro)o(nme)o(nt)d(foo\)\)\))703 2006 y Fs(=)-6 b Fn(\))19 -b Ft(\(\(a)g(.)g(1\)\))75 2167 y Fu(\(module-environme)o(nt)g -FB(mo)n(dule)s Fu(\))997 b FD(pro)q(cedure)75 2236 y(Returns)15 -b(the)f(en)o(vironmen)o(t)f(asso)q(ciated)i(to)e(the)i(mo)q(dule)d -FB(mo)n(dule)t FD(.)153 2305 y Ft(\(define-mod)o(ul)o(e)17 -b(M)212 2351 y(\(define)g(a)i(1\)\))153 2396 y(\(car)g(\(environ)o(men) -o(t->)o(li)o(st)330 2442 y(\(module-en)o(vi)o(ron)o(me)o(nt)d -(\(find-modu)o(le)g('M\)\)\)\))703 2488 y Fs(=)-6 b Fn(\))19 -b Ft(\(\(a)g(.)g(1\)\))75 2648 y Fu(\(symbol-bound?)g -FB(symb)n(ol)t Fu(\))1111 b FD(pro)q(cedure)75 2698 y -Fu(\(symbol-bound?)19 b FB(symb)n(ol)j(envir)n(onment)t -Fu(\))865 b FD(pro)q(cedure)75 2772 y(Returns)17 b Fu(#t)e -FD(if)h FB(symb)n(ol)k FD(has)c(a)f(v)n(alue)h(in)f(the)i(giv)o(en)e -FB(envir)n(onment)5 b FD(,)16 b(otherwise)h(returns)g -Fu(#f)p FD(.)24 b FB(Envir)n(onment)75 2821 y FD(ma)o(y)12 -b(b)q(e)i(omitted,)e(in)i(whic)o(h)g(case)h(it)e(defaults)h(to)g(the)g -(global)e(en)o(vironmen)o(t.)p eop +30 29 bop 37 45 a FE(30)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(begin)j(\(label)h('.lab\))f +(\(string->widget)f(".lab"\)\))343 240 y Fu(=)-7 b Fp(\))21 +b Fv(the)g(Tk-command)f(named)h(".lab")37 459 y Fw(\(widget-name)i +FD(widget)t Fw(\))1179 b FF(pro)q(cedure)37 534 y(Returns)16 +b(the)g(widget)f(name)g(of)g FD(widget)20 b FF(as)15 +b(a)f(sym)o(b)q(ol.)125 628 y Fv(\(begin)20 b(\(label)h('.lab\))f +(\(widget->name)f(.lab\)\))343 678 y Fu(=)-7 b Fp(\))21 +b Fv(.lab)37 896 y Fw(\(set-widget-data!)h FD(widget)i(expr)5 +b Fw(\))951 b FF(pro)q(cedure)37 978 y Fw(Set-widget-data!)15 +b FF(asso)q(ciates)i(arbitrary)g(data)f(with)i(a)f FD(widget)t +FF(.)26 b(The)18 b(system)e(mak)o(es)h(no)g(assump-)37 +1034 y(tions)e(ab)q(out)g(the)f(t)o(yp)q(e)h(of)f Fw(expr)p +FF(;)g(the)h(data)f(is)h(for)f(programmer)f(con)o(v)o(enience)j(only)l +(.)21 b(As)14 b(sho)o(wn)h(b)q(elo)o(w,)37 1091 y(it)h(could)g(b)q(e)g +(used)g(as)f(a)g(kind)h(of)f(prop)q(ert)o(y)f(list)i(for)f(widgets.)37 +1219 y Fw(\(get-widget-data)22 b FD(widget)t Fw(\))1084 +b FF(pro)q(cedure)37 1293 y(Returns)16 b(the)g(data)e(previously)j +(asso)q(ciated)e(with)h FD(widget)j FF(if)d(it)f(exists;)h(otherwise)f +(returns)g Fw(#f)p FF(.)125 1387 y Fv(\(begin)190 1437 +y(\(set-widget-data!)j(.w)k('\(:mapped)e(#t)h(:geometry)f("10x50"\)\)) +190 1487 y(\(get-keyword)f(:mapped)i(\(get-widget-data)d(.w\)\)\))343 +1537 y Fu(=)-7 b Fp(\))21 b Fv(#t)37 1763 y FI(6.13)56 +b(Mo)r(dules)37 1852 y FB(STk)12 b FF(mo)q(dules)h(can)f(b)q(e)h(used)g +(to)e(organize)i(a)f(program)f(in)o(to)h(separate)f(en)o(vironmen)o(ts) +i(\(or)p FD(name)f(sp)n(ac)n(es)t FF(\).)37 1908 y(Mo)q(dules)j(pro)o +(vide)g(a)e(clean)i(w)o(a)o(y)e(to)h(organize)g(and)g(enforce)g(the)g +(barriers)g(b)q(et)o(w)o(een)g(the)g(comp)q(onen)o(ts)g(of)37 +1964 y(a)h(program.)37 2022 y FB(STk)k FF(pro)o(vides)g(a)f(simple)i +(mo)q(dule)g(system)e(whic)o(h)i(is)f(largely)g(inspired)i(from)d(the)h +(one)g(of)f(T)l(ung)h(and)37 2079 y(Dyb)o(vig)d(exp)q(osed)h(in)f([5)o +(].)21 b(As)16 b(their)g(mo)q(dules)h(system,)d FB(STk)h +FF(mo)q(dules)i(are)e(de\014ned)i(to)e(b)q(e)i(easily)f(used)37 +2135 y(in)h(an)e(in)o(teractiv)o(e)g(en)o(vironmen)o(t.)37 +2257 y Fw(\(define-module)22 b FD(name)i Fo(h)p FF(b)q(o)q(dy)p +Fo(i)p Fw(\))1060 b FF(syn)o(tax)37 2338 y FD(De\014ne-mo)n(dule)15 +b FF(ev)m(aluates)d(the)f(expressions)h(whic)o(h)g(are)f(in)h +Fo(h)p FF(b)q(o)q(dy)p Fo(i)g FF(in)g(the)f(en)o(vironmen)o(t)h(of)e +(the)i(mo)q(dule)37 2395 y FD(name)t FF(.)25 b FD(name)c +FF(m)o(ust)16 b(b)q(e)i(a)f(v)m(alid)i(sym)o(b)q(ol.)26 +b(If)17 b(this)h(sym)o(b)q(ol)f(has)g(not)g(already)h(b)q(een)g(used)g +(to)e(de\014ne)i(a)37 2451 y(mo)q(dule,)25 b(a)d(new)g(mo)q(dule,)j +(named)d FD(name)s FF(,)i(is)e(created.)41 b(Otherwise,)24 +b Fo(h)p FF(b)q(o)q(dy)p Fo(i)e FF(is)h(ev)m(aluated)g(in)g(the)37 +2507 y(en)o(vironmen)o(t)16 b(of)f(the)g(\(old\))g(mo)q(dule)i +FD(name)811 2491 y FA(4)831 2507 y FF(.)37 2559 y(De\014nitions)f(done) +e(in)i(a)d(mo)q(dule)j(are)e(lo)q(cal)h(to)e(the)i(mo)q(dule)g(and)f +(do)h(not)e(in)o(teract)h(with)h(the)f(de\014nitions)37 +2608 y(of)h(other)g(mo)q(dules.)21 b(Consider)16 b(the)f(follo)o(wing)h +(de\014nitions,)p 37 2653 735 2 v 89 2680 a Ft(4)107 +2696 y Fs(In)10 b(fact)h Fq(define-mo)o(du)o(le)c Fs(on)k(a)g(giv)o(en) +h(name)f(de\014nes)h(a)f(new)f(mo)q(dule)i(only)g(the)f(\014rst)g(time) +g(it)g(is)h(in)o(v)o(ok)o(ed)g(on)f(this)h(name.)37 2742 +y(By)h(this)h(w)o(a)o(y)m(,)e(in)o(teactiv)o(ely)j(reloading)g(a)d(mo)q +(dule)i(do)q(es)f(not)g(de\014ne)h(a)e(new)h(en)o(tit)o(y)m(,)f(and)i +(the)e(other)h(mo)q(dules)h(whic)o(h)g(use)e(it)37 2787 +y(are)i(not)f(altered.)p eop %%Page: 31 31 -31 30 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(31)p 75 64 1763 2 v 75 179 a FG(6.15)56 b(Macros)75 -255 y Fz(STk)14 b FD(pro)o(vides)g(lo)o(w)f(lev)o(el)h(macros.)75 -305 y Fl(Note:)38 b Fj(STk)14 b Fs(macros)h(are)f(not)h(the)f(sort)h -(of)f(macros)h(de\014ned)g(in)h(the)e(app)q(endix)j(of)d -Fl(R)1373 289 y Fr(4)1384 305 y Fk(RS)r Fs(,)h(but)g(rather)f(the)h -(macros)75 355 y(one)e(can)h(\014nd)g(in)f(most)g(of)g(Lisp)h -(dialects.)75 458 y Fu(\(macro)21 b Fm(h)p FD(formals)p -Fm(i)f(h)p FD(b)q(o)q(dy)p Fm(i)p Fu(\))1159 b FD(syn)o(tax)75 -531 y Fu(Macro)14 b FD(p)q(ermits)h(to)g(create)i(a)e(macro.)21 -b(When)16 b(a)f(macro)f(is)h(called,)g(the)h(whole)f(form)f(\(i.e.)22 -b(the)16 b(macro)e(itself)75 581 y(and)g(its)g(parameters\))g(is)g -(passed)h(to)e(the)i(macro)e(b)q(o)q(dy)m(.)18 b(Binding)13 -b(asso)q(ciation)g(is)h(done)g(in)g(the)h(en)o(vironmen)o(t)75 -631 y(of)e(the)i(call.)i(The)e(result)g(of)e(the)i(binding)d(asso)q -(ciation)i(is)g(called)g(the)g FB(macr)n(o-exp)n(ansion)p -FD(.)19 b(The)c(result)f(of)g(the)75 681 y(macro)f(call)g(is)g(the)i -(result)g(of)e(the)h(ev)n(aluation)f(of)g(the)i(macro)d(expansion)i(in) -g(the)g(call)f(en)o(vironmen)o(t.)153 758 y Ft(\(define)k(foo)i -(\(macro)e(f)i(\022\(quote)e(,f\)\)\))153 804 y(\(foo)i(1)g(2)g(3\))333 -b Fs(=)-6 b Fn(\))19 b Ft(\(foo)f(1)h(2)h(3\))153 895 -y(\(define)d(1+)i(\(macro)f(form)g(\(list)f(+)i(\(cadr)f(form\))g -(1\)\)\))153 941 y(\(let)h(\(\(x)f(1\)\))g(\(1+)h(x\)\))156 -b Fs(=)-6 b Fn(\))19 b Ft(2)75 1112 y Fu(\(macro?)h FB(obj)6 -b Fu(\))1329 b FD(pro)q(cedure)75 1186 y(Returns)15 b -Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 b(a)f(macro,)g(otherwise)h -(returns)i Fu(#f)p FD(.)75 1280 y Fu(\(macro-expand-1)j -FB(form)s Fu(\))1124 b FD(pro)q(cedure)75 1330 y Fu(\(macro-expand)19 -b FB(form)s Fu(\))1168 b FD(pro)q(cedure)75 1399 y Fu(Macro-expand-1)16 -b FD(returns)21 b(the)e(macro)f(expansion)h(of)f FB(form)k -FD(if)c(it)h(is)g(a)f(macro)g(call,)h(otherwise)h FB(form)i -FD(is)75 1445 y(returned)d(unc)o(hanged.)31 b Fu(Macro-expand)15 -b FD(is)j(similar)d(to)j Fu(macro-expand-1)p FD(,)d(but)j(rep)q(eately) -h(expand)f FB(form)75 1491 y FD(un)o(til)13 b(it)h(is)f(no)h(longer)g -(a)f(macro)g(call.)153 1562 y Ft(\(define)k(1-)i(\(macro)f(form)g -(\022\(-)38 b(,\(cadr)17 b(form\))h(1\)\)\))153 1607 -y(\(define)f(--)i(\(macro)f(form)g(\022\(1-)g(,\(cadr)f(form\)\)\)\)) -153 1653 y(\(macro-expa)o(nd)o(-1)f('\(1-)i(10\)\))58 -b Fs(=)-6 b Fn(\))19 b Ft(\(-)g(10)g(1\))153 1699 y(\(macro-expa)o(nd) -55 b('\(1-)18 b(10\)\))58 b Fs(=)-6 b Fn(\))19 b Ft(\(-)g(10)g(1\))153 -1744 y(\(macro-expa)o(nd)o(-1)d('\(--)i(10\)\))58 b Fs(=)-6 -b Fn(\))19 b Ft(\(1-)g(10\))153 1790 y(\(macro-expa)o(nd)55 -b('\(--)18 b(10\)\))58 b Fs(=)-6 b Fn(\))19 b Ft(\(-)g(10)g(1\))75 -1955 y Fu(\(macro-expand)g FB(form)s Fu(\))1168 b FD(pro)q(cedure)75 -2025 y(Returns)15 b(the)f(macro)e(expansion)i(of)f FB(form)j -FD(if)d(it)g(is)h(a)f(macro)f(call,)h(otherwise)h FB(form)j -FD(is)c(returned)i(unc)o(hanged.)75 2070 y(Macro)f(expansion)g(con)o -(tin)o(ue)g(un)o(til,)e(the)j(form)d(obtained)i(is)153 -2141 y Ft(\(define)j(1-)i(\(macro)f(form)g(\(list)f('-)i(\(cadr)f -(form\))f(1\)\)\))153 2187 y(\(macro-expa)o(nd)f('\(1-)i(10\)\))97 -b Fs(=)-6 b Fn(\))19 b Ft(\(-)g(10)g(1\))75 2353 y Fu(\(macro-body)h -FB(macr)n(o)s Fu(\))1186 b FD(pro)q(cedure)75 2422 y(Returns)15 -b(the)f(b)q(o)q(dy)g(of)f FB(macr)n(o)153 2493 y Ft(\(macro-body)j -(1+\))703 2539 y Fs(=)-6 b Fn(\))19 b Ft(\(macro)e(form)h(\(list)g(+)h -(\(cadr)f(form\))g(1\)\))75 2704 y Fu(\(define-macro)h -FB(\()p Fm(h)p FD(name)p Fm(i)i(h)p FD(formals)p Fm(i)n -FB(\))h Fm(h)p FD(b)q(o)q(dy)p Fm(i)p Fu(\))830 b FD(macro)75 -2773 y Fu(Define-macro)10 b FD(is)j(a)g(macro)f(whic)o(h)h(p)q(ermits)f -(to)h(de\014ne)h(a)f(macro)f(more)g(easily)g(than)h(with)g(the)h -Fu(macro)e FD(form.)75 2819 y(It)i(is)g(similar)d(to)j(the)g -Fu(defmacro)f FD(of)g(Commo)o(n)e(Lisp)j([6)o(].)p eop +31 30 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(31)p 37 64 1838 2 v 168 190 a Fv(\(define-module)19 +b(M1)234 240 y(\(define)h(a)i(1\)\))168 340 y(\(define-module)d(M2)212 +390 y(\(define)h(a)i(2\))212 439 y(\(define)e(b)i(\(*)f(2)h(x\)\)\))37 +567 y FF(Here,)15 b(t)o(w)o(o)e(mo)q(dules)i(are)f(de\014ned)i(and)f +(they)f(b)q(oth)h(bind)g(the)g(sym)o(b)q(ol)g Fw(a)f +FF(to)g(a)g(v)m(alue.)20 b(Ho)o(w)o(ev)o(er,)14 b(since)h +Fw(a)37 623 y FF(has)h(b)q(een)g(de\014ned)g(in)g(t)o(w)o(o)e +(distincts)j(mo)q(dules)f(they)f(denote)h(t)o(w)o(o)e(di\013eren)o(t)h +(lo)q(cations.)37 680 y(The)21 b(\\)p Fw(STk)p FF(")f(mo)q(dule,)j +(whic)o(h)f(is)f(prede\014ned,)i(is)e(a)g(sp)q(ecial)h(mo)q(dule)g +(whic)o(h)g(con)o(tains)e(all)i(the)f FD(glob)n(al)37 +736 y(variables)f FF(of)15 b(a)h FD(R)354 719 y FA(4)366 +736 y Fz(RS)i FF(program.)j(A)16 b(sym)o(b)q(ol)g(de\014ned)i(in)e(the) +g Fw(STk)g FF(mo)q(dule,)h(if)f(not)g(hidden)h(b)o(y)f(a)g(lo)q(cal)37 +792 y(de\014nition,)i(is)d(alw)o(a)o(ys)g(visible)j(from)d(inside)i(a)e +(mo)q(dule.)22 b(So,)15 b(in)h(the)g(previous)g(exemple,)h(the)e +Fw(x)h FF(sym)o(b)q(ol)37 849 y(refers)f(the)h Fw(x)f +FF(sym)o(b)q(ol)g(de\014ned)i(in)f(the)f Fw(STk)g FF(mo)q(dule.)37 +905 y(The)h(result)g(of)e FD(de\014ne-mo)n(dule)19 b +FF(is)c(unde\014ned.)37 1002 y Fw(\(find-module)23 b +FD(name)s Fw(\))1197 b FF(pro)q(cedure)37 1059 y Fw(\(find-module)23 +b FD(name)g(default)t Fw(\))1041 b FF(pro)q(cedure)37 +1139 y FB(STk)13 b FF(mo)q(dules)i(are)e(\014rst)g(class)g(ob)s(jects)g +(and)h Fw(find-module)d FF(returns)j(the)f(mo)q(dule)h(asso)q(ciated)g +(to)f FD(name)37 1195 y FF(if)20 b(it)g(exists.)33 b(If)19 +b(there)h(is)g(no)f(mo)q(dule)h(asso)q(ciated)g(to)f +FD(name)s FF(,)h(an)f(error)g(is)h(signaled)g(if)g(no)f +FD(default)24 b FF(is)37 1252 y(pro)o(vided,)16 b(otherwise)g +Fw(find-module)d FF(returns)i(default.)37 1349 y Fw(\(module?)23 +b FD(obje)n(ct)t Fw(\))1286 b FF(pro)q(cedure)37 1422 +y(Returns)16 b Fw(#t)f FF(if)h FD(obje)n(ct)j FF(is)d(a)e(mo)q(dule)j +(and)e Fw(#f)g FF(otherwise.)168 1493 y Fv(\(module?)20 +b(\(find-module)g('STk\)\))343 1542 y Fu(=)-7 b Fp(\))21 +b Fv(#t)168 1592 y(\(module?)f('STk\))343 1642 y Fu(=)-7 +b Fp(\))21 b Fv(#f)168 1692 y(\(module?)f(1\))343 1742 +y Fu(=)-7 b Fp(\))21 b Fv(#f)37 1909 y Fw(\(export)i +Fo(h)p FF(sym)o(b)q(ol)386 1916 y FA(1)406 1909 y Fo(i)h(h)p +FF(sym)o(b)q(ol)606 1916 y FA(2)626 1909 y Fo(i)o FD(.)7 +b(.)g(.)g Fw(\))1015 b FF(syn)o(tax)37 1989 y(Sp)q(eci\014es)15 +b(the)c(sym)o(b)q(ols)i(whic)o(h)f(are)g(exp)q(orted)g(\(i.e.)19 +b FD(visible)s FF(\))11 b(outside)h(the)g(curren)o(t)g(mo)q(dule.)20 +b(By)12 b(default,)37 2046 y(sym)o(b)q(ols)j(de\014ned)h(in)f(a)e(mo)q +(dule)j(are)e(not)f(visible)k(outside)e(this)f(mo)q(dule,)h(excepted)g +(the)g(sym)o(b)q(ols)f(whic)o(h)37 2102 y(app)q(ear)i(in)g(an)f +Fw(export)f FF(clause.)37 2159 y(If)j(sev)o(eral)g Fw(export)f +FF(clauses)i(app)q(ear)f(in)g(a)f(mo)q(dule,)i(the)f(set)g(of)f(exp)q +(orted)h(sym)o(b)q(ols)g(is)g(determined)h(b)o(y)37 2215 +y FD(unioning)d FF(sym)o(b)q(ols)g(exp)q(orted)h(in)g(all)g(the)f +Fw(export)g FF(clauses.)37 2272 y(The)h(result)g(of)e +FD(exp)n(ort)20 b FF(is)c(unde\014ned.)37 2369 y Fw(\(import)23 +b Fo(h)p FF(mo)q(dule)390 2376 y FA(1)411 2369 y Fo(i)h(h)p +FF(mo)q(dule)615 2376 y FA(2)635 2369 y Fo(i)p FD(.)7 +b(.)g(.)g Fw(\))1005 b FF(syn)o(tax)37 2449 y(Sp)q(eci\014es)17 +b(the)c(mo)q(dules)i(whic)o(h)g(are)f(imp)q(orted)g(b)o(y)g(the)g +(curren)o(t)g(mo)q(dule.)20 b(Imp)q(orting)15 b(a)e(mo)q(dule)j(mak)o +(es)37 2505 y(the)k(sym)o(b)q(ols)f(it)h(exp)q(orts)f(visible)i(to)d +(the)i(imp)q(orter,)g(if)f(not)g(hidden)i(b)o(y)e(lo)q(cal)h +(de\014nitions.)34 b(When)19 b(a)37 2562 y(sym)o(b)q(ol)d(is)g(exp)q +(orted)g(b)o(y)f(sev)o(eral)h(of)f(the)g(imp)q(orted)h(mo)q(dules,)g +(the)f(lo)q(cation)i(denoted)f(b)o(y)f(this)h(sym)o(b)q(ol)37 +2618 y(in)23 b(the)f(imp)q(orter)g(mo)q(dule)h(corresp)q(ond)f(to)f +(the)h(one)g(of)g(the)f(\014rst)h(mo)q(dule)h(in)g(the)e(list)i(\()p +Fo(h)p FF(mo)q(dule)1837 2625 y FA(1)1857 2618 y Fo(i)37 +2674 y(h)p FF(mo)q(dule)199 2681 y FA(2)220 2674 y Fo(i)p +FF(.)7 b(.)g(.)g(\))20 b(whic)o(h)c(exp)q(ort)f(it.)37 +2731 y(If)i(sev)o(eral)f Fw(import)f FF(clauses)i(app)q(ear)f(in)h(a)e +(mo)q(dule,)i(the)f(set)g(of)g(imp)q(orted)g(mo)q(dules)h(is)g +(determined)g(b)o(y)37 2787 y(app)q(ending)g(the)f(v)m(arious)f(list)h +(of)f(mo)q(dules)h(in)h(their)e(apparition)h(order.)p +eop %%Page: 32 32 -32 31 bop 75 47 a FC(32)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 153 179 a Ft(\(define-mac)o(ro)i(\(incr)i(x\))h -(\022\(set!)e(,x)i(\(+)g(,x)f(1\)\)\))153 224 y(\(let)h(\(\(a)f(1\)\))g -(\(incr)g(a\))h(a\))78 b Fs(=)-6 b Fn(\))19 b Ft(2)153 -316 y(\(define-mac)o(ro)d(\(when)i(test)g(.)h(body\))193 -361 y(\022\(if)f(,test)f(,@\(if)h(\(null?)f(\(cdr)h(body\)\))g(body)g -(\022\(\(begin)e(,@body\)\)\)\)\))153 407 y(\(macro-expa)o(nd)g -('\(when)h(a)j(b\)\))38 b Fs(=)-6 b Fn(\))19 b Ft(\(if)g(a)g(b\))153 -453 y(\(macro-expa)o(nd)d('\(when)h(a)j(b)f(c)g(d\)\))703 -498 y Fs(=)-6 b Fn(\))19 b Ft(\(if)g(a)g(\(begin)e(b)i(c)h(d\)\))75 -622 y Fl(Note:)35 b Fs(Calls)14 b(to)g(macros)g(de\014ned)h(b)o(y)f -Ft(define-m)o(acr)o(o)c Fs(are)k(ph)o(ysically)j(replaced)e(b)o(y)f -(their)g(macro-expansion)i(if)e(the)75 672 y(v)n(ariable)h -Ft(*debug*)10 b Fs(is)k Ft(#f)e Fs(\(i.e.)18 b(their)c(b)q(o)q(dy)g(is) -g(\\in-lined")i(in)e(the)f(macro)g(call\).)19 b(T)m(o)13 -b(a)o(v)o(oid)h(this)g(feature,)f(and)h(to)f(ease)75 -721 y(debugging,)i(y)o(ou)f(ha)o(v)o(e)f(to)g(set)g(this)h(v)n(ariable) -h(to)e Ft(#t)p Fs(.)j(\(See)d(also)h(6.25\).)75 831 y -FG(6.16)56 b(System)16 b(pro)r(cedures)75 907 y FD(This)e(section)g -(lists)g(a)g(set)h(of)e(pro)q(cedures)j(whic)o(h)e(p)q(ermits)f(to)h -(access)i(some)d(system)g(in)o(ternals.)75 1011 y Fu -(\(expand-file-name)18 b FB(string)t Fu(\))1062 b FD(pro)q(cedure)75 -1084 y Fu(Expand-file-name)12 b FD(expands)k(the)g(\014lename)f(giv)o -(en)g(in)g FB(string)j FD(to)d(an)h(absolute)f(path.)23 -b(This)15 b(function)h(un-)75 1134 y(derstands)f(the)g -FB(tilde)f(c)n(onvention)h FD(for)f(\014lenames.)153 -1215 y Ft(;;)19 b(Current)e(directory)f(is)j(/users/eg/)o(STk)153 -1261 y(\(expand-fil)o(e-)o(nam)o(e)e(".."\))350 1306 -y Fs(=)-6 b Fn(\))19 b Ft("/users/eg)o(")153 1352 y(\(expand-fil)o(e-)o -(nam)o(e)e("~root/b)o(in\))350 1398 y Fs(=)-6 b Fn(\))19 -b Ft("/bin")153 1443 y(\(expand-fil)o(e-)o(nam)o(e)e("~/STk\)")350 -1489 y Fs(=)-6 b Fn(\))19 b Ft("/users/eg)o(/S)o(Tk")75 -1667 y Fu(\(canonical-path)g FB(p)n(ath)s Fu(\))1135 -b FD(pro)q(cedure)75 1741 y(Expands)12 b(all)e(sym)o(b)q(olic)g(links)h -(in)g FB(p)n(ath)k FD(and)d(returns)h(its)e(canonicalized)h(absolute)f -(pathname.)16 b(The)c(resulting)75 1791 y(path)e(do)f(not)h(ha)o(v)o(e) -g(sym)o(b)q(olic)e(links.)16 b(If)9 b FB(p)n(ath)14 b -FD(do)q(esn't)c(designate)g(a)g(v)n(alid)e(pathname,)h -FB(c)n(anonic)n(al-p)n(ath)14 b FD(returns)75 1840 y -Fu(#f)p FD(.)75 1938 y Fu(\(dirname)20 b FB(string)t -Fu(\))1258 b FD(pro)q(cedure)75 2007 y(Returns)15 b(a)e(string)h(con)o -(taining)f(all)g(but)h(the)g(last)g(comp)q(onen)o(t)f(of)g(the)i(path)f -(name)e(giv)o(en)i(in)f FB(string)s FD(.)153 2081 y Ft(\(dirname)k -("/a/b/c.st)o(k")o(\))350 2127 y Fs(=)-6 b Fn(\))19 b -Ft("/a/b")75 2298 y Fu(\(basename)h FB(string)t Fu(\))1236 -b FD(pro)q(cedure)75 2368 y(Returns)15 b(a)e(string)h(con)o(taining)f -(the)i(last)e(comp)q(onen)o(t)g(of)h(the)g(path)g(name)f(giv)o(en)g(in) -h FB(string)s FD(.)153 2441 y Ft(\(basname)j("/a/b/c.st)o(k")o(\))350 -2487 y Fs(=)-6 b Fn(\))19 b Ft("c.stk")75 2658 y Fu(\(decompose-file-n) -o(ame)g FB(string)t Fu(\))996 b FD(pro)q(cedure)75 2728 -y(Returns)14 b(an)e(\\explo)q(ded")h(list)f(of)g(the)h(path)g(name)e -(comp)q(onen)o(ts)i(giv)o(en)f(in)g FB(string)s FD(.)18 -b(The)13 b(\014rst)g(elemen)o(t)g(in)f(the)75 2773 y(list)g(denotes)i -(if)e(the)i(giv)o(en)e FB(string)k FD(is)d(an)f(absolute)h(path)g(or)g -(a)g(relativ)o(e)f(one,)h(b)q(eing)g Fu("/")f FD(or)h -Fu(".")f FD(resp)q(ectiv)o(ely)m(.)75 2819 y(Eac)o(h)i(comp)q(onen)o(t) -f(of)h(this)g(list)f(is)h(a)f(string.)p eop +32 31 bop 37 45 a FE(32)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(define-module)i(M1)168 +240 y(\(export)i(a)g(b\))168 290 y(\(define)g(a)g('M1-a\))168 +340 y(\(define)g(b)g('M1-b\)\))125 439 y(\(define-module)e(M2)168 +489 y(\(export)i(b)g(c\))168 539 y(\(define)g(b)g('M2-b\))168 +589 y(\(define)g(c)g('M2-c\)\))125 689 y(\(define-module)e(M3)168 +738 y(\(import)i(M1)g(M2\))168 788 y(\(display)f(\(list)h(a)h(b)f +(c\)\)\))343 838 y Fu(=)-7 b Fp(\))21 b Fv(displays)f(\(m1-a)h(m1-b)g +(m2-c\))37 979 y Fn(Note:)56 b Fu(There)19 b(is)g(no)f(kind)g(of)g +Fn(tr)n(ansitivity)j Fu(in)d(mo)q(dule)f(imp)q(ortations:)26 +b(when)19 b(the)g(mo)q(dule)e Fl(C)k Fu(imp)q(orts)c(the)37 +1035 y(mo)q(dule)h Fl(B)j Fu(whic)o(h)d(an)h(imp)q(orter)f(of)g +Fl(A)p Fu(,)h(the)g(sym)o(b)q(ols)e(of)h Fl(A)h Fu(are)g(not)g(visible) +f(from)f Fl(C)s Fu(,)i(except)h(b)o(y)e(explicitly)37 +1092 y(imp)q(orting)d(the)j Fl(A)f Fu(mo)q(dule)f(from)f +Fl(C)s Fu(.)57 b Fn(Note:)50 b Fu(The)17 b(mo)q(dule)f +Fv(STk)p Fu(,)g(whic)o(h)h(con)o(tains)g(the)h Fn(glob)n(al)f +(variables)j Fu(is)37 1148 y(alw)o(a)o(ys)12 b(implicitly)d(imp)q +(orted)i(from)f(a)i(mo)q(dule.F)m(urthermore,)e(this)i(mo)q(dule)f(is)h +(alw)o(a)o(ys)f(placed)h(at)g(the)h(end)g(of)e(the)37 +1205 y(list)j(of)f(imp)q(orted)g(mo)q(dules.)37 1306 +y Fw(\(export-symbol)22 b FD(symb)n(ol)i(mo)n(dule)s +Fw(\))963 b FF(pro)q(cedure)37 1386 y(Exp)q(orts)17 b +FD(symb)n(ol)j FF(from)c FD(mo)n(dule)s FF(.)24 b(This)17 +b(pro)q(cedure)g(can)g(b)q(e)g(useful,)h(when)f(debugging)g(a)f +(program,)g(to)37 1443 y(mak)o(e)i(visible)i(a)e(giv)o(en)g(sym)o(b)q +(ol)g(without)g(reloading)h(or)f(rede\014ning)h(the)f(mo)q(dule)h +(where)f(this)h(sym)o(b)q(ol)37 1499 y(w)o(as)c(de\014ned.)37 +1601 y Fw(\(export-all-symbols)n(\))1164 b FF(pro)q(cedure)37 +1681 y(Exp)q(orts)14 b(all)g(the)g(sym)o(b)q(ols)g(of)f(curren)o(t)h +(mo)q(dule)h(.)k(If)14 b(sym)o(b)q(ols)g(are)g(added)g(to)f(the)h +(curren)o(t)f FD(mo)n(dule)18 b FF(after)37 1737 y(the)e(call)g(to)f +Fw(export-all-symbols)p FF(,)d(they)j(are)g(automatically)h(exp)q +(orted.)37 1794 y Fn(Note:)36 b Fu(The)13 b Fv(STk)f +Fu(mo)q(dule)f(exp)q(ort)i(all)f(the)h(sym)o(b)q(ols)e(whic)o(h)i(are)g +(de\014ned)g(in)g(it)f(\(i.e.)17 b Fn(glob)n(al)d(variables)h +Fu(are)e(visible,)37 1850 y(if)h(not)f(hidden,)h(from)e(all)h(the)h(mo) +q(dules)f(of)g(a)h(program.)37 1952 y Fw(\(with-module)23 +b FD(name)g Fo(h)p FF(expr)583 1959 y FA(1)603 1952 y +Fo(i)h(h)p FF(expr)750 1959 y FA(2)769 1952 y Fo(i)g +FD(.)7 b(.)g(.)g Fw(\))847 b FF(syn)o(tax)37 2032 y(Ev)m(aluates)15 +b(the)g(expressions)g(of)f Fo(h)p FF(expr)713 2039 y +FA(1)733 2032 y Fo(i)g(h)p FF(expr)870 2039 y FA(2)889 +2032 y Fo(i)h FF(.)7 b(.)g(.)g(in)15 b(the)g(en)o(vironmen)o(t)g(of)f +(mo)q(dule)h FD(name)s FF(.)20 b(Mo)q(dule)37 2088 y +FD(name)e FF(m)o(ust)13 b(ha)o(v)o(e)h(b)q(een)h(created)f(previously)i +(b)o(y)e(a)g Fw(define-module)p FF(.)j(The)e(result)f(of)g +Fw(with-module)e FF(is)37 2145 y(the)k(result)f(of)g(the)g(ev)m +(aluation)i(of)e(the)g(last)g Fo(h)p FF(expr)p Fo(i)p +FF(.)168 2229 y Fv(\(define-module)k(M)212 2279 y(\(define)h(a)i(1\)) +212 2329 y(\(define)e(b)i(2\)\))168 2428 y(\(with-module)e(M)234 +2478 y(\(+)h(a)h(b\)\))343 2528 y Fu(=)-7 b Fp(\))21 +b Fv(3)37 2714 y Fw(\(current-module)n(\))1260 b FF(pro)q(cedure)37 +2787 y(Returns)16 b(the)g(curren)o(t-mo)q(dule.)p eop %%Page: 33 33 -33 32 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(33)p 75 64 1763 2 v 153 179 a Ft(\(decompose-)o(fi)o(le-)o(nam)o(e)16 -b("/a/b/c.st)o(k"\))350 224 y Fs(=)-6 b Fn(\))19 b Ft(\("/")f("a")h -("b")f("c.stk"\))153 270 y(\(decompose-)o(fi)o(le-)o(nam)o(e)e -("a/b/c.stk)o("\))350 316 y Fs(=)-6 b Fn(\))19 b Ft(\(".")f("a")h("b")f -("c.stk"\))75 481 y Fu(\(file-is-director)o(y?)h FB(string)t -Fu(\))1018 b FD(pro)q(cedure)75 531 y Fu(\(file-is-regular?)18 -b FB(string)t Fu(\))1062 b FD(pro)q(cedure)75 581 y Fu -(\(file-is-readable)o(?)19 b FB(string)t Fu(\))1040 b -FD(pro)q(cedure)75 630 y Fu(\(file-is-writable)o(?)19 -b FB(string)t Fu(\))1040 b FD(pro)q(cedure)75 680 y Fu -(\(file-is-executab)o(le?)19 b FB(string)t Fu(\))996 -b FD(pro)q(cedure)75 730 y Fu(\(file-exists?)19 b FB(string)t -Fu(\))1149 b FD(pro)q(cedure)75 804 y(Returns)16 b Fu(#t)e -FD(if)g(the)i(predicate)g(is)f(true)h(for)e(the)i(path)f(name)e(giv)o -(en)i(in)f FB(string)s FD(;)h(returns)i Fu(#f)d FD(otherwise)i(\(or)f -(if)75 853 y FB(string)i FD(denotes)e(a)f(\014le)g(whic)o(h)f(do)q(es)i -(not)f(exist\).)75 948 y Fu(\(glob)21 b Fx(patter)q(n)343 -954 y Fy(1)383 948 y Fx(patter)q(n)520 954 y Fy(2)560 -948 y Fx(:)7 b(:)g(:)f Fu(\))1021 b FD(pro)q(cedure)75 -1021 y(The)17 b(co)q(de)h(for)e Fu(glob)g FD(is)g(tak)o(en)h(from)e -(the)j(Tcl)e(library)m(.)26 b(It)16 b(p)q(erforms)h(\014le)f(name)g -(\\globbing")f(in)h(a)g(fashion)75 1071 y(similar)11 -b(to)i(the)h(csh)g(shell.)j Fu(Glob)c FD(returns)h(a)f(list)g(of)g(the) -h(\014lenames)e(that)h(matc)o(h)f(at)h(least)h(one)f(of)g(the)h -FB(p)n(attern)75 1121 y FD(argumen)o(ts.)j(The)e FB(p)n(attern)h -FD(argumen)o(ts)e(ma)o(y)e(con)o(tain)h(the)h(follo)o(wing)e(sp)q -(ecial)i(c)o(haracters:)137 1202 y Fm(\017)21 b FD(?)d(Matc)o(hes)d(an) -o(y)e(single)h(c)o(haracter.)137 1281 y Fm(\017)21 b -Fu(*)13 b FD(Matc)o(hes)i(an)o(y)f(sequence)i(of)d(zero)i(or)f(more)f -(c)o(haracters.)137 1360 y Fm(\017)21 b Fu([)p FD(c)o(hars)p -Fu(])14 b FD(Matc)o(hes)g(an)o(y)f(single)h(c)o(haracter)h(in)e(c)o -(hars.)18 b(If)13 b(c)o(hars)i(con)o(tains)e(a)g(sequence)j(of)d(the)h -(form)e Fu(a-b)179 1410 y FD(then)i(an)o(y)g(c)o(haracter)h(b)q(et)o(w) -o(een)g Fu(a)f FD(and)g Fu(b)f FD(\(inclusiv)o(e\))h(will)f(matc)o(h.) -137 1489 y Fm(\017)21 b Fu(\\)p FD(x)13 b(Matc)o(hes)i(the)g(c)o -(haracter)g Fu(x)p FD(.)137 1568 y Fm(\017)21 b(f)p FD(a,b,...)p -Fm(g)11 b FD(Matc)o(hes)k(an)o(y)e(of)g(the)i(strings)f -Fu(a)p FD(,)f Fu(b)p FD(,)g(etc.)75 1650 y(As)g(with)g(csh,)h(a)e(\\.") -18 b(at)12 b(the)i(b)q(eginning)e(of)h(a)g(\014le's)f(name)g(or)h(just) -g(after)h(a)e(\\/")h(m)o(ust)f(b)q(e)h(matc)o(hed)f(explicitly)75 -1700 y(or)i(with)f(a)h Fm(fg)f FD(construct.)20 b(In)14 -b(addition,)e(all)h(\\/")g(c)o(haracters)j(m)o(ust)c(b)q(e)j(matc)o -(hed)e(explicitly)m(.)75 1750 y(If)k(the)g(\014rst)h(c)o(haracter)g(in) -f(a)g(pattern)h(is)f(\\)p Fu(~)p FD(")f(then)h(it)g(refers)i(to)d(the)i -(home)e(directory)i(of)e(the)i(user)g(whose)75 1799 y(name)11 -b(follo)o(ws)f(the)j(\\)p Fu(~)p FD(".)k(If)12 b(the)g(\\)p -Fu(~)p FD(")g(is)g(follo)o(w)o(ed)e(immediately)f(b)o(y)j(\\/")f(then)i -(the)g(v)n(alue)e(of)h(the)h(en)o(vironmen)o(t)75 1849 -y(v)n(ariable)g(HOME)h(is)g(used.)75 1899 y Fu(Glob)i -FD(di\013ers)i(from)d(csh)j(globbing)d(in)i(t)o(w)o(o)f(w)o(a)o(ys.)27 -b(First,)17 b(it)g(do)q(es)h(not)e(sort)i(its)f(result)g(list)g(\(use)h -(the)f Fu(sort)75 1949 y FD(pro)q(cedure)g(if)c(y)o(ou)i(w)o(an)o(t)f -(the)h(list)f(sorted\).)22 b(Second,)15 b(glob)e(only)h(returns)j(the)e -(names)f(of)g(\014les)h(that)f(actually)75 1999 y(exist;)g(in)f(csh)i -(no)f(c)o(hec)o(k)g(for)g(existence)i(is)d(made)g(unless)i(a)e(pattern) -i(con)o(tains)f(a)f(?,)g Fu(*)p FD(,)h(or)f Fu([])p FD(construct.)75 -2093 y Fu(\(getcwd)o(\))1409 b FD(pro)q(cedure)75 2166 -y Fu(Getcwd)13 b FD(returns)i(a)f(string)g(con)o(taining)e(the)j -(curren)o(t)g(w)o(orking)e(directory)m(.)75 2261 y Fu(\(chdir)21 -b FB(string)t Fu(\))1301 b FD(pro)q(cedure)75 2334 y -Fu(Chdir)13 b FD(c)o(hanges)h(the)h(curren)o(t)g(directory)g(to)f(the)g -(directory)h(giv)o(en)e(in)h FB(string)s FD(.)75 2428 -y Fu(\(getpid)20 b FB(string)t Fu(\))1280 b FD(pro)q(cedure)75 -2502 y(Returns)15 b(the)g(system)g(pro)q(cess)h(n)o(um)o(b)q(er)e(of)g -(the)h(curren)o(t)h Fz(STk)f FD(in)o(terpreter)h(\(i.e.)k(the)15 -b(Unix)f FB(pid)p FD(\).)20 b(Result)15 b(is)75 2552 -y(an)f(in)o(teger.)75 2646 y Fu(\(system)20 b FB(string)t -Fu(\))1280 b FD(pro)q(cedure)75 2696 y Fu(\(!)21 b FB(string)t -Fu(\))1389 b FD(pro)q(cedure)75 2769 y(Sends)13 b(the)g(giv)o(en)f -FB(string)j FD(to)d(the)h(system)f(shell)g FB(/bin/sh)t -FD(.)17 b(The)c(result)g(of)e Fu(system)g FD(is)h(the)h(in)o(teger)g -(status)g(co)q(de)75 2819 y(the)h(shell)g(returns.)p -eop +33 32 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(33)p 37 64 1838 2 v 168 190 a Fv(\(define-module)19 +b(M)234 240 y(...\))190 340 y(\(with-module)g(M)234 390 +y(\(cons)h(\(eq?)h(\(current-module\))e(\(find-module)g('M\)\))364 +439 y(\(eq?)i(\(current-module\))e(\(find-module)g('STk\)\)\)\))343 +539 y Fu(=)-7 b Fp(\))21 b Fv(\(#t)g(.)h(#f\))37 781 +y Fw(\(select-module)g FD(name)s Fw(\))1216 b FF(syn)o(tax)37 +865 y(Ev)m(aluates)19 b(the)e(expressions)i(whic)o(h)f(follo)o(ws)g(in) +g(mo)q(dule)h FD(name)i FF(en)o(vironmen)o(t.)27 b(Mo)q(dule)19 +b FD(name)i FF(m)o(ust)37 921 y(ha)o(v)o(e)12 b(b)q(een)g(created)f +(previously)i(b)o(y)f(a)f Fw(define-module)p FF(.)16 +b(The)c(result)g(of)f Fw(select-module)f FF(is)h(unde\014ned.)37 +978 y Fw(Select-module)j FF(is)i(particularly)h(useful)f(when)g +(debugging)h(since)f(it)g(allo)o(ws)g(to)f(place)h(toplev)o(el)h(ev)m +(alu-)37 1034 y(ation)f(in)g(a)f(particular)g(mo)q(dule.)21 +b(The)16 b(follo)o(wing)g(transcript)f(sho)o(ws)f(an)i(usage)f(of)f +Fw(select-module)1809 1018 y FA(5)1827 1034 y FF(:)125 +1154 y Fv(STk>)21 b(\(define)f(foo)h(1\))125 1204 y(STk>)g +(\(define-module)e(bar)299 1254 y(\(define)h(foo)i(2\)\))125 +1304 y(STk>)f(foo)125 1354 y(1)125 1404 y(STk>)g(\(select-module)e +(bar\))125 1453 y(bar>)i(foo)125 1503 y(2)125 1553 y(bar>)g +(\(select-module)e(STk\))125 1603 y(STk>)37 1861 y Fw(\(module-name)k +FD(mo)n(dule)s Fw(\))1166 b FF(pro)q(cedure)37 1944 y(Returns)16 +b(the)g(name)f(\(a)f(sym)o(b)q(ol\))i(asso)q(ciated)f(to)f(a)h +FD(mo)n(dule)t FF(.)37 2089 y Fw(\(module-imports)22 +b FD(mo)n(dule)s Fw(\))1095 b FF(pro)q(cedure)37 2173 +y(Returns)16 b(the)g(list)g(mo)q(dules)g(that)e FD(mo)n(dule)19 +b FF(imp)q(orts.)37 2318 y Fw(\(module-exports)j FD(mo)n(dule)s +Fw(\))1095 b FF(pro)q(cedure)37 2401 y(Returns)16 b(the)g(list)g(of)e +(sym)o(b)q(ols)i(exp)q(orted)f(b)o(y)g FD(mo)n(dule)t +FF(.)37 2546 y Fw(\(module-symbols)22 b FD(mo)n(dule)s +Fw(\))1095 b FF(pro)q(cedure)37 2629 y(Returns)16 b(the)g(list)g(sym)o +(b)q(ols)f(that)f(ere)i(de\014ned)g(in)g FD(mo)n(dule)t +FF(.)p 37 2699 735 2 v 89 2726 a Ft(5)107 2742 y Fs(This)d(transcript)g +(uses)g(the)g(default)g(v)n(alue)h(for)e(the)h(function)g +Fq(repl-displ)o(ay-)o(pro)o(mp)o(t)c Fs(\(see)k(page)g(72\))f(whic)o(h) +h(displa)o(ys)37 2787 y(the)h(name)f(of)g(the)g(curren)o(t)g(mo)q(dule) +i(in)f(the)f(prompt.)p eop %%Page: 34 34 -34 33 bop 75 47 a FC(34)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(exec)21 b FB(string)t Fu(\))1323 -b FD(pro)q(cedure)75 252 y(Executes)23 b(the)e(command)d(con)o(tained)j -(in)f FB(string)k FD(and)d(redirects)h(its)f(output)g(in)f(a)h(string.) -39 b(This)20 b(string)75 302 y(constitutes)15 b(the)g(result)f(of)g -Fu(exec)p FD(.)75 409 y Fu(\(getenv)20 b FB(string)t -Fu(\))1280 b FD(pro)q(cedure)75 478 y(Lo)q(oks)17 b(for)h(the)g(en)o -(vironmen)o(t)f(v)n(ariable)f(named)h FB(string)j FD(and)e(returns)h -(its)f(v)n(alue)f(as)h(a)f(string,)h(if)f(it)g(exists.)75 -524 y(Otherwise,)e Fu(getenv)d FD(returns)k Fu(#f)p FD(.)153 -604 y Ft(\(getenv)h("SHELL"\))350 650 y Fs(=)-6 b Fn(\))19 -b Ft("/bin/zsh")75 836 y Fu(\(setenv!)h FB(var)i(value)s -Fu(\))1191 b FD(pro)q(cedure)75 905 y(Sets)13 b(the)f(en)o(vironmen)o -(t)f(v)n(ariable)g FB(var)16 b FD(to)c FB(value)s FD(.)18 -b FB(V)m(ar)d FD(and)d FB(value)j FD(m)o(ust)c(b)q(e)i(strings.)18 -b(The)12 b(result)h(of)e Fu(setenv!)75 951 y FD(is)j(unde\014ned.)153 -1030 y Ft(\(getenv)j("SHELL"\))350 1076 y Fs(=)-6 b Fn(\))19 -b Ft("/bin/zsh")75 1274 y FG(6.17)56 b(Addresses)75 1351 -y FD(An)12 b FB(addr)n(ess)f FD(is)g(a)h(Sc)o(heme)f(ob)r(ject)h(whic)o -(h)g(con)o(tains)f(a)g(reference)j(to)e(another)f(Sc)o(heme)h(ob)r -(ject.)18 b(This)11 b(t)o(yp)q(e)h(can)75 1400 y(b)q(e)f(view)o(ed)f -(as)g(a)f(kind)h(of)f(p)q(oin)o(ter)h(to)g(a)g(Sc)o(heme)g(ob)r(ject.) -17 b(Addresses,)c(ev)o(en)e(though)e(they)i(are)f(v)o(ery)g(dangerous,) -75 1450 y(ha)o(v)o(e)j(b)q(een)h(in)o(tro)q(duced)f(in)g -Fz(STk)g FD(so)g(that)g(ob)r(jects)h(that)f(ha)o(v)o(e)g(no)g -(\\readable")f(external)i(represen)o(tation)g(can)75 -1500 y(still)g(b)q(e)h(transformed)e(in)o(to)h(strings)h(and)f(bac)o(k) -h(without)f(loss)g(of)g(information.)j(Adresses)g(w)o(ere)e(useful)g -(with)75 1550 y(pre-3.0)f(v)o(ersion)g(of)f Fz(STk)p -FD(;)h(their)g(usage)h(is)e(no)o(w)h FC(stongly)g(discouraged)p -FD(,)d(unless)k(y)o(ou)e(kno)o(w)h(what)g(y)o(ou)f(do.)75 -1600 y(In)i(particular,)h(an)f(address)i(can)e(designate)h(an)f(ob)r -(ject)i(at)e(a)g(time)f(and)i(another)g(one)f(later)h(\(i.e.)22 -b(after)16 b(the)75 1649 y(garbage)e(collector)g(has)g(mark)o(ed)f(the) -h(zone)h(as)f(free\).)75 1699 y(Addresses)i(are)f(prin)o(ted)f(with)g -(a)f(sp)q(ecial)i(syn)o(tax:)j Fu(#pNNN)p FD(,)12 b(where)j -Fu(NNN)f FD(is)g(an)f(hexadecimal)g(v)n(alue.)k(Reading)75 -1749 y(this)d(v)n(alue)f(bac)o(k)h(yields)g(the)g(original)e(ob)r(ject) -j(whose)f(lo)q(cation)f(is)h Fu(NNN)p FD(.)75 1855 y -Fu(\(address-of)20 b FB(obj)6 b Fu(\))1241 b FD(pro)q(cedure)75 -1929 y(Returns)15 b(the)f(address)h(of)f Fu(obj)p FD(.)75 -2036 y Fu(\(address?)20 b FB(obj)6 b Fu(\))1285 b FD(pro)q(cedure)75 -2109 y(Returns)15 b Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 -b(an)f(address;)i(returns)h Fu(#f)d FD(otherwise.)75 -2227 y FG(6.18)56 b(Signals)75 2304 y Fz(STk)13 b FD(allo)o(ws)e(the)i -(use)g(to)f(asso)q(ciate)i(handlers)e(to)h(signals.)k(Signal)11 -b(handlers)i(for)f(a)g(giv)o(en)g(signal)f(can)i(ev)o(en)g(b)q(e)75 -2354 y(c)o(hained)i(in)f(a)h(list.)20 b(When)15 b(a)g(signal)f(o)q -(ccurs,)i(the)f(\014rst)h(signal)d(of)i(the)g(list)f(is)h(executed.)23 -b(Unless)16 b(this)e(signal)75 2404 y(yields)g(the)i(sym)o(b)q(ol)d -Fu(break)g FD(the)i(next)g(signal)f(of)g(the)h(list)g(is)f(ev)n -(aluated.)20 b(When)15 b(a)f(signal)g(handler)h(is)f(called,)75 -2454 y(the)g(in)o(teger)h(v)n(alue)e(of)g(this)h(signal)f(is)h(passed)h -(to)f(it)f(as)h(\(the)h(only\))e(parameter.)75 2504 y(The)19 -b(follo)o(wing)e(PO)o(XIX.1)h(constan)o(ts)i(for)f(signal)e(n)o(um)o(b) -q(ers)i(are)g(de\014ned:)29 b Fu(SIGABRT)p FD(,)17 b -Fu(SIGALRM)p FD(,)g Fu(SIGFPE)p FD(,)75 2554 y Fu(SIGHUP)p -FD(,)i Fu(SIGILL)p FD(,)g Fu(SIGINT)p FD(,)g Fu(SIGKILL)p -FD(,)f Fu(SIGPIPE)p FD(,)h Fu(SIGQUIT)p FD(,)g Fu(SIGSEGV)p -FD(,)f Fu(SIGTERM)p FD(,)h Fu(SIGUSR1)p FD(,)h Fu(SIGUSR2)p -FD(,)75 2603 y Fu(SIGCHLD)p FD(,)g Fu(SIGCONT)p FD(,)g -Fu(SIGSTOP)p FD(,)f Fu(SIGTSTP)p FD(,)h Fu(SIGTTIN)p -FD(,)g Fu(SIGTTOU)p FD(.)g(Moreo)o(v)o(er,)k(the)e(follo)o(wing)d -(constan)o(ts,)75 2653 y(whic)o(h)c(are)h(often)g(a)o(v)n(ailable)d(on) -i(most)g(systems)g(are)h(also)f(de\014ned)1147 2638 y -Fy(4)1167 2653 y FD(:)21 b Fu(SIGTRAP)p FD(,)14 b Fu(SIGIOT)p -FD(,)f Fu(SIGEMT)p FD(,)h Fu(SIGBUS)p FD(,)75 2703 y -Fu(SIGSYS)p FD(,)j Fu(SIGURG)p FD(,)f Fu(SIGCLD)p FD(,)h -Fu(SIGIO)p FD(,)g Fu(SIGPOLL)p FD(,)f Fu(SIGXCPU)p FD(,)h -Fu(SIGXFSZ)p FD(,)f Fu(SIGVTALRM)p FD(,)g Fu(SIGPROF)p -FD(,)h Fu(SIGWINCH)p FD(,)75 2753 y Fu(SIGLOST)p FD(.)p -75 2780 705 2 v 121 2807 a Fr(4)139 2819 y Fq(Some)10 -b(of)h(these)f(constan)o(ts)f(ma)o(y)i(b)q(e)g(unde\014ned)e(if)i(they) -f(are)h(not)g(supp)q(orted)e(b)o(y)i(y)o(our)f(system)p -eop +34 33 bop 37 45 a FE(34)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FI(6.14)56 b(En)n(vironmen)n(ts)37 +280 y FF(En)o(vironmen)o(ts)15 b(are)f(\014rst)h(class)f(ob)s(jects)g +(in)i(STk.)k(The)14 b(follo)o(wing)i(primitiv)o(es)g(are)e(de\014ned)i +(on)e(en)o(viron-)37 336 y(men)o(ts.)37 460 y Fw(\(environment?)23 +b FD(obj)7 b Fw(\))1218 b FF(pro)q(cedure)37 541 y(Returns)16 +b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 b(an)g(en)o(vironmen)o(t,)h +(otherwise)f(returns)g Fw(#f)p FF(.)37 673 y Fw(\(the-environment)n(\)) +1236 b FF(pro)q(cedure)37 755 y(Returns)16 b(the)g(curren)o(t)f(en)o +(vironmen)o(t.)37 887 y Fw(\(global-environment)n(\))1164 +b FF(pro)q(cedure)37 969 y(Returns)16 b(the)g(\\global")f(en)o +(vironmen)o(t)g(\(i.e.)20 b(the)c(toplev)o(el)g(en)o(vironmen)o(t\).)37 +1101 y Fw(\(parent-environment)22 b FD(env)5 b Fw(\))1067 +b FF(pro)q(cedure)37 1183 y(Returns)16 b(the)g(paren)o(t)f(en)o +(vironmen)o(t)h(of)f FD(env)t FF(.)20 b(If)c(en)o(v)f(is)h(the)g +(\\global")f(en)o(vironmen)o(t)h(\(i.e.)k(the)c(toplev)o(el)37 +1240 y(en)o(vironmen)o(t\),)f Fw(parent-environment)e +FF(returns)i Fw(#f)p FF(.)37 1372 y Fw(\(environment->list)22 +b FD(envir)n(onment)t Fw(\))913 b FF(pro)q(cedure)37 +1447 y(Returns)17 b(a)f(list)g(of)g FD(a-lists)p FF(,)f(represen)o +(ting)i(the)f(bindings)i(in)f FD(envir)n(onment)s FF(.)22 +b(Eac)o(h)16 b FD(a-list)f FF(describ)q(es)j(one)37 1497 +y(lev)o(el)f(of)e(bindings,)i(with)e(the)g(innermost)h(lev)o(el)g +(coming)g(\014rst.)125 1593 y Fv(\(define)k(E)i(\(let)f(\(\(a)g(1\))g +(\(b)g(2\)\))386 1643 y(\(let)g(\(\(c)g(3\)\))430 1693 +y(\(the-environment)o(\)\)\)\))125 1792 y(\(car)g(\(environment->li)o +(st)e(E\)\))i Fu(=)-7 b Fp(\))22 b Fv(\(\(c)f(.)g(3\)\))125 +1892 y(\(cadr)f(\(environment->list)e(E\)\))p Fu(=)-7 +b Fp(\))22 b Fv(\(\(b)f(.)g(2\))h(\(a)f(.)h(1\)\))37 +2117 y Fw(\(procedure-environment)f FD(pr)n(o)n(c)n(e)n(dur)n(e)s +Fw(\))882 b FF(pro)q(cedure)37 2192 y(Returns)18 b(the)g(en)o(vironmen) +o(t)f(asso)q(ciated)h(with)f FD(pr)n(o)n(c)n(e)n(dur)n(e)s +FF(.)26 b Fw(Procedure-environment)14 b FF(returns)k +Fw(#f)e FF(if)37 2242 y FD(pr)n(o)n(c)n(e)n(dur)n(e)j +FF(is)c(not)g(a)g(closure.)125 2338 y Fv(\(define)20 +b(foo)h(\(let)g(\(\(a)g(1\)\))g(\(lambda)g(\(\))g(a\)\)\))125 +2388 y(\(car)g(\(environment->li)o(st)321 2438 y(\(procedure-envir)o +(onmen)o(t)e(foo\)\)\))735 2487 y Fu(=)-7 b Fp(\))22 +b Fv(\(\(a)f(.)g(1\)\))37 2712 y Fw(\(module-environment)h +FD(mo)n(dule)s Fw(\))999 b FF(pro)q(cedure)37 2787 y(Returns)16 +b(the)g(en)o(vironmen)o(t)f(asso)q(ciated)g(to)g(the)g(mo)q(dule)i +FD(mo)n(dule)s FF(.)p eop %%Page: 35 35 -35 34 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(35)p 75 64 1763 2 v 75 179 a FD(See)11 b(y)o(our)f(Unix)f(do)q(cumen) -o(tation)g(for)h(the)g(exact)h(meaning)d(of)h(eac)o(h)i(constan)o(t)f -(or)g([7)o(].)17 b(Use)10 b(sym)o(b)q(olic)f(constan)o(ts)75 -229 y(rather)15 b(than)f(their)g(n)o(umeric)f(v)n(alue)g(if)g(y)o(ou)h -(plan)f(to)h(p)q(ort)g(y)o(our)g(program)e(on)h(another)i(system.)75 -278 y(A)d(sp)q(ecial)h(signal,)e(managed)g(b)o(y)h(the)h(in)o -(terpreter,)h(is)e(also)f(de\014ned:)19 b Fu(SIGHADGC)p -FD(.)10 b(This)i(signal)f(is)h(raised)h(when)75 328 y(the)h(garbage)g -(collector)g(phase)h(terminates.)75 378 y(When)h(the)g(in)o(terpreter)i -(starts)f(running,)e(all)g(signals)g(are)h(sets)i(to)d(their)h(default) -g(v)n(alue,)f(excepted)j Fu(SIGINT)75 428 y FD(\(generally)c(b)q(ound)g -(to)f Fu(C)p FD(on)o(trol-C\))g(whic)o(h)h(is)g(handled)g(sp)q(ecially) -m(.)75 529 y Fu(\(set-signal-handl)o(er!)19 b FB(sig)i(hand)r(ler)t -Fu(\))894 b FD(pro)q(cedure)75 603 y(Replace)14 b(the)h(handler)f(for)f -(signal)g FB(sig)k FD(with)d FB(hand)r(ler)5 b FD(.)18 -b(Handler)c(can)g(b)q(e)144 674 y(-)21 b Fu(#t)13 b FD(to)h(reset)h -(the)g(signal)e(handler)h(for)f FB(sig)18 b FD(to)13 -b(the)i(default)e(system)h(handler.)144 751 y(-)21 b -Fu(#f)15 b FD(to)g(completly)e(ignore)i FB(sig)k FD(\(Note)d(that)f(P)o -(osix.1)f(states)j(that)e Fu(SIGKILL)f FD(and)h Fu(SIGSTOP)e -FD(cannot)j(b)q(e)179 801 y(caugh)o(t)e(or)g(ignored\).)144 -878 y(-)21 b(a)13 b(one)h(parameter)g(pro)q(cedure.)75 -949 y(This)g(pro)q(cedure)i(returns)f(the)g(new)f(handler,)f(or)h -(\(length)g(1\))g(handler)g(list,)f(asso)q(ciated)i(to)e -FB(sig)t FD(.)153 1021 y Ft(\(let*)18 b(\(\(x)136 b(#f\))291 -1067 y(\(handler)16 b(\(lambda)h(\(i\))i(\(set!)e(x)j(#t\)\)\)\))193 -1112 y(\(set-sign)o(al)o(-ha)o(ndl)o(er)o(!)d(|SIGHADG)o(C|)f -(handler\))193 1158 y(\(gc\))193 1204 y(x\))350 1249 -y Fs(=)-6 b Fn(\))19 b Ft(#t)75 1410 y Fu(\(add-signal-handl)o(er!)g -FB(sig)i(hand)r(ler)t Fu(\))894 b FD(pro)q(cedure)75 -1483 y(Adds)18 b FB(hand)r(ler)k FD(to)17 b(the)h(list)f(of)g(handlers) -h(for)f(signal)g FB(sig)s FD(.)29 b(If)17 b(the)h(old)f(signal)f -(handler)h(is)h(a)f(b)q(o)q(olean,)g(this)75 1533 y(pro)q(cedure)g(is)f -(equiv)n(alen)o(t)e(to)h Fu(set-signal-handler!)o FD(.)20 -b(Otherwise,)d(the)f(new)f(handler)h(is)f(added)h(in)f(fron)o(t)75 -1583 y(of)d(the)h(previous)g(list)f(of)g(handler.)17 -b(This)c(pro)q(cedure)h(returns)g(the)f(new)g(handler,)g(or)f(handler)h -(list,)f(asso)q(ciated)75 1633 y(to)i FB(sig)s FD(.)153 -1705 y Ft(\(let*)k(\(\(x)156 b('\(\)\))291 1751 y(\(handler1)16 -b(\(lambda)h(\(i\))h(\(set!)g(x)h(\(cons)f(1)h(x\)\)\)\))291 -1796 y(\(handler2)d(\(lambda)h(\(i\))h(\(set!)g(x)h(\(cons)f(2)h -(x\)\)\)\)\))193 1842 y(\(add-sign)o(al)o(-ha)o(ndl)o(er)o(!)e -(|SIGHADG)o(C|)f(handler1\))193 1888 y(\(add-sign)o(al)o(-ha)o(ndl)o -(er)o(!)h(|SIGHADG)o(C|)f(handler2\))193 1933 y(\(gc\))193 -1979 y(x\))350 2025 y Fs(=)-6 b Fn(\))19 b Ft(\(1)g(2\))153 -2169 y(\(let*)f(\(\(x)156 b('\(\)\))291 2215 y(\(handler1)16 -b(\(lambda)h(\(i\))h(\(set!)g(x)h(\(cons)f(1)h(x\)\)\)\))291 -2260 y(\(handler2)d(\(lambda)h(\(i\))h(\(set!)g(x)h(\(cons)f(2)h(x\)\)) -g('break\)\))o(\))193 2306 y(\(add-sign)o(al)o(-ha)o(ndl)o(er)o(!)e -(|SIGHADG)o(C|)f(handler1\))193 2352 y(\(add-sign)o(al)o(-ha)o(ndl)o -(er)o(!)h(|SIGHADG)o(C|)f(handler2\))193 2397 y(\(gc\))193 -2443 y(x\))350 2489 y Fs(=)-6 b Fn(\))19 b Ft(\(2\))75 -2649 y Fu(\(get-signal-handl)o(ers)m(\))1126 b FD(pro)q(cedure)75 -2699 y Fu(\(get-signal-handl)o(ers)19 b FB(sig)t Fu(\))1051 -b FD(pro)q(cedure)75 2773 y(Returns)21 b(the)g(handlers,)h(or)e(the)h -(list)e(of)h(handlers,)i(asso)q(ciated)f(to)f(the)g(signal)g -FB(sig)s FD(.)37 b(If)20 b FB(sig)j FD(is)d(omitted,)75 -2823 y Fu(get-signal-handle)o(rs)11 b FD(returns)k(a)f(v)o(ector)h(of)e -(all)g(the)h(signal)f(handlers)h(curren)o(tly)h(in)e(e\013ect.)p +35 34 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(35)p 37 64 1838 2 v 125 190 a Fv(\(define-module)19 +b(M)190 240 y(\(define)h(a)i(1\)\))125 290 y(\(car)f(\(environment->li) +o(st)321 340 y(\(module-environm)o(ent)e(\(find-module)g('M\)\)\)\))735 +390 y Fu(=)-7 b Fp(\))22 b Fv(\(\(a)f(.)g(1\)\))37 577 +y Fw(\(symbol-bound?)h FD(symb)n(ol)5 b Fw(\))1123 b +FF(pro)q(cedure)37 634 y Fw(\(symbol-bound?)22 b FD(symb)n(ol)i(envir)n +(onment)t Fw(\))853 b FF(pro)q(cedure)37 714 y(Returns)12 +b Fw(#t)f FF(if)g FD(symb)n(ol)k FF(has)c(a)g(v)m(alue)h(in)g(the)f +(giv)o(en)g FD(envir)n(onment)s FF(,)h(otherwise)f(returns)g +Fw(#f)p FF(.)18 b FD(Envir)n(onment)37 770 y FF(ma)o(y)d(b)q(e)h +(omitted,)f(in)h(whic)o(h)g(case)f(it)g(defaults)h(to)f(the)g(global)h +(en)o(vironmen)o(t.)37 883 y FI(6.15)56 b(Macros)37 969 +y FB(STk)15 b FF(pro)o(vides)h(lo)o(w)f(lev)o(el)h(macros.)37 +1026 y Fn(Note:)35 b Fk(STk)12 b Fu(macros)f(are)h(not)f(the)i(sort)f +(of)f(macros)g(de\014ned)i(in)e(the)h(app)q(endix)g(of)f +Fn(R)1387 1011 y Fm(4)1399 1026 y Fl(RS)r Fu(,)h(but)g(rather)h(the)f +(macros)37 1082 y(one)j(can)f(\014nd)g(in)f(most)g(of)g(Lisp)h +(dialects.)37 1197 y Fw(\(macro)24 b Fo(h)p FF(formals)p +Fo(i)e(h)p FF(b)q(o)q(dy)p Fo(i)p Fw(\))1177 b FF(syn)o(tax)37 +1277 y Fw(Macro)18 b FF(p)q(ermits)g(to)f(create)g(a)h(macro.)27 +b(When)18 b(a)f(macro)g(is)h(called,)i(the)e(whole)g(form)f(\(i.e.)28 +b(the)18 b(macro)37 1334 y(itself)i(and)f(its)g(parameters\))f(is)h +(passed)g(to)f(the)h(macro)f(b)q(o)q(dy)l(.)31 b(Binding)21 +b(asso)q(ciation)e(is)g(done)g(in)h(the)37 1390 y(en)o(vironmen)o(t)c +(of)f(the)h(call.)21 b(The)16 b(result)g(of)f(the)g(binding)j(asso)q +(ciation)d(is)h(called)h(the)f FD(macr)n(o-exp)n(ansion)p +FF(.)37 1447 y(The)f(result)h(of)e(the)h(macro)f(call)i(is)f(the)g +(result)g(of)f(the)h(ev)m(aluation)h(of)e(the)h(macro)f(expansion)h(in) +h(the)f(call)37 1503 y(en)o(vironmen)o(t.)125 1594 y +Fv(\(define)20 b(foo)h(\(macro)g(f)g(\022\(quote)g(,f\)\)\))125 +1643 y(\(foo)g(1)g(2)h(3\))370 b Fu(=)-7 b Fp(\))22 b +Fv(\(foo)f(1)g(2)h(3\))125 1743 y(\(define)e(1+)h(\(macro)g(form)g +(\(list)g(+)g(\(cadr)g(form\))g(1\)\)\))125 1793 y(\(let)g(\(\(x)g +(1\)\))g(\(1+)g(x\)\))174 b Fu(=)-7 b Fp(\))22 b Fv(2)37 +1991 y Fw(\(macro?)h FD(obj)7 b Fw(\))1362 b FF(pro)q(cedure)37 +2071 y(Returns)16 b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 +b(a)g(macro,)f(otherwise)i(returns)f Fw(#f)p FF(.)37 +2179 y Fw(\(macro-expand-1)22 b FD(form)s Fw(\))1140 +b FF(pro)q(cedure)37 2236 y Fw(\(macro-expand)23 b FD(form)s +Fw(\))1187 b FF(pro)q(cedure)37 2309 y Fw(Macro-expand-1)16 +b FF(returns)i(the)g(macro)f(expansion)i(of)f FD(form)k +FF(if)c(it)g(is)h(a)e(macro)h(call,)h(otherwise)f FD(form)37 +2359 y FF(is)g(returned)g(unc)o(hanged.)27 b Fw(Macro-expand)16 +b FF(is)i(similar)g(to)f Fw(macro-expand-1)p FF(,)f(but)h(rep)q(eately) +h(expand)37 2409 y FD(form)i FF(un)o(til)c(it)f(is)h(no)f(longer)h(a)f +(macro)f(call.)125 2488 y Fv(\(define)20 b(1-)h(\(macro)g(form)g +(\022\(-)43 b(,\(cadr)20 b(form\))h(1\)\)\))125 2538 +y(\(define)f(--)h(\(macro)g(form)g(\022\(1-)g(,\(cadr)f(form\)\)\)\)) +125 2588 y(\(macro-expand-1)e('\(1-)j(10\)\))65 b Fu(=)-7 +b Fp(\))22 b Fv(\(-)f(10)g(1\))125 2638 y(\(macro-expand)62 +b('\(1-)21 b(10\)\))65 b Fu(=)-7 b Fp(\))22 b Fv(\(-)f(10)g(1\))125 +2688 y(\(macro-expand-1)d('\(--)j(10\)\))65 b Fu(=)-7 +b Fp(\))22 b Fv(\(1-)f(10\))125 2738 y(\(macro-expand)62 +b('\(--)21 b(10\)\))65 b Fu(=)-7 b Fp(\))22 b Fv(\(-)f(10)g(1\))p eop %%Page: 36 36 -36 35 bop 75 47 a FC(36)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FG(6.19)56 b(Hash)19 b(tables)75 -257 y FD(A)14 b(hash)g(table)f(consists)i(of)e(zero)h(or)g(more)f(en)o -(tries,)h(eac)o(h)g(consisting)g(of)f(a)g(k)o(ey)h(and)f(a)h(v)n(alue.) -j(Giv)o(en)c(the)h(k)o(ey)75 307 y(for)f(an)h(en)o(try)m(,)f(the)i -(hashing)e(function)h(can)g(v)o(ery)g(quic)o(kly)f(lo)q(cate)g(the)i -(en)o(try)m(,)e(and)h(hence)h(the)g(corresp)q(onding)75 -356 y(v)n(alue.)23 b(There)17 b(ma)o(y)d(b)q(e)j(at)e(most)g(one)h(en)o -(try)g(in)g(a)f(hash)h(table)g(with)g(a)f(particular)h(k)o(ey)m(,)f -(but)h(man)o(y)e(en)o(tries)75 406 y(ma)o(y)e(ha)o(v)o(e)i(the)g(same)f -(v)n(alue.)75 457 y Fz(STk)i FD(hash)f(tables)h(gro)o(w)e(gracefully)h -(as)g(the)h(n)o(um)o(b)q(er)f(of)g(en)o(tries)h(increases,)h(so)e(that) -g(there)i(are)f(alw)o(a)o(ys)e(less)75 507 y(than)18 -b(three)i(en)o(tries)g(p)q(er)f(hash)g(buc)o(k)o(et,)g(on)g(a)o(v)o -(erage.)31 b(This)19 b(allo)o(ws)e(for)h(fast)g(lo)q(okups)g -(regardless)i(of)e(the)75 557 y(n)o(um)o(b)q(er)13 b(of)g(en)o(tries)i -(in)f(a)f(table.)75 643 y Fl(Note:)32 b Fs(Hash)14 b(table)g -(manipulation)i(pro)q(cedures)f(are)e(built)i(up)q(on)f(the)f -(e\016cien)o(t)h(Tcl)f(hash)h(table)g(pac)o(k)n(age.)75 -750 y Fu(\(make-hash-table)m(\))1213 b FD(pro)q(cedure)75 -800 y Fu(\(make-hash-table)18 b FB(c)n(omp)n(arison)s -Fu(\))985 b FD(pro)q(cedure)75 850 y Fu(\(make-hash-table)18 -b FB(c)n(omp)n(arison)k(hash)s Fu(\))883 b FD(pro)q(cedure)75 -924 y Fu(Make-hash-table)15 b FD(admits)i(three)j(di\013eren)o(t)f -(forms.)30 b(The)19 b(most)e(general)i(form)d(admit)h(t)o(w)o(o)h -(argumen)o(ts.)75 974 y(The)c(\014rst)g(argumen)o(t)f(is)g(a)g -(comparison)f(function)i(whic)o(h)f(determine)h(ho)o(w)f(k)o(eys)h(are) -g(compared;)e(the)i(second)75 1024 y(argumen)o(t)h(is)h(a)f(function)h -(whic)o(h)g(computes)f(a)h(hash)g(co)q(de)h(for)e(an)h(ob)r(ject)h(and) -f(returns)h(the)g(hash)f(co)q(de)g(as)75 1074 y(a)f(non)g(negativ)o(e)f -(in)o(teger.)22 b(Ob)r(jets)17 b(with)d(the)i(same)e(hash)h(co)q(de)h -(are)g(stored)g(in)e(an)h(A-list)g(registered)h(in)f(the)75 -1123 y(buc)o(k)o(et)g(corresp)q(onding)f(to)g(the)h(k)o(ey)m(.)75 -1174 y(If)f(omitted,)137 1259 y Fm(\017)21 b Fu(hash)13 -b FD(defaults)h(to)f(the)i Fu(hash-table-hash)c FD(pro)q(cedure.)137 -1346 y Fm(\017)21 b Fu(comparison)33 b FD(defaults)14 -b(to)g(the)g Fu(eq?)g FD(pro)q(cedure)75 1427 y(Consequen)o(tly)m(,)153 -1509 y Ft(\(define)j(h)j(\(make-has)o(h-)o(tab)o(le)o(\)\))75 -1636 y FD(is)14 b(equiv)n(alen)o(t)f(to)153 1718 y Ft(\(define)k(h)j -(\(make-has)o(h-)o(tab)o(le)c(eq?)i(hash-table-)o(ha)o(sh\))o(\))75 -1845 y FD(Another)d(in)o(teresting)f(example)f(is)153 -1927 y Ft(\(define)k(h)j(\(make-has)o(h-)o(tab)o(le)c(string-ci=)o(?)g -(string-leng)o(th)o(\)\))75 2054 y FD(whic)o(h)k(de\014nes)i(a)e(new)h -(hash)g(table)f(whic)o(h)g(uses)i Fu(string-ci=?)36 b -FD(for)20 b(comparing)e(k)o(eys.)38 b(Here,)23 b(w)o(e)e(use)75 -2099 y(the)d(string-length)g(as)g(a)f(\(v)o(ery)h(simple\))f(hashing)g -(function.)29 b(Of)18 b(course,)h(a)e(function)h(whic)o(h)f(giv)o(es)h -(a)f(k)o(ey)75 2145 y(dep)q(ending)e(of)g(the)g(c)o(haracters)i(comp)q -(osing)c(the)i(string)g(giv)o(es)g(a)g(b)q(etter)h(repartition)f(and)f -(should)h(probably)75 2191 y(enhance)f(p)q(erformances.)k(F)m(or)12 -b(instance,)i(the)f(follo)o(wing)d(call)i(to)h Fu(make-hash-table)c -FD(should)k(return)h(a)e(more)75 2236 y(e\016cien)o(t,)i(ev)o(en)g(if)f -(not)h(p)q(erfect,)h(hash)f(table:)153 2318 y Ft(\(make-hash-)o(ta)o -(ble)232 2364 y(string-ci)o(=?)232 2410 y(\(lambda)j(\(s\))271 -2455 y(\(let)h(\(\(len)g(\(string-l)o(eng)o(th)e(s\)\)\))310 -2501 y(\(do)j(\(\(h)f(0\))39 b(\(i)19 b(0)g(\(+)g(i)g(1\)\)\))389 -2547 y(\(\(=)f(i)i(len\))e(h\))350 2592 y(\(set!)f(h)j(\(+)e(h)i -(\(char->i)o(nte)o(ger)644 2638 y(\(char-dow)o(nca)o(se)c(\(string-re)o -(f)g(s)k(i\)\)\)\)\)\)\)\))o(\))75 2769 y Fl(Note:)31 -b Fs(Hash)13 b(tables)g(with)f(a)g(comparison)i(function)g(equal)f(to)f -Ft(eq?)e Fs(or)i Ft(string=?)i Fs(are)e(handled)i(in)f(an)f(more)g -(e\016cien)o(t)75 2819 y(w)o(a)o(y)h(\(in)h(fact,)e(they)h(don't)h(use) -f(the)g Ft(hash-table)o(-ha)o(sh)c Fs(fucn)o(tion)14 -b(to)f(sp)q(eed)h(up)g(hash)g(table)g(retriev)n(als\).)p -eop +36 35 bop 37 45 a FE(36)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(macro-expand)23 b FD(form)s +Fw(\))1187 b FF(pro)q(cedure)37 264 y(Returns)20 b(the)f(macro)f +(expansion)i(of)f FD(form)k FF(if)c(it)g(is)h(a)e(macro)h(call,)h +(otherwise)g FD(form)i FF(is)e(returned)f(un-)37 314 +y(c)o(hanged.)i(Macro)14 b(expansion)i(con)o(tin)o(ue)g(un)o(til,)g +(the)f(form)g(obtained)g(is)125 400 y Fv(\(define)20 +b(1-)h(\(macro)g(form)g(\(list)g('-)g(\(cadr)g(form\))g(1\)\)\))125 +450 y(\(macro-expand)e('\(1-)i(10\)\))108 b Fu(=)-7 b +Fp(\))22 b Fv(\(-)f(10)g(1\))37 653 y Fw(\(macro-body)i +FD(macr)n(o)s Fw(\))1207 b FF(pro)q(cedure)37 726 y(Returns)16 +b(the)g(b)q(o)q(dy)f(of)g FD(macr)n(o)125 813 y Fv(\(macro-body)k(1+\)) +735 863 y Fu(=)-7 b Fp(\))22 b Fv(\(macro)e(form)h(\(list)g(+)g(\(cadr) +g(form\))g(1\)\))37 1065 y Fw(\(define-macro)i FD(\()p +Fo(h)p FF(name)p Fo(i)f(h)p FF(formals)p Fo(i)o FD(\))i +Fo(h)p FF(b)q(o)q(dy)p Fo(i)p Fw(\))816 b FF(macro)37 +1139 y Fw(Define-macro)15 b FF(is)h(a)g(macro)f(whic)o(h)i(p)q(ermits)g +(to)e(de\014ne)j(a)d(macro)h(more)f(easily)i(than)f(with)h(the)f +Fw(macro)37 1189 y FF(form.)k(It)15 b(is)h(similar)g(to)f(the)g +Fw(defmacro)f FF(of)h(Common)f(Lisp)i([6].)125 1275 y +Fv(\(define-macro)j(\(incr)i(x\))g(\022\(set!)f(,x)i(\(+)f(,x)h +(1\)\)\))125 1325 y(\(let)f(\(\(a)g(1\)\))g(\(incr)g(a\))g(a\))87 +b Fu(=)-7 b Fp(\))22 b Fv(2)125 1425 y(\(define-macro)d(\(when)i(test)f +(.)i(body\))168 1474 y(\022\(if)f(,test)g(,@\(if)g(\(null?)f(\(cdr)h +(body\)\))g(body)g(\022\(\(begin)f(,@body\)\)\)\)\))125 +1524 y(\(macro-expand)f('\(when)h(a)i(b\)\))43 b Fu(=)-7 +b Fp(\))22 b Fv(\(if)f(a)g(b\))125 1574 y(\(macro-expand)e('\(when)h(a) +i(b)f(c)h(d\)\))735 1624 y Fu(=)-7 b Fp(\))22 b Fv(\(if)f(a)g(\(begin)g +(b)g(c)h(d\)\))37 1767 y Fn(Note:)39 b Fu(Calls)13 b(to)h(macros)g +(de\014ned)h(b)o(y)f Fv(define-macro)e Fu(are)j(ph)o(ysically)e +(replaced)i(b)o(y)f(their)h(macro-expansion)e(if)37 1823 +y(the)i(v)n(ariable)d Fv(*debug*)h Fu(is)g Fv(#f)g Fu(\(i.e.)18 +b(their)c(b)q(o)q(dy)g(is)f(\\in-lined")g(in)g(the)h(macro)f(call\).)k +(T)m(o)c(a)o(v)o(oid)f(this)i(feature,)g(and)37 1880 +y(to)g(ease)h(debugging,)e(y)o(ou)g(ha)o(v)o(e)h(to)g(set)h(this)f(v)n +(ariable)e(to)i Fv(#t)p Fu(.)k(\(See)d(also)e(6.25\).)37 +2001 y FI(6.16)56 b(System)17 b(pro)r(cedures)37 2086 +y FF(This)f(section)g(lists)g(a)f(set)g(of)g(pro)q(cedures)h(whic)o(h)g +(p)q(ermits)f(to)g(access)g(some)g(system)g(in)o(ternals.)37 +2203 y Fw(\(expand-file-name)22 b FD(string)t Fw(\))1070 +b FF(pro)q(cedure)37 2283 y Fw(Expand-file-name)14 b +FF(expands)j(the)g(\014lename)g(giv)o(en)g(in)g FD(string)i +FF(to)d(an)g(absolute)g(path.)23 b(This)17 b(function)37 +2340 y(understands)f(the)f FD(tilde)i(c)n(onvention)c +FF(for)i(\014lenames.)125 2439 y Fv(;;)21 b(Current)f(directory)g(is)i +(/users/eg/STk)125 2488 y(\(expand-file-nam)o(e)d(".."\))343 +2538 y Fu(=)-7 b Fp(\))21 b Fv("/users/eg")125 2588 y +(\(expand-file-nam)o(e)e("~root/bin\))343 2638 y Fu(=)-7 +b Fp(\))21 b Fv("/bin")125 2688 y(\(expand-file-nam)o(e)e("~/STk\)")343 +2738 y Fu(=)-7 b Fp(\))21 b Fv("/users/eg/STk")p eop %%Page: 37 37 -37 36 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(37)p 75 64 1763 2 v 75 179 a Fu(\(hash-table?)19 b -FB(obj)6 b Fu(\))1220 b FD(pro)q(cedure)75 255 y(Returns)15 -b Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 b(a)f(hash)i(table,)e(returns)i -Fu(#f)f FD(otherwise.)75 382 y Fu(\(hash-table-hash)k -FB(obj)6 b Fu(\))1133 b FD(pro)q(cedure)75 458 y Fu(hash-table-hash)8 -b FD(computes)j(a)g(hash)h(co)q(de)g(for)f(an)g(ob)r(ject)h(and)f -(returns)i(the)f(hash)f(co)q(de)h(as)g(a)e(non)i(negativ)o(e)75 -508 y(in)o(teger.)18 b(A)c(prop)q(ert)o(y)h(of)e Fu(hash-table-hash)e -FD(is)j(that)179 600 y Fu(\(equal?)42 b(x)22 b(y\))13 -b FD(implies)f Fu(\(equal?)42 b(\(hash-table-hash)18 -b(x\))k(\(hash-table-hash)c(y\))75 691 y FD(as)c(the)g(the)h(Common)c -(Lisp)i Fu(sxhash)g FD(function)g(from)g(whic)o(h)g(this)h(pro)q -(cedure)i(is)e(mo)q(deled.)75 818 y Fu(\(hash-table-put!)k -FB(hash)23 b(key)f(value)s Fu(\))914 b FD(pro)q(cedure)75 -895 y Fu(Hash-table-put!)17 b FD(en)o(ters)k(an)f(asso)q(ciation)f(b)q -(et)o(w)o(een)i FB(key)j FD(and)c FB(value)j FD(in)c(the)i -FB(hash)i FD(table.)36 b(The)20 b(v)n(alue)75 944 y(returned)c(b)o(y)d -Fu(hash-table-put!)e FD(is)j(unde\014ned.)75 1071 y Fu -(\(hash-table-get)19 b FB(hash)j(key)t Fu(\))1049 b FD(pro)q(cedure)75 -1121 y Fu(\(hash-table-get)19 b FB(hash)j(key)g(default)t -Fu(\))906 b FD(pro)q(cedure)75 1193 y Fu(Hash-table-get)13 -b FD(returns)18 b(the)f(v)n(alue)f(asso)q(ciated)h(with)f -FB(key)k FD(in)c(the)h(giv)o(en)f FB(hash)k FD(table.)25 -b(If)16 b(no)g(v)n(alue)f(has)75 1239 y(b)q(een)h(asso)q(ciated)g(with) -f FB(key)k FD(in)c FB(hash)s FD(,)g(the)h(sp)q(eci\014ed)h -FB(default)i FD(is)c(returned)i(if)d(giv)o(en;)h(otherwise)h(an)f -(error)h(is)75 1285 y(raised.)153 1375 y Ft(\(define)h(h1)i -(\(make-hash)o(-ta)o(bl)o(e\)\))153 1421 y(\(hash-table)o(-p)o(ut!)d -(h1)j('foo)f(\(list)f(1)j(2)f(3\)\))153 1466 y(\(hash-table)o(-g)o(et) -36 b(h1)19 b('foo\))350 1512 y Fs(=)-6 b Fn(\))19 b Ft(\(1)g(2)g(3\)) -153 1558 y(\(hash-table)o(-g)o(et)36 b(h1)19 b('bar)f('absent\))350 -1603 y Fs(=)-6 b Fn(\))19 b Ft(absent)153 1649 y(\(hash-table)o(-g)o -(et)36 b(h1)19 b('bar\))350 1695 y Fs(=)-6 b Fn(\))19 -b Fi(error)153 1740 y Ft(\(hash-table)o(-p)o(ut!)d(h1)j('\(a)f(b)h(c\)) -g('present\))153 1786 y(\(hash-table)o(-g)o(et)36 b(h1)19 -b('\(a)f(b)h(c\))g('absent\))350 1832 y Fs(=)-6 b Fn(\))19 -b Ft('absent)153 1923 y(\(define)e(h2)i(\(make-hash)o(-ta)o(bl)o(e)e -(equal?\)\))153 1969 y(\(hash-table)o(-p)o(ut!)f(h2)j('\(a)f(b)h(c\))g -('present\))153 2014 y(\(hash-table)o(-g)o(et)36 b(h2)19 -b('\(a)f(b)h(c\)\))350 2060 y Fs(=)-6 b Fn(\))19 b Ft('present)75 -2271 y Fu(\(hash-table-remov)o(e!)g FB(hash)j(key)t Fu(\))962 -b FD(pro)q(cedure)75 2348 y FB(hash)20 b FD(m)o(ust)15 -b(b)q(e)i(a)f(hash)h(table)f(con)o(taining)f(an)h(en)o(try)h(for)f -FB(key)t FD(.)25 b Fu(Hash-table-remov)o(e!)13 b FD(deletes)18 -b(the)f(en)o(try)75 2398 y(for)d FB(key)j FD(in)d FB(hash)t -FD(,)f(if)g(it)h(exists.)k(Result)c(of)g Fu(Hash-table-remo)o(ve!)h -FD(is)f(unsp)q(eci\014ed.)153 2499 y Ft(\(define)j(h)j(\(make-has)o(h-) -o(tab)o(le)o(\)\))153 2545 y(\(hash-table)o(-p)o(ut!)c(h)j('foo)f -(\(list)g(1)h(2)g(3\)\))153 2591 y(\(hash-table)o(-g)o(et)d(h)k('foo\)) -350 2636 y Fs(=)-6 b Fn(\))19 b Ft(\(1)g(2)g(3\))153 -2682 y(\(hash-table)o(-r)o(emo)o(ve!)d(h)j('foo\))153 -2728 y(\(hash-table)o(-g)o(et)d(h)k('foo)e('absent\))350 -2773 y Fs(=)-6 b Fn(\))19 b Ft(absent)p eop +37 36 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(37)p 37 64 1838 2 v 37 190 a Fw(\(canonical-path)22 +b FD(p)n(ath)s Fw(\))1151 b FF(pro)q(cedure)37 271 y(Expands)21 +b(all)f(sym)o(b)q(olic)h(links)g(in)g FD(p)n(ath)i FF(and)d(returns)g +(its)g(canonicalized)i(absolute)e(pathname.)34 b(The)37 +327 y(resulting)25 b(path)e(do)g(not)g(ha)o(v)o(e)g(sym)o(b)q(olic)h +(links.)45 b(If)24 b FD(p)n(ath)j FF(do)q(esn't)c(designate)h(a)f(v)m +(alid)h(pathname,)37 384 y FD(c)n(anonic)n(al-p)n(ath)18 +b FF(returns)d Fw(#f)p FF(.)37 502 y Fw(\(dirname)23 +b FD(string)t Fw(\))1285 b FF(pro)q(cedure)37 575 y(Returns)16 +b(a)e(string)h(con)o(taining)h(all)f(but)g(the)g(last)g(comp)q(onen)o +(t)g(of)f(the)h(path)g(name)g(giv)o(en)g(in)h FD(string)s +FF(.)125 663 y Fv(\(dirname)k("/a/b/c.stk"\))343 713 +y Fu(=)-7 b Fp(\))21 b Fv("/a/b")37 918 y Fw(\(basename)i +FD(string)t Fw(\))1261 b FF(pro)q(cedure)37 992 y(Returns)16 +b(a)f(string)g(con)o(taining)h(the)g(last)f(comp)q(onen)o(t)g(of)g(the) +g(path)g(name)g(giv)o(en)h(in)g FD(string)s FF(.)125 +1079 y Fv(\(basname)k("/a/b/c.stk"\))343 1129 y Fu(=)-7 +b Fp(\))21 b Fv("c.stk")37 1335 y Fw(\(decompose-file-name)h +FD(string)t Fw(\))998 b FF(pro)q(cedure)37 1408 y(Returns)17 +b(an)g(\\explo)q(ded")g(list)g(of)f(the)h(path)f(name)g(comp)q(onen)o +(ts)h(giv)o(en)g(in)g FD(string)s FF(.)24 b(The)16 b(\014rst)g(elemen)o +(t)37 1458 y(in)h(the)f(list)h(denotes)f(if)g(the)g(giv)o(en)g +FD(string)j FF(is)e(an)f(absolute)g(path)g(or)f(a)g(relativ)o(e)i(one,) +f(b)q(eing)h Fw("/")e FF(or)g Fw(".")37 1508 y FF(resp)q(ectiv)o(ely)l +(.)22 b(Eac)o(h)15 b(comp)q(onen)o(t)h(of)e(this)i(list)g(is)g(a)f +(string.)125 1596 y Fv(\(decompose-file-)o(name)j("/a/b/c.stk"\))343 +1645 y Fu(=)-7 b Fp(\))21 b Fv(\("/")g("a")g("b")h("c.stk"\))125 +1695 y(\(decompose-file-)o(name)c("a/b/c.stk"\))343 1745 +y Fu(=)-7 b Fp(\))21 b Fv(\(".")g("a")g("b")h("c.stk"\))37 +1951 y Fw(\(file-is-directory?)g FD(string)t Fw(\))1022 +b FF(pro)q(cedure)37 2007 y Fw(\(file-is-regular?)22 +b FD(string)t Fw(\))1070 b FF(pro)q(cedure)37 2063 y +Fw(\(file-is-readable?)22 b FD(string)t Fw(\))1046 b +FF(pro)q(cedure)37 2120 y Fw(\(file-is-writable?)22 b +FD(string)t Fw(\))1046 b FF(pro)q(cedure)37 2176 y Fw +(\(file-is-executable?)22 b FD(string)t Fw(\))998 b FF(pro)q(cedure)37 +2233 y Fw(\(file-exists?)23 b FD(string)t Fw(\))1165 +b FF(pro)q(cedure)37 2313 y(Returns)14 b Fw(#t)g FF(if)f(the)h +(predicate)g(is)g(true)g(for)e(the)i(path)f(name)h(giv)o(en)g(in)g +FD(string)s FF(;)g(returns)f Fw(#f)g FF(otherwise)h(\(or)37 +2369 y(if)i FD(string)j FF(denotes)c(a)g(\014le)h(whic)o(h)g(do)q(es)g +(not)e(exist\).)37 2487 y Fw(\(glob)24 b Fz(patter)q(n)330 +2494 y FA(1)374 2487 y Fz(patter)q(n)523 2494 y FA(2)568 +2487 y Fz(:)8 b(:)g(:)d Fw(\))1027 b FF(pro)q(cedure)37 +2568 y(The)14 b(co)q(de)g(for)e Fw(glob)h FF(is)g(tak)o(en)g(from)f +(the)i(Tcl)f(library)l(.)21 b(It)13 b(p)q(erforms)g(\014le)h(name)f +(\\globbing")h(in)g(a)f(fashion)37 2624 y(similar)19 +b(to)e(the)h(csh)g(shell.)29 b Fw(Glob)17 b FF(returns)h(a)f(list)h(of) +g(the)f(\014lenames)i(that)e(matc)o(h)g(at)g(least)h(one)g(of)f(the)37 +2681 y FD(p)n(attern)f FF(argumen)o(ts.)j(The)c FD(p)n(attern)k +FF(argumen)o(ts)14 b(ma)o(y)h(con)o(tain)g(the)g(follo)o(wing)h(sp)q +(ecial)h(c)o(haracters:)106 2787 y Fo(\017)22 b FF(?)f(Matc)o(hes)14 +b(an)o(y)h(single)i(c)o(haracter.)p eop %%Page: 38 38 -38 37 bop 75 47 a FC(38)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(hash-table-for-e)o(ach)19 -b FB(hash)j(pr)n(o)n(c)r Fu(\))925 b FD(pro)q(cedure)75 -253 y FB(Pr)n(o)n(c)23 b FD(m)o(ust)e(b)q(e)h(a)f(pro)q(cedure)i -(taking)d(t)o(w)o(o)h(argumen)o(ts.)40 b Fu(Hash-table-for-eac)o(h)18 -b FD(calls)j FB(pr)n(o)n(c)j FD(on)d(eac)o(h)75 303 y(k)o(ey/v)n(alue) -11 b(asso)q(ciation)g(in)h FB(hash)s FD(,)g(with)g(the)g(k)o(ey)g(as)g -(the)g(\014rst)h(argumen)o(t)d(and)i(the)g(v)n(alue)f(as)h(the)h -(second.)18 b(The)75 352 y(v)n(alue)13 b(returned)j(b)o(y)d -Fu(hash-table-for-each)d FD(is)k(unde\014ned.)75 434 -y Fl(Note:)32 b Fs(The)13 b(order)h(of)f(application)j(of)d -Fl(pr)n(o)n(c)h Fs(is)f(unsp)q(eci\014ed.)153 516 y Ft(\(let)19 -b(\(\(h)57 b(\(make-hash)o(-ta)o(bl)o(e\)\))271 561 y(\(sum)18 -b(0\)\))193 607 y(\(hash-tab)o(le)o(-pu)o(t!)e(h)j('foo)f(2\))193 -653 y(\(hash-tab)o(le)o(-pu)o(t!)e(h)j('bar)f(3\))193 -698 y(\(hash-tab)o(le)o(-fo)o(r-e)o(ac)o(h)f(h)i(\(lambda)e(\(key)h -(value\))683 744 y(\(set!)g(sum)g(\(+)h(sum)f(value\)\)\)\))193 -790 y(sum\))350 835 y Fs(=)-6 b Fn(\))19 b Ft(5)75 1025 -y Fu(\(hash-table-map)g FB(hash)j(pr)n(o)n(c)r Fu(\))1034 -b FD(pro)q(cedure)75 1099 y FB(Pr)n(o)n(c)19 b FD(m)o(ust)e(b)q(e)h(a)f -(pro)q(cedure)i(taking)e(t)o(w)o(o)g(argumen)o(ts.)28 -b Fu(Hash-table-map)14 b FD(calls)j FB(pr)n(o)n(c)j FD(on)d(eac)o(h)h -(en)o(try)g(in)75 1149 y FB(hash)t FD(,)d(with)g(the)h(en)o(try's)f(k)o -(ey)h(as)f(the)h(\014rst)g(argumen)o(t)e(and)h(the)h(en)o(try's)g(v)n -(alue)f(as)g(the)h(second.)23 b(The)16 b(result)75 1199 -y(of)d Fu(hash-table-map)e FD(is)j(a)g(list)f(of)g(the)i(v)n(alues)e -(returned)j(b)o(y)e FB(pr)n(o)n(c)r FD(,)f(in)h(unsp)q(eci\014ed)h -(order.)75 1281 y Fl(Note:)32 b Fs(The)13 b(order)h(of)f(application)j -(of)d Fl(pr)n(o)n(c)h Fs(is)f(unsp)q(eci\014ed.)153 1362 -y Ft(\(let)19 b(\(\(h)f(\(make-hash)o(-t)o(abl)o(e\))o(\)\))193 -1408 y(\(dotimes)e(\(i)j(5\))232 1453 y(\(hash-tab)o(le-)o(put)o(!)d(h) -k(i)f(\(number->)o(str)o(in)o(g)e(i\)\)\))193 1499 y(\(hash-tab)o(le)o -(-ma)o(p)g(h)i(\(lambda)e(\(key)h(value\))605 1545 y(\(cons)f(key)i -(value\)\)\)\))350 1590 y Fs(=)-6 b Fn(\))19 b Ft(\(\(0)g(.)g("0"\))f -(\(3)h(.)g("3"\))f(\(2)h(.)g("2"\))f(\(1)h(.)g("1"\))f(\(4)h(.)g -("4"\)\))75 1780 y Fu(\(hash-table->list)f FB(hash)s -Fu(\))1087 b FD(pro)q(cedure)75 1850 y Fu(hash-table->list)8 -b FD(returns)13 b(an)f(\\asso)q(ciation)e(list")h(built)g(from)f(the)i -(en)o(tries)h(in)e FB(hash)s FD(.)18 b(Eac)o(h)11 b(en)o(try)i(in)e -FB(hash)75 1896 y FD(will)i(b)q(e)j(represen)o(ted)i(as)d(a)f(pair)h -(whose)g FB(c)n(ar)k FD(is)c(the)g(en)o(try's)h(k)o(ey)f(and)g(whose)g -FB(c)n(dr)k FD(is)c(its)g(v)n(alue.)20 b Fl(Note:)36 -b Fs(The)75 1941 y(order)13 b(of)g(pairs)h(in)g(the)f(resulting)i(list) -g(is)e(unsp)q(eci\014ed.)153 2023 y Ft(\(let)19 b(\(\(h)f(\(make-hash)o -(-t)o(abl)o(e\))o(\)\))193 2068 y(\(dotimes)e(\(i)j(5\))232 -2114 y(\(hash-tab)o(le-)o(put)o(!)d(h)k(i)f(\(number->)o(str)o(in)o(g)e -(i\)\)\))193 2160 y(\(hash-tab)o(le)o(->l)o(ist)f(h\)\))350 -2205 y Fs(=)-6 b Fn(\))19 b Ft(\(\(0)g(.)g("0"\))f(\(3)h(.)g("3"\))f -(\(2)h(.)g("2"\))f(\(1)h(.)g("1"\))f(\(4)h(.)g("4"\)\))75 -2395 y Fu(\(hash-table-stats)f FB(hash)s Fu(\))1087 b -FD(pro)q(cedure)75 2469 y Fu(Hash-table-stats)12 b FD(returns)17 -b(a)f(string)f(with)h(o)o(v)o(erall)e(information)f(ab)q(out)i -FB(hash)t FD(,)h(suc)o(h)g(as)g(the)g(n)o(um)o(b)q(er)f(of)75 -2519 y(en)o(tries)g(it)e(con)o(tains,)h(the)g(n)o(um)o(b)q(er)f(of)h -(buc)o(k)o(ets)h(in)e(its)h(hash)g(arra)o(y)m(,)f(and)h(the)g -(utilization)e(of)i(the)g(buc)o(k)o(ets.)75 2641 y FG(6.20)56 -b(Regular)18 b(expressions)75 2719 y FD(Regular)9 b(expressions)h(are)g -(\014rst)g(class)g(ob)r(jects)g(in)f Fz(STk)p FD(.)17 -b(A)9 b(regular)h(expression)g(is)f(created)i(b)o(y)e(the)h -Fu(string->regexp)75 2769 y FD(pro)q(cedure.)19 b(Matc)o(hing)12 -b(a)g(regular)g(expression)i(against)d(a)h(string)g(is)g(simply)f(done) -h(b)o(y)g(applying)f(a)h(previously)75 2819 y(created)k(regular)f -(expression)h(to)f(this)g(string.)20 b(Regular)14 b(expressions)j(are)e -(implemen)o(ted)d(using)j(co)q(de)h(in)e(the)p eop +38 37 bop 37 45 a FE(38)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 106 190 a Fo(\017)22 b Fw(*)15 b FF(Matc)o(hes)g(an)o(y) +g(sequence)h(of)f(zero)g(or)f(more)h(c)o(haracters.)106 +284 y Fo(\017)22 b Fw([)p FF(c)o(hars)p Fw(])14 b FF(Matc)o(hes)g(an)o +(y)g(single)h(c)o(haracter)f(in)h(c)o(hars.)k(If)c(c)o(hars)f(con)o +(tains)h(a)f(sequence)h(of)f(the)h(form)151 340 y Fw(a-b)g +FF(then)g(an)o(y)g(c)o(haracter)g(b)q(et)o(w)o(een)g +Fw(a)g FF(and)h Fw(b)f FF(\(inclusiv)o(e\))i(will)f(matc)o(h.)106 +433 y Fo(\017)22 b Fw(\\)p FF(x)15 b(Matc)o(hes)g(the)g(c)o(haracter)f +Fw(x)p FF(.)106 526 y Fo(\017)22 b(f)p FF(a,b,...)p Fo(g)13 +b FF(Matc)o(hes)h(an)o(y)h(of)g(the)g(strings)g Fw(a)p +FF(,)g Fw(b)p FF(,)g(etc.)37 631 y(As)20 b(with)f(csh,)i(a)d(\\.")32 +b(at)18 b(the)i(b)q(eginning)h(of)e(a)g(\014le's)h(name)f(or)g(just)g +(after)f(a)h(\\/")f(m)o(ust)h(b)q(e)h(matc)o(hed)37 687 +y(explicitly)e(or)d(with)h(a)f Fo(fg)f FF(construct.)20 +b(In)c(addition,)f(all)i(\\/")d(c)o(haracters)g(m)o(ust)h(b)q(e)h(matc) +o(hed)f(explicitly)l(.)37 744 y(If)22 b(the)f(\014rst)g(c)o(haracter)f +(in)i(a)f(pattern)g(is)g(\\)p Fw(~)p FF(")g(then)g(it)h(refers)f(to)f +(the)h(home)h(directory)f(of)g(the)g(user)37 800 y(whose)16 +b(name)f(follo)o(ws)h(the)f(\\)p Fw(~)p FF(".)20 b(If)15 +b(the)h(\\)p Fw(~)p FF(")f(is)h(follo)o(w)o(ed)f(immediately)i(b)o(y)f +(\\/")e(then)i(the)f(v)m(alue)i(of)e(the)37 856 y(en)o(vironmen)o(t)h +(v)m(ariable)h(HOME)e(is)g(used.)37 913 y Fw(Glob)20 +b FF(di\013ers)f(from)g(csh)h(globbing)h(in)g(t)o(w)o(o)d(w)o(a)o(ys.) +32 b(First,)20 b(it)g(do)q(es)g(not)f(sort)g(its)h(result)g(list)g +(\(use)g(the)37 969 y Fw(sort)g FF(pro)q(cedure)h(if)f(y)o(ou)g(w)o(an) +o(t)f(the)h(list)h(sorted\).)34 b(Second,)21 b(glob)g(only)f(returns)g +(the)g(names)g(of)g(\014les)37 1026 y(that)15 b(actually)i(exist;)e(in) +i(csh)f(no)f(c)o(hec)o(k)h(for)f(existence)i(is)f(made)g(unless)g(a)g +(pattern)f(con)o(tains)g(a)h(?,)f Fw(*)p FF(,)g(or)37 +1082 y Fw([])p FF(construct.)37 1197 y Fw(\(remove-file)23 +b FD(string)t Fw(\))1189 b FF(pro)q(cedure)37 1277 y(Remo)o(v)o(es)13 +b(the)g(\014le)h(whose)f(path)g(name)g(is)h(giv)o(en)f(in)h +FD(string)s FF(.)19 b(The)14 b(result)f(of)g Fw(remove-file)e +FF(is)i(unde\014ned.)37 1449 y Fw(\(rename-file)23 b +Fz(str)q(ing)472 1456 y FA(1)515 1449 y Fz(str)q(ing)639 +1456 y FA(2)659 1449 y Fw(\))996 b FF(pro)q(cedure)37 +1529 y(Renames)14 b(the)g(\014le)g(whose)f(path-name)h(is)f(con)o +(tained)h(in)g Fz(str)q(ing)1156 1536 y FA(1)1190 1529 +y FF(in)g(the)f(path)g(name)h(giv)o(en)f(b)o(y)h Fz(str)q(ing)1843 +1536 y FA(2)1862 1529 y FF(.)37 1586 y(The)i(result)g(of)e +Fw(rename-file)g FF(is)i(unde\014ned.)37 1701 y Fw +(\(temporary-file-name)22 b FD(string)t Fw(\))998 b FF(pro)q(cedure)37 +1781 y(Generates)19 b(a)f(unique)j(temp)q(orary)d(\014le)i(name.)30 +b(The)19 b(v)m(alue)h(returned)g(b)o(y)e Fw(temporary-file-name)e +FF(is)37 1837 y(the)g(newly)g(generated)f(name)g(of)g +Fw(#f)g FF(if)h(a)e(unique)j(name)e(cannot)g(b)q(e)h(generated.)37 +1952 y Fw(\(getcwd\))1450 b FF(pro)q(cedure)37 2032 y +Fw(Getcwd)15 b FF(returns)g(a)g(string)g(con)o(taining)h(the)f(curren)o +(t)g(w)o(orking)g(directory)l(.)37 2148 y Fw(\(chdir)24 +b FD(string)t Fw(\))1332 b FF(pro)q(cedure)37 2228 y +Fw(Chdir)15 b FF(c)o(hanges)g(the)g(curren)o(t)h(directory)f(to)g(the)g +(directory)g(giv)o(en)h(in)g FD(string)s FF(.)37 2343 +y Fw(\(getpid)23 b FD(string)t Fw(\))1309 b FF(pro)q(cedure)37 +2423 y(Returns)14 b(the)e(system)g(pro)q(cess)h(n)o(um)o(b)q(er)g(of)f +(the)h(curren)o(t)f FB(STk)g FF(in)o(terpreter)h(\(i.e.)19 +b(the)12 b(Unix)i FD(pid)p FF(\).)19 b(Result)37 2479 +y(is)d(an)f(in)o(teger.)37 2594 y Fw(\(system)23 b FD(string)t +Fw(\))1309 b FF(pro)q(cedure)37 2651 y Fw(\(!)24 b FD(string)t +Fw(\))1428 b FF(pro)q(cedure)37 2731 y(Sends)15 b(the)f(giv)o(en)h +FD(string)i FF(to)d(the)g(system)f(shell)j FD(/bin/sh)s +FF(.)k(The)14 b(result)g(of)g Fw(system)f FF(is)i(the)f(in)o(teger)g +(status)37 2787 y(co)q(de)i(the)g(shell)g(returns.)p +eop %%Page: 39 39 -39 38 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(39)p 75 64 1763 2 v 75 179 a FD(Henry)14 b(Sp)q(encer's)h(pac)o(k)n -(age,)d(and)h(m)o(uc)o(h)f(of)g(the)i(description)f(of)g(regular)g -(expressions)h(b)q(elo)o(w)f(is)g(copied)g(from)75 229 -y(his)h(man)o(ual.)75 335 y Fu(\(string->regexp)19 b -FB(string)t Fu(\))1105 b FD(pro)q(cedure)75 409 y Fu(String->regexp)11 -b FD(compiles)i(the)h FB(string)j FD(and)d(returns)h(the)g(corresp)q -(onding)f(regular)g(expression.)75 472 y(Matc)o(hing)f(a)h(regular)g -(expression)h(against)e(a)g(string)h(is)g(done)g(b)o(y)g(applying)e -(the)j(result)f(of)f Fu(string->regexp)75 522 y FD(to)h(this)h(string.) -21 b(This)14 b(application)f(yields)i(a)f(list)g(of)g(in)o(teger)h -(couples)h(if)d(a)i(matc)o(hing)d(o)q(ccurs;)k(it)f(returns)h -Fu(#f)75 572 y FD(otherwise.)j(Those)13 b(in)o(tegers)g(corresp)q(ond)h -(to)f(indexes)g(in)f(the)h(string)g(whic)o(h)g(matc)o(h)e(the)i -(regular)g(expression.)75 622 y(A)e(regular)g(expression)h(is)f(zero)h -(or)f(more)f FB(br)n(anches)p FD(,)h(separated)h(b)o(y)f(\\)p -Fu(|)p FD(".)16 b(It)11 b(matc)o(hes)g(an)o(ything)f(that)h(matc)o(hes) -75 672 y(one)j(of)f(the)i(branc)o(hes.)75 722 y(A)i(branc)o(h)h(is)f -(zero)h(or)f(more)f FB(pie)n(c)n(es)p FD(,)h(concatenated.)29 -b(It)17 b(matc)o(hes)g(a)g(matc)o(h)f(for)h(the)g(\014rst,)h(follo)o(w) -o(ed)e(b)o(y)h(a)75 772 y(matc)o(h)c(for)g(the)i(second,)f(etc.)75 -822 y(A)j(piece)h(is)e(an)h FB(atom)g FD(p)q(ossibly)g(follo)o(w)o(ed)e -(b)o(y)h(\\)p Fu(*)p FD(",)h(\\)p Fu(+)p FD(",)f(or)h(\\)p -Fu(?)p FD(".)26 b(An)17 b(atom)e(follo)o(w)o(ed)h(b)o(y)g(\\)p -Fu(*)p FD(")g(matc)o(hes)h(a)75 872 y(sequence)f(of)d(0)g(or)h(more)f -(matc)o(hes)g(of)g(the)i(atom.)h(An)e(atom)e(follo)o(w)o(ed)g(b)o(y)h -(\\)p Fu(+)p FD(")g(matc)o(hes)h(a)f(sequence)j(of)d(1)g(or)75 -922 y(more)h(matc)o(hes)i(of)e(the)j(atom.)k(An)15 b(atom)f(follo)o(w)o -(ed)g(b)o(y)h(\\)p Fu(?)p FD(")23 b(matc)o(hes)15 b(a)g(matc)o(h)f(of)h -(the)h(atom,)e(or)h(the)h(n)o(ull)75 972 y(string.)75 -1022 y(An)i(atom)e(is)h(a)g(regular)h(expression)h(in)e(paren)o(theses) -j(\(matc)o(hing)c(a)h(matc)o(h)f(for)i(the)g(regular)g(expression\),)75 -1072 y(a)f FB(r)n(ange)f FD(\(see)j(b)q(elo)o(w\),)e(\\)p -Fu(.)p FD(")26 b(\(matc)o(hing)15 b(an)o(y)i(single)f(c)o(haracter\),)j -(\\)p Fu(^)p FD(")d(\(matc)o(hing)f(the)i(n)o(ull)f(string)h(at)g(the) -75 1122 y(b)q(eginning)f(of)h(the)g(input)g(string\),)h(\\)p -Fu($)p FD(")e(\(matc)o(hing)f(the)j(n)o(ull)e(string)h(at)g(the)h(end)f -(of)g(the)g(input)g(string\),)h(a)75 1172 y(\\)p Fu(\\)p -FD(")c(follo)o(w)o(ed)f(b)o(y)h(a)h(single)f(c)o(haracter)i(\(matc)o -(hing)d(that)h(c)o(haracter\),)i(or)f(a)f(single)g(c)o(haracter)i(with) -e(no)h(other)75 1221 y(signi\014cance)f(\(matc)o(hing)e(that)i(c)o -(haracter\).)75 1272 y(A)j FB(r)n(ange)f FD(is)g(a)h(sequence)h(of)e(c) -o(haracters)i(enclosed)g(in)e(\\)p Fu([])p FD(".)25 b(It)16 -b(normally)e(matc)o(hes)i(an)o(y)g(single)g(c)o(haracter)75 -1321 y(from)c(the)j(sequence.)21 b(If)13 b(the)i(sequence)h(b)q(egins)f -(with)e(\\)p Fu(^)p FD(",)g(it)h(matc)o(hes)f(an)o(y)h(single)g(c)o -(haracter)h FB(not)g FD(from)d(the)75 1371 y(rest)18 -b(of)f(the)g(sequence.)30 b(If)16 b(t)o(w)o(o)h(c)o(haracters)i(in)d -(the)i(sequence)h(are)e(separated)i(b)o(y)d(\\)p Fu(-)p -FD(",)h(this)g(is)g(shorthand)75 1421 y(for)d(the)i(full)d(list)i(of)f -(ASCI)q(I)h(c)o(haracters)h(b)q(et)o(w)o(een)g(them)e(\(e.g.)21 -b(\\)p Fu([0-9])p FD(")13 b(matc)o(hes)h(an)o(y)g(decimal)g(digit\).)19 -b(T)m(o)75 1471 y(include)e(a)g(literal)f(\\)p Fu(])p -FD(")g(in)h(the)g(sequence,)j(mak)o(e)15 b(it)i(the)h(\014rst)g(c)o -(haracter)g(\(follo)o(wing)c(a)j(p)q(ossible)g(\\)p Fu(^)p -FD("\).)27 b(T)m(o)75 1521 y(include)14 b(a)g(literal)f(\\)p -Fu(-)p FD(",)f(mak)o(e)h(it)g(the)i(\014rst)f(or)g(last)g(c)o -(haracter.)75 1571 y(In)k(general)g(there)h(ma)o(y)d(b)q(e)i(more)f -(than)h(one)g(w)o(a)o(y)f(to)h(matc)o(h)f(a)g(regular)h(expression)h -(to)f(an)f(input)h(string.)75 1621 y(Considering)e(only)g(the)h(rules)f -(giv)o(en)g(so)h(far)f(could)g(lead)g(to)g(am)o(biguities.)23 -b(T)m(o)15 b(resolv)o(e)i(those)g(am)o(biguities,)75 -1671 y(the)12 b(generated)i(regular)e(expression)h(c)o(ho)q(oses)g -(among)c(alternativ)o(es)j(using)g(the)g(rule)g(\\\014rst)h(then)f -(longest".)17 b(In)75 1720 y(other)d(w)o(ords,)f(it)g(considers)h(the)g -(p)q(ossible)f(matc)o(hes)g(in)g(order)h(w)o(orking)e(from)f(left)i(to) -g(righ)o(t)g(across)h(the)g(input)75 1770 y(string)h(and)f(the)i -(pattern,)f(and)g(it)f(attempts)h(to)f(matc)o(h)g(longer)h(pieces)h(of) -e(the)h(input)g(string)g(b)q(efore)g(shorter)75 1820 -y(ones.)k(More)14 b(sp)q(eci\014cally)m(,)f(the)i(follo)o(wing)c(rules) -j(apply)g(in)f(decreasing)i(order)g(of)e(priorit)o(y:)126 -1904 y(1.)20 b(If)13 b(a)g(regular)h(expression)h(could)f(matc)o(h)e(t) -o(w)o(o)h(di\013eren)o(t)i(parts)f(of)f(an)h(input)f(string)h(then)g -(it)f(will)g(matc)o(h)179 1954 y(the)h(one)g(that)g(b)q(egins)h -(earliest.)126 2039 y(2.)20 b(If)14 b(a)g(regular)g(expression)i(con)o -(tains)e(\\)p Fu(|)p FD(")g(op)q(erators)h(then)g(the)g(leftmost)e -(matc)o(hing)g(sub-expression)j(is)179 2089 y(c)o(hosen.)126 -2174 y(3.)k(In)14 b(\\)p Fu(*)p FD(",)e(\\)p Fu(+)p FD(",)h(and)h(\\)p -Fu(?)p FD(")j(constructs,)f(longer)e(matc)o(hes)f(are)h(c)o(hosen)h(in) -f(preference)i(to)e(shorter)h(ones.)126 2259 y(4.)20 -b(In)14 b(sequences)i(of)d(expression)i(comp)q(onen)o(ts)f(the)g(comp)q -(onen)o(ts)g(are)g(considered)i(from)c(left)h(to)h(righ)o(t.)153 -2348 y Ft(\(define)j(r1)i(\(string->r)o(ege)o(xp)d("abc"\)\))153 -2394 y(\(r1)j("xyz"\))351 b Fs(=)-6 b Fn(\))19 b Ft(#f)153 -2439 y(\(r1)g("12abc345)o("\))252 b Fs(=)-6 b Fn(\))19 -b Ft(\(\(2)g(5\)\))153 2485 y(\(define)e(r2)i(\(string->r)o(ege)o(xp)d -("[a-z]+"\)\))153 2531 y(\(r2)j("12abc345)o("\))252 b -Fs(=)-6 b Fn(\))19 b Ft(\(\(2)g(5\)\))75 2669 y FD(If)14 -b(the)h(regular)f(expression)i(con)o(tains)e(paren)o(thesis,)i(and)e -(if)g(there)h(is)f(a)h(matc)o(h,)d(the)j(result)h(returned)g(b)o(y)e -(the)75 2719 y(application)h(will)h(con)o(tain)g(sev)o(eral)i(couples)f -(of)f(in)o(tegers.)28 b(First)17 b(couple)g(will)f(b)q(e)h(the)g -(indexes)h(of)e(the)i(\014rst)75 2769 y(longest)c(substring)h(whic)o(h) -f(matc)o(h)f(the)i(regular)f(expression.)20 b(Subsequen)o(t)c(couples,) -f(will)d(b)q(e)j(the)g(indexes)g(of)75 2819 y(all)e(the)h(sub-parts)h -(of)e(this)h(regular)g(expression,)h(in)e(sequence.)p -eop +39 38 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(39)p 37 64 1838 2 v 37 190 a Fw(\(exec)24 b FD(string)t +Fw(\))1356 b FF(pro)q(cedure)37 271 y(Executes)18 b(the)f(command)g +(con)o(tained)g(in)h FD(string)i FF(and)d(redirects)h(its)f(output)g +(in)h(a)e(string.)25 b(This)18 b(string)37 327 y(constitutes)e(the)f +(result)h(of)e Fw(exec)p FF(.)37 420 y Fw(\(getenv)23 +b FD(string)t Fw(\))1309 b FF(pro)q(cedure)37 494 y(Lo)q(oks)14 +b(for)f(the)h(en)o(vironmen)o(t)g(v)m(ariable)h(named)e +FD(string)k FF(and)d(returns)g(its)f(v)m(alue)i(as)e(a)h(string,)f(if)h +(it)g(exists.)37 543 y(Otherwise,)i Fw(getenv)e FF(returns)i +Fw(#f)p FF(.)125 611 y Fv(\(getenv)k("SHELL"\))343 661 +y Fu(=)-7 b Fp(\))21 b Fv("/bin/zsh")37 822 y Fw(\(setenv!)i +FD(var)h(value)s Fw(\))1212 b FF(pro)q(cedure)37 895 +y(Sets)19 b(the)f(en)o(vironmen)o(t)h(v)m(ariable)g FD(var)24 +b FF(to)17 b FD(value)t FF(.)29 b FD(V)m(ar)23 b FF(and)18 +b FD(value)k FF(m)o(ust)17 b(b)q(e)i(strings.)29 b(The)19 +b(result)f(of)37 945 y Fw(setenv!)i FF(is)15 b(unde\014ned.)125 +1013 y Fv(\(getenv)20 b("SHELL"\))343 1062 y Fu(=)-7 +b Fp(\))21 b Fv("/bin/zsh")37 1230 y FI(6.17)56 b(Addresses)37 +1316 y FF(An)13 b FD(addr)n(ess)e FF(is)h(a)g(Sc)o(heme)g(ob)s(ject)f +(whic)o(h)i(con)o(tains)f(a)f(reference)i(to)e(another)g(Sc)o(heme)h +(ob)s(ject.)19 b(This)12 b(t)o(yp)q(e)37 1372 y(can)j(b)q(e)g(view)o +(ed)f(as)g(a)g(kind)h(of)f(p)q(oin)o(ter)g(to)g(a)g(Sc)o(heme)g(ob)s +(ject.)19 b(Addresses,)c(ev)o(en)f(though)g(they)g(are)g(v)o(ery)37 +1429 y(dangerous,)19 b(ha)o(v)o(e)g(b)q(een)g(in)o(tro)q(duced)h(in)g +FB(STk)e FF(so)g(that)g(ob)s(jects)g(that)g(ha)o(v)o(e)g(no)h +(\\readable")g(external)37 1485 y(represen)o(tation)i(can)g(still)i(b)q +(e)e(transformed)f(in)o(to)h(strings)f(and)h(bac)o(k)g(without)g(loss)g +(of)f(information.)37 1541 y(Adresses)c(w)o(ere)f(useful)h(with)f +(pre-3.0)g(v)o(ersion)g(of)g FB(STk)p FF(;)f(their)h(usage)g(is)h(no)o +(w)e FE(stongly)k(discouraged)p FF(,)37 1598 y(unless)h(y)o(ou)f(kno)o +(w)f(what)h(y)o(ou)f(do.)28 b(In)18 b(particular,)h(an)f(address)g(can) +g(designate)g(an)g(ob)s(ject)f(at)g(a)h(time)37 1654 +y(and)e(another)f(one)g(later)g(\(i.e.)20 b(after)15 +b(the)g(garbage)f(collector)i(has)f(mark)o(ed)g(the)g(zone)h(as)f +(free\).)37 1711 y(Addresses)23 b(are)e(prin)o(ted)i(with)f(a)f(sp)q +(ecial)j(syn)o(tax:)32 b Fw(#pNNN)p FF(,)21 b(where)h +Fw(NNN)f FF(is)h(an)g(hexadecimal)h(v)m(alue.)37 1767 +y(Reading)17 b(this)f(v)m(alue)g(bac)o(k)f(yields)i(the)e(original)h +(ob)s(ject)f(whose)g(lo)q(cation)h(is)g Fw(NNN)p FF(.)37 +1879 y Fw(\(address-of)23 b FD(obj)7 b Fw(\))1266 b FF(pro)q(cedure)37 +1959 y(Returns)16 b(the)g(address)f(of)g Fw(obj)p FF(.)37 +2052 y Fw(\(address?)23 b FD(obj)7 b Fw(\))1314 b FF(pro)q(cedure)37 +2132 y(Returns)16 b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 +b(an)g(address;)g(returns)g Fw(#f)g FF(otherwise.)37 +2232 y FI(6.18)56 b(Signals)37 2318 y FB(STk)18 b FF(allo)o(ws)g(the)g +(use)g(to)g(asso)q(ciate)f(handlers)i(to)f(signals.)29 +b(Signal)19 b(handlers)g(for)e(a)h(giv)o(en)g(signal)h(can)37 +2374 y(ev)o(en)c(b)q(e)g(c)o(hained)g(in)g(a)f(list.)20 +b(When)15 b(a)f(signal)h(o)q(ccurs,)f(the)g(\014rst)g(signal)h(of)f +(the)g(list)h(is)g(executed.)20 b(Unless)37 2431 y(this)f(signal)h +(yields)f(the)g(sym)o(b)q(ol)g Fw(break)e FF(the)i(next)f(signal)h(of)f +(the)h(list)g(is)g(ev)m(aluated.)30 b(When)19 b(a)f(signal)37 +2487 y(handler)f(is)e(called,)i(the)e(in)o(teger)h(v)m(alue)g(of)f +(this)g(signal)h(is)g(passed)g(to)e(it)i(as)e(\(the)h(only\))h +(parameter.)37 2543 y(The)d(follo)o(wing)h(PO)o(XIX.1)e(constan)o(ts)g +(for)g(signal)h(n)o(um)o(b)q(ers)g(are)g(de\014ned:)20 +b Fw(SIGABRT)p FF(,)11 b Fw(SIGALRM)p FF(,)g Fw(SIGFPE)p +FF(,)37 2600 y Fw(SIGHUP)p FF(,)h Fw(SIGILL)p FF(,)f +Fw(SIGINT)p FF(,)g Fw(SIGKILL)p FF(,)g Fw(SIGPIPE)p FF(,)g +Fw(SIGQUIT)p FF(,)g Fw(SIGSEGV)p FF(,)h Fw(SIGTERM)p +FF(,)f Fw(SIGUSR1)p FF(,)g Fw(SIGUSR2)p FF(,)37 2656 +y Fw(SIGCHLD)p FF(,)i Fw(SIGCONT)p FF(,)f Fw(SIGSTOP)p +FF(,)h Fw(SIGTSTP)p FF(,)f Fw(SIGTTIN)p FF(,)g Fw(SIGTTOU)p +FF(.)h(Moreo)o(v)o(er,)f(the)i(follo)o(wing)g(constan)o(ts,)37 +2713 y(whic)o(h)25 b(are)d(often)h(a)o(v)m(ailable)i(on)e(most)g +(systems)f(are)h(also)g(de\014ned)1267 2696 y FA(6)1289 +2713 y FF(:)35 b Fw(SIGTRAP)p FF(,)22 b Fw(SIGIOT)p FF(,)g +Fw(SIGEMT)p FF(,)p 37 2745 735 2 v 89 2771 a Ft(6)107 +2787 y Fs(Some)13 b(of)g(these)g(constan)o(ts)h(ma)o(y)f(b)q(e)h +(unde\014ned)h(if)e(they)g(are)g(not)h(supp)q(orted)g(b)o(y)f(y)o(our)h +(system)p eop %%Page: 40 40 -40 39 bop 75 47 a FC(40)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 153 179 a Ft(\(define)j(r3)i(\(string->r)o(ege)o(xp)d -("\(a*\)\(b*\)c)o("\))o(\))153 224 y(\(r3)j("abc"\))351 -b Fs(=)-6 b Fn(\))19 b Ft(\(\(0)g(3\))f(\(0)h(1\))g(\(1)g(2\)\))153 -270 y(\(r3)g("c"\))391 b Fs(=)-6 b Fn(\))19 b Ft(\(\(0)g(1\))f(\(0)h -(0\))g(\(0)g(0\)\))153 316 y(\(\(string->r)o(eg)o(exp)d("\([a-z]+\))o -(,\([)o(a-)o(z]+)o(\)"\))g("XXabcd,e)o(XX")o(\))703 361 -y Fs(=)-6 b Fn(\))19 b Ft(\(\(2)g(8\))f(\(2)h(6\))g(\(7)g(8\)\))75 -580 y Fu(\(regexp?)h FB(obj)6 b Fu(\))1307 b FD(pro)q(cedure)75 -653 y(Returns)15 b Fu(#t)e FD(if)g FB(obj)20 b FD(is)14 -b(a)f(regular)h(expression)h(created)h(b)o(y)d Fu(string->regexp)p -FD(;)e(otherwise)k(returns)g Fu(#f)p FD(.)153 731 y Ft(\(regexp?)i -(\(string->r)o(eg)o(exp)f("[a-zA-Z])o([a-)o(zA)o(-Z0)o(-9)o(]*")o(\)\)) -703 776 y Fs(=)-6 b Fn(\))39 b Ft(#t)75 949 y Fu(\(regexp-replace)19 -b FB(p)n(attern)i(string)h(substitution)s Fu(\))726 b -FD(pro)q(cedure)75 999 y Fu(\(regexp-replace-a)o(ll)19 -b FB(p)n(attern)i(string)h(substitution)s Fu(\))639 b -FD(pro)q(cedure)75 1068 y Fu(Regexp-replace)13 b FD(matc)o(hes)i(the)h -(regular)g(expression)h FB(p)n(attern)h FD(against)d -FB(string)s FD(.)23 b(If)16 b(there)h(is)e(a)g(matc)o(h,)g(the)75 -1114 y(p)q(ortion)e(of)g FB(string)j FD(whic)o(h)e(matc)o(h)e -FB(p)n(attern)k FD(is)e(replaced)g(b)o(y)f(the)h FB(substitution)j -FD(string.)h(If)13 b(there)i(is)e(no)g(matc)o(h,)75 1159 -y Fu(regexp-replace)j FD(returns)21 b FB(string)h FD(unmo)q(di\014ed.) -32 b(Note)19 b(that)g(the)h(giv)o(en)e FB(p)n(attern)k -FD(could)d(b)q(e)g(here)i(either)75 1205 y(a)16 b(string)f(or)h(a)g -(regular)g(expression.)25 b(If)15 b FB(p)n(attern)k FD(con)o(tains)d -(strings)g(of)g(the)g(form)e(\\)p Fu(\\n)p FD(",)h(where)i -FB(n)f FD(is)g(a)f(digit)75 1261 y(b)q(et)o(w)o(een)e(1)e(and)g(9,)g -(then)h(it)f(is)h(replaced)g(in)f(the)h(substitution)f(with)g(the)h(p)q -(ortion)f(of)g(string)h(that)f(matc)o(hed)g(the)75 1307 -y FB(n)p FD(-th)k(paren)o(thesized)i(sub)q(expression)f(of)e -FB(p)n(attern)p FD(.)20 b(If)15 b FB(n)g FD(is)f(equal)h(to)f(0,)g -(then)i(it)e(is)g(replaced)i(in)e FB(substitution)75 -1353 y FD(with)g(the)g(p)q(ortion)g(of)f FB(string)k -FD(that)d(matc)o(hed)f FB(p)n(attern)s FD(.)153 1424 -y Ft(\(regexp-rep)o(la)o(ce)j("a*b")i("aaabbccc)o(c")e("X"\))703 -1470 y Fs(=)-6 b Fn(\))19 b Ft("Xbcccc")153 1515 y(\(regexp-rep)o(la)o -(ce)d(\(string->r)o(ege)o(xp)g("a*b"\))h("aaabbcccc")f("X"\))703 -1561 y Fs(=)-6 b Fn(\))19 b Ft("Xbcccc")153 1607 y(\(regexp-rep)o(la)o -(ce)d("\(a*\)b")h("aaabbcccc)o(")g("X\\\\1Y"\))703 1652 -y Fs(=)-6 b Fn(\))19 b Ft("XaaaYbccc)o(c")153 1698 y(\(regexp-rep)o(la) -o(ce)d("\(a*\)b")h("aaabbcccc)o(")g("X\\\\0Y"\))703 1744 -y Fs(=)-6 b Fn(\))19 b Ft("XaaabYbcc)o(cc)o(")153 1789 -y(\(regexp-rep)o(la)o(ce)d("\([a-z]*\))g(\([a-z]*\)")h("john)g(brown")h -("\\\\2)g(\\\\1"\))703 1835 y Fs(=)-6 b Fn(\))19 b Ft("brown)e(john")75 -1956 y Fu(Regexp-replace)10 b FD(replaces)k(the)g(\014rst)g(o)q -(ccurence)i(of)c FB(p)n(attern)k FD(in)d FB(string)s -FD(.)18 b(T)m(o)12 b(replace)i FB(al)r(l)e FD(the)i(o)q(ccurences)i(of) -75 2006 y(the)e FB(p)n(attern)p FD(,)g(use)g Fu(regexp-replace-all)153 -2084 y Ft(\(regexp-rep)o(la)o(ce)i("a*b")i("aaabbccc)o(c")e("X"\))703 -2129 y Fs(=)-6 b Fn(\))19 b Ft("Xbcccc")153 2175 y(\(regexp-rep)o(la)o -(ce-)o(all)d("a*b")h("aaabbcccc")f("X"\))703 2221 y Fs(=)-6 -b Fn(\))19 b Ft("XXcccc")75 2405 y FG(6.21)56 b(P)n(attern)18 -b(matc)n(hing)75 2482 y FD(P)o(attern)11 b(matc)o(hing)d(is)i(a)f(k)o -(ey)i(feature)f(of)g(most)e(mo)q(dern)i(functional)f(programmi)o(ng)e -(languages)i(since)i(it)f(allo)o(ws)75 2531 y(clean)16 -b(and)g(secure)j(co)q(de)d(to)g(b)q(e)h(written.)26 b(In)o(ternally)m -(,)15 b(\\pattern-matc)o(hing)g(forms")f(should)i(b)q(e)h(translated)75 -2581 y(\(compiled\))10 b(in)o(to)g(cascades)j(of)e(\\elemen)o(tary)f -(tests")j(where)f(co)q(de)g(is)f(made)f(as)i(e\016cien)o(t)g(as)f(p)q -(ossible,)g(a)o(v)o(oiding)75 2631 y(redundan)o(t)19 -b(tests;)k(the)c Fz(STk)g FD(\\pattern)h(matc)o(hing)c(compiler")i(pro) -o(vides)h(this)1365 2616 y Fy(5)1383 2631 y FD(.)33 b(The)19 -b(tec)o(hnique)h(used)g(is)p 75 2662 705 2 v 121 2689 -a Fr(5)139 2701 y Fq(The)11 b(\\pattern)d(matc)o(hing)h(compiler")f -(has)j(b)q(een)e(written)i(b)o(y)f(Jean-Marie)f(Ge\013ro)o(y)h(and)g -(is)h(part)f(of)h(the)f(Man)o(uel)g(Serrano's)75 2740 -y(Biglo)q(o)i(compiler[8)m(])h(since)f(sev)o(eral)g(y)o(ears.)20 -b(The)13 b(co)q(de)f(\(and)g(do)q(cumen)o(tat)o(ion)o(\))f(included)g -(in)i Fh(STk)h Fq(has)e(b)q(een)g(stolen)g(from)g(the)75 -2779 y(Biglo)q(o)c(pac)o(k)n(age)e(v1.9)i(\(the)g(only)g(di\013erence)e -(b)q(et)o(w)o(een)h(b)q(oth)h(pac)o(k)n(age)f(is)h(the)g(pattern)f -(matc)o(hing)f(of)j(structures)d(whisc)o(h)j(is)f(absen)o(t)75 -2819 y(in)j Fh(STk)p Fq(\).)p eop +40 39 bop 37 45 a FE(40)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(SIGBUS)p FF(,)d Fw(SIGSYS)p +FF(,)g Fw(SIGURG)p FF(,)g Fw(SIGCLD)p FF(,)g Fw(SIGIO)p +FF(,)g Fw(SIGPOLL)p FF(,)g Fw(SIGXCPU)p FF(,)g Fw(SIGXFSZ)p +FF(,)g Fw(SIGVTALRM)p FF(,)f Fw(SIGPROF)p FF(,)37 247 +y Fw(SIGWINCH)p FF(,)h Fw(SIGLOST)p FF(.)37 304 y(See)19 +b(y)o(our)f(Unix)h(do)q(cumen)o(tation)f(for)g(the)g(exact)g(meaning)h +(of)f(eac)o(h)g(constan)o(t)f(or)h([7)o(].)28 b(Use)19 +b(sym)o(b)q(olic)37 360 y(constan)o(ts)11 b(rather)g(than)h(their)g(n)o +(umeric)g(v)m(alue)h(if)f(y)o(ou)g(plan)g(to)f(p)q(ort)g(y)o(our)g +(program)g(on)h(another)f(system.)37 417 y(A)16 b(sp)q(ecial)h(signal,) +f(managed)f(b)o(y)g(the)g(in)o(terpreter,)g(is)h(also)f(de\014ned:)22 +b Fw(SIGHADGC)p FF(.)14 b(This)i(signal)g(is)f(raised)37 +473 y(when)h(the)f(garbage)g(collector)h(phase)f(terminates.)37 +530 y(When)d(the)e(in)o(terpreter)h(starts)e(running,)k(all)e(signals)h +(are)e(sets)g(to)g(their)i(default)f(v)m(alue,)h(excepted)g +Fw(SIGINT)37 586 y FF(\(generally)k(b)q(ound)h(to)d Fw(C)p +FF(on)o(trol-C\))g(whic)o(h)i(is)g(handled)h(sp)q(ecially)l(.)37 +704 y Fw(\(set-signal-handler!)22 b FD(sig)h(hand)r(ler)5 +b Fw(\))885 b FF(pro)q(cedure)37 784 y(Replace)17 b(the)f(handler)g +(for)e(signal)i FD(sig)j FF(with)d FD(hand)r(ler)5 b +FF(.)20 b(Handler)c(can)f(b)q(e)113 879 y(-)23 b Fw(#t)15 +b FF(to)g(reset)g(the)g(signal)h(handler)g(for)f FD(sig)j +FF(to)d(the)g(default)h(system)f(handler.)113 973 y(-)23 +b Fw(#f)14 b FF(to)g(completly)i(ignore)e FD(sig)k FF(\(Note)c(that)g +(P)o(osix.1)f(states)h(that)g Fw(SIGKILL)f FF(and)i Fw(SIGSTOP)e +FF(cannot)151 1030 y(b)q(e)j(caugh)o(t)f(or)f(ignored\).)113 +1124 y(-)23 b(a)15 b(one)g(parameter)g(pro)q(cedure.)37 +1219 y(This)h(pro)q(cedure)g(returns)f(the)h(new)f(handler,)h(or)f +(\(length)g(1\))g(handler)h(list,)g(asso)q(ciated)f(to)g +FD(sig)s FF(.)125 1320 y Fv(\(let*)20 b(\(\(x)152 b(#f\))277 +1369 y(\(handler)20 b(\(lambda)h(\(i\))g(\(set!)g(x)g(#t\)\)\)\))168 +1419 y(\(set-signal-handler)o(!)e(|SIGHADGC|)h(handler\))168 +1469 y(\(gc\))168 1519 y(x\))343 1569 y Fu(=)-7 b Fp(\))21 +b Fv(#t)37 1788 y Fw(\(add-signal-handler!)h FD(sig)h(hand)r(ler)5 +b Fw(\))885 b FF(pro)q(cedure)37 1868 y(Adds)15 b FD(hand)r(ler)20 +b FF(to)14 b(the)g(list)h(of)f(handlers)i(for)d(signal)j +FD(sig)s FF(.)k(If)14 b(the)h(old)g(signal)g(handler)g(is)g(a)f(b)q(o)q +(olean,)i(this)37 1924 y(pro)q(cedure)k(is)f(equiv)m(alen)o(t)h(to)d +Fw(set-signal-handler!)p FF(.)27 b(Otherwise,)20 b(the)e(new)h(handler) +g(is)g(added)g(in)37 1981 y(fron)o(t)14 b(of)g(the)h(previous)g(list)h +(of)e(handler.)21 b(This)15 b(pro)q(cedure)g(returns)g(the)g(new)f +(handler,)i(or)e(handler)i(list,)37 2037 y(asso)q(ciated)g(to)e +FD(sig)t FF(.)125 2138 y Fv(\(let*)20 b(\(\(x)174 b('\(\)\))277 +2188 y(\(handler1)20 b(\(lambda)g(\(i\))i(\(set!)e(x)i(\(cons)f(1)g +(x\)\)\)\))277 2238 y(\(handler2)f(\(lambda)g(\(i\))i(\(set!)e(x)i +(\(cons)f(2)g(x\)\)\)\)\))168 2287 y(\(add-signal-handler)o(!)e +(|SIGHADGC|)h(handler1\))168 2337 y(\(add-signal-handler)o(!)f +(|SIGHADGC|)h(handler2\))168 2387 y(\(gc\))168 2437 y(x\))343 +2487 y Fu(=)-7 b Fp(\))21 b Fv(\(1)h(2\))125 2688 y(\(let*)e(\(\(x)174 +b('\(\)\))277 2738 y(\(handler1)20 b(\(lambda)g(\(i\))i(\(set!)e(x)i +(\(cons)f(1)g(x\)\)\)\))277 2787 y(\(handler2)f(\(lambda)g(\(i\))i +(\(set!)e(x)i(\(cons)f(2)g(x\)\))h('break\)\)\))p eop %%Page: 41 41 -41 40 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(41)p 75 64 1763 2 v 75 179 a FD(describ)q(ed)16 b(in)e(details)f(in)h -([9)o(],)g(and)g(the)g(co)q(de)h(generated)h(can)e(b)q(e)h(considered)g -(optimal)d(due)i(to)g(the)h(w)o(a)o(y)e(this)75 229 y(\\pattern)h -(compiler")f(w)o(as)g(obtained.)75 278 y(The)h(\\pattern)h(language")e -(allo)o(ws)f(the)j(expression)g(of)e(a)h(wide)f(v)n(ariet)o(y)h(of)f -(patterns,)i(including:)137 363 y Fm(\017)21 b FD(Non-linear)15 -b(patterns:)22 b(pattern)16 b(v)n(ariables)f(can)g(app)q(ear)h(more)f -(than)g(once,)h(allo)o(wing)d(comparison)h(of)179 413 -y(subparts)h(of)e(the)h(datum)f(\(through)h Fu(eq?)p -FD(\))137 493 y Fm(\017)21 b FD(Recursiv)o(e)16 b(patterns)h(on)e -(lists:)21 b(for)15 b(example,)g(c)o(hec)o(king)g(that)h(the)g(datum)e -(is)h(a)h(list)f(of)g(zero)h(or)f(more)179 543 y Fu(a)p -FD(s)f(follo)o(w)o(ed)e(b)o(y)i(zero)g(or)g(more)f Fu(b)p -FD(s.)137 623 y Fm(\017)21 b FD(P)o(attern)15 b(matc)o(hing)d(on)h -(lists)h(as)g(w)o(ell)f(as)h(on)g(v)o(ectors.)75 730 -y FC(P)o(attern)g(Matc)o(hing)g(F)l(acilities)75 807 -y FD(Only)e(t)o(w)o(o)g(sp)q(ecial)g(forms)f(are)h(pro)o(vided)h(for)e -(this:)18 b Fu(match-case)10 b FD(and)i Fu(match-lambda)d -FD(and)j(these)i(also)e(exist,)75 857 y(for)i(example,)e(in)h(Andrew)i -(W)m(righ)o(t)e(and)g(Bruce)j(Duba's)d([10)o(])g(pattern)i(matc)o(hing) -d(pac)o(k)n(age.)75 960 y Fu(\(match-case)20 b Fm(h)p -FD(k)o(ey)p Fm(i)i(h)p FD(clause)576 966 y Fy(1)595 960 -y Fm(i)g(h)p FD(clause)757 966 y Fy(2)776 960 y Fm(i)q -Fx(:)7 b(:)g(:)e Fu(\))849 b FD(syn)o(tax)75 1029 y(In)14 -b(this)g(form,)d Fm(h)p FD(k)o(ey)p Fm(i)k FD(ma)o(y)d(b)q(e)i(an)o(y)g -(expression)h(and)e(eac)o(h)i Fm(h)p FD(clause)p Fm(i)g -FD(has)f(the)g(form)153 1103 y Ft(\()p Fk(<)p Ft(pat)p -Fk(>)k(<)p Ft(expression)540 1107 y Fr(1)555 1103 y Fk(>)h(<)p -Ft(expressio)o(n)833 1107 y Fr(2)847 1103 y Fk(>)h Ft(...\))75 -1226 y FD(A)14 b Fu(match-case)e FD(expression)j(is)f(ev)n(aluated)g -(as)g(follo)o(ws.)j Fx(<)p FD(k)o(ey)p Fx(>)e FD(is)f(ev)n(aluated)g -(and)g(the)g(result)h(is)f(compared)75 1276 y(with)c(eac)o(h)g -(successiv)o(e)i(patterns.)18 b(If)10 b(the)g(pattern)h(in)f(some)f -Fx(<)p FD(clause)p Fx(>)i FD(yields)f(a)g(matc)o(h,)f(then)h(the)h -(expressions)75 1326 y(in)k(that)g Fx(<)p FD(clause)p -Fx(>)h FD(are)f(ev)n(aluated)g(from)f(left)g(to)h(righ)o(t)g(in)g(an)f -(en)o(vironmen)o(t)g(where)j(the)e(pattern)h(v)n(ariables)75 -1376 y(are)c(b)q(ound)f(to)g(the)h(corresp)q(onding)g(subparts)g(of)f -(the)h(datum,)e(and)h(the)h(result)g(of)e(the)i(last)f(expression)i(in) -d(that)75 1426 y Fx(<)p FD(clause)p Fx(>)16 b FD(is)f(returned)i(as)f -(the)f(result)h(of)f(the)h Fu(match-case)d FD(expression.)23 -b(If)15 b(no)g Fx(<)p FD(pat)p Fx(>)h FD(in)f(an)o(y)f -Fx(<)p FD(clause)p Fx(>)75 1475 y FD(matc)o(hes)e(the)h(datum,)d(then,) -j(if)e(there)j(is)e(an)g Fu(else)f FD(clause,)i(its)f(expressions)i -(are)e(ev)n(aluated)g(and)g(the)h(result)g(of)75 1525 -y(the)h(last)f(is)h(the)g(result)g(of)f(the)h(whole)g -Fu(match-case)d FD(expression;)k(otherwise)f(the)g(result)g(of)f(the)i -Fu(match-case)75 1575 y FD(expression)g(is)f(unsp)q(eci\014ed.)75 -1625 y(The)g(equalit)o(y)f(predicate)i(used)g(is)f Fu(eq?)p -FD(.)153 1705 y Ft(\(match-case)i('\(a)i(b)i(a\))193 -1751 y(\(\(?x)e(?x\))g('foo\))193 1797 y(\(\(?x)g(?-)h(?x\))f('bar\)\)) -350 1842 y Fs(=)-6 b Fn(\))19 b Ft(bar)75 2021 y Fu(\(match-lambda)g -Fm(h)p FD(clause)504 2027 y Fy(1)523 2021 y Fm(i)j(h)p -FD(clause)685 2027 y Fy(2)705 2021 y Fm(i)p Fx(:)7 b(:)g(:)e -Fu(\))921 b FD(syn)o(tax)75 2094 y(The)19 b(form)e Fu(match-lambda)p -FD(expands)g(in)o(to)h(a)g(lam)o(b)q(da-expression)g(exp)q(ecting)h(an) -g(argumen)o(t)e(whic)o(h,)j(once)75 2144 y(applied)13 -b(to)h(an)g(expression,)g(b)q(eha)o(v)o(es)h(exactly)f(lik)o(e)f(a)h -Fu(match-case)d FD(expression.)153 2224 y Ft(\(\(match-lam)o(bd)o(a)232 -2270 y(\(\(?x)18 b(?x\))g('foo\))232 2316 y(\(\(?x)g(?-)h(?x\))f -('bar\)\))g('bar\))350 2361 y Fs(=)-6 b Fn(\))19 b Ft(bar)75 -2543 y FC(The)d(pattern)d(language)75 2620 y FD(The)g(syn)o(tax)f(is)h -(presen)o(ted)h(in)e(T)m(able)g(3.)17 b(It)c(is)f(describ)q(ed)j(b)q -(elo)o(w)d(in)g(the)h(same)f(w)o(a)o(y)f(\(and)i(nearly)f(in)g(the)h -(same)75 2669 y(w)o(ords\))h(as)g(in)g([10)o(].)75 2719 -y Fl(Note:)42 b Ft(and,)18 b(or,)g(not,)g(check)13 b -Fs(and)j Ft(kwote)d Fs(m)o(ust)j(b)q(e)f(quoted)i(in)f(order)f(to)h(b)q -(e)f(treated)h(as)f(literals.)26 b(This)16 b(is)g(the)75 -2769 y(only)f(justi\014cation)h(for)e(ha)o(ving)h(the)f -Ft(kwote)e Fs(pattern)i(since,)h(b)o(y)f(con)o(v)o(en)o(tion,)i(an)o(y) -e(atom)g(whic)o(h)h(is)f(not)g(a)g(k)o(eyw)o(ord)h(is)75 -2819 y(quoted.)p eop -%%Page: 42 42 -42 41 bop 75 47 a FC(42)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 100 169 a Fk(<)p Fl(p)n(attern)p Fk(>)d -Fn(\000)-6 b(!)308 b Fl(Matches:)100 215 y Fk(<)p Fs(atom)p -Fk(>)13 b Fn(k)g Ft(\(kwote)37 b Fk(<)p Fs(atom)p Fk(>)p -Ft(\))49 b Fs(an)o(y)14 b(expression)h Ft(eq?)h Fs(to)d -Fk(<)p Fs(atom)p Fk(>)100 261 y Fn(k)g Ft(\(and)e Fk(<)p -Fs(pat)308 265 y Fr(1)336 261 y Fk(>)i Fs(.)6 b(.)g(.)g -Fk(<)p Fs(pat)515 265 y Fg(n)548 261 y Fk(>)p Ft(\))63 -b Fs(if)13 b(all)i(of)d Fk(<)p Fs(pat)878 265 y Fg(i)903 -261 y Fk(>)g Fs(matc)o(h)100 306 y Fn(k)h Ft(\(or)f Fk(<)p -Fs(pat)p Fk(>)h Fs(.)6 b(.)g(.)g Fk(<)p Fs(pat)468 310 -y Fg(n)500 306 y Fk(>)p Ft(\))111 b Fs(if)13 b(an)o(y)h(of)f -Fk(<)p Fs(pat)898 310 y Fr(1)926 306 y Fk(>)g Fs(through)h -Fk(<)p Fs(pat)1199 310 y Fg(n)1231 306 y Fk(>)p Fs(matc)o(h)100 -352 y Fn(k)f Ft(\(not)e Fk(<)p Fs(pat)p Fk(>)p Ft(\))303 -b Fs(if)13 b Fk(<)p Fs(pat)p Fk(>)g Fs(do)q(esn't)h(matc)o(h)100 -398 y Fn(k)f Ft(\(?)j Fk(<)p Fs(predicate)p Fk(>)p Ft(\))241 -b Fs(if)13 b Fk(<)p Fs(predicate)p Fk(>)i Fs(is)e(true)100 -443 y Fn(k)g Ft(\()p Fk(<)p Ft(pat)242 447 y Fr(1)268 -443 y Fk(>)20 b Ft(...)378 427 y Fr(6)433 443 y Fk(<)p -Ft(pat)523 447 y Fg(n)554 443 y Fk(>)p Ft(\))57 b Fs(a)13 -b(list)h(of)f Fk(n)g Fs(elemen)o(ts)100 489 y Fn(k)g -Fk(<)p Fs(pat)p Fk(>)g Ft(...)p 260 496 59 2 v 332 473 -a Fr(7)661 489 y Fs(a)g(\(p)q(ossibly)j(empt)o(y\))d(rep)q(etition)i -(of)e Fk(<)p Fs(pat)p Fk(>)g Fs(in)h(a)f(list.)100 535 -y Fn(k)g Ft(#\()p Fk(<)p Ft(pat)p Fk(>)k Ft(...)p Fk(<)p -Ft(pat)459 539 y Fg(n)489 535 y Fk(>)p Ft(\))122 b Fs(a)13 -b(v)o(ector)g(of)g(n)g(elemen)o(ts)100 580 y Fn(k)g Ft(?)p -Fk(<)p Fs(iden)o(ti\014er)p Fk(>)303 b Fs(an)o(ything,)15 -b(and)e(binds)i Fk(identif)t(ier)f Fs(as)f(a)g(v)n(ariable)100 -626 y Fn(k)g Ft(?-)489 b Fs(an)o(ything)100 672 y Fn(k)13 -b Ft(??-)469 b Fs(an)o(y)14 b(\(p)q(ossibly)h(empt)o(y\))f(rep)q -(etition)h(of)d(an)o(ything)j(in)f(a)f(list)100 717 y -Fn(k)g Ft(???-)449 b Fs(an)o(y)14 b(end)f(of)g(list)735 -805 y FD(T)m(able)g(3:)18 b(P)o(attern)d(Syn)o(tax)p -77 855 13 2 v 90 855 1733 2 v 1825 855 13 2 v 75 982 -a FC(Explanations)e(through)h(examples)137 1069 y Fm(\017)21 -b Fu(?-)13 b FD(matc)o(hes)h(an)o(y)f(s-expr)137 1157 -y Fm(\017)21 b Fu(a)13 b FD(matc)o(hes)h(the)g(atom)e -Fu('a)p FD(.)137 1245 y Fm(\017)21 b Fu(?a)13 b FD(matc)o(hes)h(an)o(y) -f(expression,)i(and)e(binds)h(the)h(v)n(ariable)e Fu(a)g -FD(to)h(this)g(expression.)137 1333 y Fm(\017)21 b Fu(\(?)43 -b(integer?\))17 b FD(matc)o(hes)c(an)o(y)g(in)o(teger)137 -1421 y Fm(\017)21 b Fu(\(a)g(\(a)h(b\)\))13 b FD(matc)o(hes)g(the)i -(only)e(list)g Fu('\(a)21 b(\(a)h(b\)\))p FD(.)137 1509 -y Fm(\017)f Fu(???-)14 b FD(can)i(only)f(app)q(ear)h(at)f(the)h(end)g -(of)f(a)g(list,)g(and)h(alw)o(a)o(ys)e(succeeds.)26 b(F)m(or)15 -b(instance,)h Fu(\(a)21 b(???-\))15 b FD(is)179 1558 -y(equiv)n(alen)o(t)e(to)h Fu(\(a)21 b(.)43 b(?-\))p FD(.)137 -1646 y Fm(\017)21 b FD(when)c(o)q(ccurring)h(in)e(a)g(list,)h -Fu(??-)f FD(matc)o(hes)g(an)o(y)h(sequence)i(of)d(an)o(ything:)23 -b Fu(\(a)e(??-)g(b\))c FD(matc)o(hes)f(an)o(y)179 1696 -y(list)d(whose)i Fu(car)e FD(is)h Fu(a)f FD(and)h(last)g -Fu(car)f FD(is)h Fu(b)p FD(.)137 1784 y Fm(\017)21 b -Fu(\(a)g(...\))13 b FD(matc)o(hes)h(an)o(y)f(list)h(of)f -Fu(a)p FD('s,)g(p)q(ossibly)g(empt)o(y)m(.)137 1872 y -Fm(\017)21 b Fu(\(?x)g(?x\))13 b FD(matc)o(hes)h(an)o(y)f(list)h(of)f -(length)h(2)f(whose)i Fu(car)e FD(is)h FB(e)n(q)g FD(to)f(its)h -Fu(cadr)137 1960 y Fm(\017)21 b Fu(\(\(and)g(\(not)g(a\))g(?x\))g(?x\)) -13 b FD(matc)o(hes)g(an)o(y)f(list)h(of)g(length)g(2)g(whose)h -Fu(car)f FD(is)g(not)g FB(e)n(q)h FD(to)f Fu('a)g FD(but)g(is)g -FB(e)n(q)h FD(to)179 2010 y(its)g Fu(cadr)137 2098 y -Fm(\017)21 b Fu(#\(?-)g(?-)g(???-\))13 b FD(matc)o(hes)g(an)o(y)h(v)o -(ector)g(whose)h(length)f(is)g(at)f(least)h(2.)75 2184 -y Fl(Note:)31 b Ft(??-)11 b Fs(and)h Ft(...)f Fs(patterns)h(can)h(not)f -(app)q(ear)h(inside)g(a)f(v)o(ector,)g(where)g(y)o(ou)h(should)g(use)f -(???-:)17 b(F)m(or)11 b(example,)j Ft(#\(a)75 2234 y(??-)k(b\))c -Fs(or)g Ft(#\(a...\))19 b Fs(are)14 b(in)o(v)n(alid)j(patterns,)e -(whereas)g Ft(#\(a)k(???-\))12 b Fs(is)j(v)n(alid)h(and)f(matc)o(hes)g -(an)o(y)g(v)o(ector)f(whose)h(\014rst)75 2284 y(elemen)o(t)f(is)g(the)f -(atom)g Ft(a)p Fs(.)75 2407 y FG(6.22)56 b(Pro)r(cesses)75 -2486 y Fz(STk)18 b FD(pro)o(vides)f(access)i(to)e(Unix)g(pro)q(cesses)j -(as)d(\014rst)h(class)g(ob)r(jects.)29 b(Basically)m(,)17 -b(a)f(pro)q(cess)k(con)o(tains)d(four)75 2535 y(informations:)h(the)e -(standard)g(Unix)f(pro)q(cess)i(iden)o(ti\014cation)d(\(ak)n(a)h(PID\)) -g(and)g(the)h(three)h(standard)e(\014les)h(of)75 2585 -y(the)e(pro)q(cess.)75 2694 y Fu(\(run-process)19 b FB(c)n(ommand)k -Fx(p)573 2700 y Fy(1)613 2694 y Fx(p)634 2700 y Fy(2)675 -2694 y Fx(p)696 2700 y Fy(3)736 2694 y Fx(:)7 b(:)g(:)e -Fu(\))846 b FD(pro)q(cedure)75 2769 y Fu(run-process)13 -b FD(creates)k(a)e(new)h(pro)q(cess)h(and)f(run)f(the)h(executable)h -(sp)q(eci\014ed)g(in)e FB(c)n(ommand)5 b FD(.)22 b(The)16 -b FB(p)i FD(corre-)75 2819 y(sp)q(ond)c(to)g(the)h(command)c(line)i -(argumen)o(ts.)k(The)e(follo)o(wing)c(v)n(alues)j(of)f -FB(p)j FD(ha)o(v)o(e)e(a)g(sp)q(ecial)g(meaning:)p eop -%%Page: 43 43 -43 42 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(43)p 75 64 1763 2 v 137 179 a Fm(\017)21 b Fu(:input)10 -b FD(p)q(ermits)h(to)h(redirect)h(the)f(standard)g(input)f(\014le)h(of) -f(the)h(pro)q(cess.)19 b(Redirection)12 b(can)f(come)g(from)179 -229 y(a)g(\014le)h(or)g(from)f(a)g(pip)q(e.)18 b(T)m(o)11 -b(redirect)j(the)e(standard)h(input)e(from)g(a)g(\014le,)h(the)h(name)e -(of)g(this)h(\014le)g(m)o(ust)f(b)q(e)179 278 y(sp)q(eci\014ed)16 -b(after)g Fu(:input)p FD(.)k(Use)15 b(the)h(sp)q(ecial)f(k)o(eyw)o(ord) -g Fu(:pipe)f FD(to)h(redirect)h(the)g(standard)f(input)g(from)179 -328 y(a)e(pip)q(e.)137 414 y Fm(\017)21 b Fu(:output)13 -b FD(p)q(ermits)i(to)g(redirect)i(the)e(standard)h(output)f(\014le)g -(of)g(the)h(pro)q(cess.)23 b(Redirection)16 b(can)f(go)g(to)179 -464 y(a)g(\014le)g(or)h(to)f(a)g(pip)q(e.)22 b(T)m(o)15 -b(redirect)i(the)f(standard)g(output)f(to)h(a)f(\014le,)g(the)h(name)e -(of)h(this)g(\014le)h(m)o(ust)e(b)q(e)179 514 y(sp)q(eci\014ed)i(after) -g Fu(:output)p FD(.)j(Use)d(the)g(sp)q(ecial)f(k)o(eyw)o(ord)g -Fu(:pipe)f FD(to)h(redirect)h(the)g(standard)f(output)h(to)179 -564 y(a)d(pip)q(e.)137 650 y Fm(\017)21 b Fu(:error)11 -b FD(p)q(ermits)g(to)i(redirect)g(the)g(standard)g(error)g(\014le)f(of) -g(the)h(pro)q(cess.)19 b(Redirection)12 b(can)h(go)e(to)i(a)e(\014le) -179 700 y(or)j(to)f(a)h(pip)q(e.)19 b(T)m(o)13 b(redirect)i(the)g -(standard)f(error)h(to)f(a)f(\014le,)h(the)g(name)f(of)h(this)g(\014le) -f(m)o(ust)g(b)q(e)i(sp)q(eci\014ed)179 749 y(after)f -Fu(:error)p FD(.)j(Use)d(the)h(sp)q(ecial)f(k)o(eyw)o(ord)g -Fu(:pipe)f FD(to)g(redirect)j(the)e(standard)h(error)g(to)e(a)h(pip)q -(e.)137 835 y Fm(\017)21 b Fu(:wait)13 b FD(m)o(ust)g(b)q(e)i(follo)o -(w)o(ed)e(b)o(y)h(a)g(b)q(o)q(olean)g(v)n(alue.)k(This)d(v)n(alue)e(sp) -q(eci\014es)j(if)e(the)h(pro)q(cess)h(m)o(ust)d(b)q(e)i(run)179 -885 y(async)o(hronously)f(or)g(not.)k(By)c(default,)f(the)h(pro)q(cess) -i(is)e(run)g(async)o(hronously)g(\(i.e.)k Fu(:wait)12 -b FD(is)i Fu(#f)p FD(\).)137 971 y Fm(\017)21 b Fu(:host)c -FD(m)o(ust)g(b)q(e)i(follo)o(w)o(ed)e(b)o(y)h(a)g(string.)31 -b(This)18 b(string)g(represen)o(ts)j(the)e(name)e(of)h(the)h(mac)o -(hine)e(on)179 1021 y(whic)o(h)e(the)i(command)c(m)o(ust)i(b)q(e)h -(executed.)26 b(This)15 b(option)g(uses)i(the)g(external)f(command)d -Fu(rsh)p FD(.)23 b(The)179 1071 y(shell)12 b(v)n(ariable)f -Fu(PATH)h FD(m)o(ust)f(b)q(e)i(correctly)h(set)f(for)f(accessing)i(it)e -(without)g(sp)q(ecifying)g(its)h(ab)q(olute)f(path.)75 -1152 y(The)f(follo)o(wing)d(example)h(launc)o(hes)i(a)f(pro)q(cess)i -(whic)o(h)e(execute)j(the)e(Unix)f(command)d Fu(ls)j -FD(with)g(the)h(argumen)o(ts)75 1198 y Fu(-l)i FD(and)h -Fu(/bin)p FD(.)j(The)e(lines)e(prin)o(ted)i(b)o(y)e(this)h(command)d -(are)k(stored)g(in)e(the)h(\014le)g Fu(/tmp/X)153 1280 -y Ft(\(run-proces)o(s)i("ls")j("-l")f("/bin")f(:output)g("/tmp/X")f -(:wait)i(#f\))75 1471 y Fu(\(process?)i FB(pr)n(o)n(c)n(ess)s -Fu(\))1215 b FD(pro)q(cedure)75 1545 y(Returns)15 b Fu(#t)e -FD(if)g FB(pr)n(o)n(c)n(ess)k FD(is)d(a)g(pro)q(cess,)h(otherwise)g -(returns)g Fu(#f)p FD(.)75 1656 y Fu(\(process-alive?)k -FB(pr)n(o)n(c)n(ess)s Fu(\))1084 b FD(pro)q(cedure)75 -1730 y(Returns)15 b Fu(#t)e FD(if)g FB(pr)n(o)n(c)n(ess)k -FD(if)c(the)i(pro)q(cess)g(is)f(curren)o(tly)h(running,)e(otherwise)i -(returns)g Fu(#f)p FD(.)75 1841 y Fu(\(process-pid)k -FB(pr)n(o)n(c)n(ess)s Fu(\))1150 b FD(pro)q(cedure)75 -1915 y(Returns)15 b(an)e(in)o(teger)i(v)n(alue)e(whic)o(h)h(represen)o -(ts)i(the)f(Unix)e(iden)o(ti\014cation)g(\(PID\))i(of)e -FB(pr)n(o)n(c)n(ess)s FD(.)75 2026 y Fu(\(process-input)19 -b FB(pr)n(o)n(c)n(ess)s Fu(\))1106 b FD(pro)q(cedure)75 -2076 y Fu(\(process-output)19 b FB(pr)n(o)n(c)n(ess)s -Fu(\))1084 b FD(pro)q(cedure)75 2126 y Fu(\(process-error)19 -b FB(pr)n(o)n(c)n(ess)s Fu(\))1106 b FD(pro)q(cedure)75 -2200 y(Returns)13 b(the)f(\014le)g(p)q(ort)h(asso)q(ciated)f(to)g(the)h -(standard)f(input,)g(output)g(or)g(error)h(of)e FB(pr)n(o)n(c)n(ess)s -FD(,)h(if)f(it)h(is)f(redirected)75 2250 y(in)k(\(or)h(to\))f(a)g(pip)q -(e;)h(otherwise)g(returns)h Fu(#f)p FD(.)23 b(Note)16 -b(that)f(the)h(returned)h(p)q(ort)f(is)f(op)q(ened)i(for)e(reading)g -(when)75 2299 y(calling)c Fu(process-output)f FD(or)i -Fu(process-error)p FD(;)e(it)i(is)h(op)q(ened)g(for)g(writing)e(when)j -(calling)d Fu(process-input)p FD(.)75 2460 y Fu(\(process-wait)19 -b FB(pr)n(o)n(c)n(ess)s Fu(\))1128 b FD(pro)q(cedure)75 -2534 y Fu(Process-wait)9 b FD(stops)k(the)g(curren)o(t)g(pro)q(cess)h -(un)o(til)d FB(pr)n(o)n(c)n(ess)k FD(completion.)h Fu(Process-wait)9 -b FD(returns)k Fu(#f)f FD(when)75 2584 y FB(pr)n(o)n(c)n(ess)17 -b FD(is)d(already)f(terminated;)g(it)h(returns)h Fu(#t)e -FD(otherwise.)75 2695 y Fu(\(process-exit-sta)o(tus)19 -b FB(pr)n(o)n(c)n(ess)s Fu(\))975 b FD(pro)q(cedure)75 -2769 y Fu(Process-exit-stat)o(us)9 b FD(returns)14 b(the)f(exit)f -(status)h(of)e FB(pr)n(o)n(c)n(ess)16 b FD(if)11 b(it)h(has)g -(\014nished)h(its)f(execution;)h(returns)h Fu(#f)75 2819 -y FD(otherwise.)p eop -%%Page: 44 44 -44 43 bop 75 47 a FC(44)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(process-send-sig)o(nal)19 -b FB(pr)n(o)n(c)n(ess)i(n)s Fu(\))931 b FD(pro)q(cedure)75 -252 y(Send)18 b(the)g(signal)e(whose)i(in)o(teger)g(v)n(alue)f(is)g -FB(n)k FD(to)c FB(pr)n(o)n(c)n(ess)s FD(.)29 b(V)m(alue)17 -b(of)g FB(n)j FD(is)e(system)f(dep)q(endan)o(t.)30 b(Use)18 -b(the)75 302 y(de\014ned)c(signal)f(constan)o(ts)h(to)f(mak)o(e)f(y)o -(our)h(program)f(indp)q(endan)o(t)i(of)e(the)i(running)f(system)h -(\(see)g(6.18\).)j(The)75 352 y(result)e(of)e FB(pr)n(o)n(c)n -(ess-send-signal)18 b FD(is)c(unde\014ned.)75 455 y Fu(\(process-kill) -19 b FB(pr)n(o)n(c)n(ess)s Fu(\))1128 b FD(pro)q(cedure)75 -525 y Fu(Process-kill)11 b FD(brutally)i(kills)f FB(pr)n(o)n(c)n(ess)s -FD(.)18 b(The)c(result)h(of)e Fu(process-kill)e FD(is)i(unde\014ned.)20 -b(This)13 b(pro)q(cedure)j(is)75 570 y(equiv)n(alen)o(t)d(to)153 -648 y Ft(\(process-se)o(nd)o(-si)o(gna)o(l)j(process)h(|SIGTERM|\))75 -829 y Fu(\(process-stop)i FB(pr)n(o)n(c)n(ess)s Fu(\))1128 -b FD(pro)q(cedure)75 879 y Fu(\(process-continue)18 b -FB(pr)n(o)n(c)n(ess)s Fu(\))1041 b FD(pro)q(cedure)75 -948 y(Those)13 b(pro)q(cedures)j(are)d(only)f(a)o(v)n(ailable)f(on)i -(systems)g(whic)o(h)f(supp)q(ort)i(job)f(con)o(trol.)k -FB(Pr)n(o)n(c)n(ess-stop)e FD(stops)f(the)75 993 y(execution)h(of)e -FB(pr)n(o)n(c)n(ess)k FD(and)d FB(pr)n(o)n(c)n(ess-c)n(ontinue)j -FD(resumes)d(its)g(execution.)19 b(They)14 b(are)g(equiv)n(alen)o(t)g -(to)153 1071 y Ft(\(process-se)o(nd)o(-si)o(gna)o(l)i(process)h -(|SIGSTOP|\))153 1117 y(\(process-se)o(nd)o(-si)o(gna)o(l)f(process)h -(|SIGCONT|\))75 1298 y Fu(\(process-list)m(\))1279 b -FD(pro)q(cedure)75 1371 y Fu(process-list)11 b FD(returns)16 -b(the)e(list)g(of)f(pro)q(cesses)k(whic)o(h)c(are)i(curren)o(tly)f -(running)g(\(i.e.)k(aliv)o(e\).)75 1486 y FG(6.23)56 -b(So)r(c)n(k)n(ets)75 1562 y Fz(STk)20 b FD(de\014nes)i(so)q(c)o(k)o -(ets,)g(on)e(systems)g(whic)o(h)g(supp)q(ort)h(them,)g(as)f(\014rst)h -(class)f(ob)r(jects.)38 b(So)q(c)o(k)o(ets)21 b(p)q(ermits)75 -1612 y(pro)q(cesses)d(to)d(comm)o(unicate)e(ev)o(en)j(if)f(they)g(are)h -(on)f(di\013eren)o(t)h(mac)o(hines.)22 b(So)q(c)o(k)o(ets)16 -b(are)g(useful)f(for)g(creating)75 1662 y(clien)o(t-serv)o(er)g -(applications.)75 1767 y Fu(\(make-client-sock)o(et)k -FB(hostname)j(p)n(ort-numb)n(er)t Fu(\))710 b FD(pro)q(cedure)75 -1840 y Fu(make-client-socke)o(t)16 b FD(returns)k(a)e(new)h(so)q(c)o(k) -o(et)h(ob)r(ject.)33 b(This)19 b(so)q(c)o(k)o(et)g(establishes)h(a)e -(link)g(b)q(et)o(w)o(een)i(the)75 1890 y(running)14 b(application)e -(listening)h(on)h(p)q(ort)g FB(p)n(ort-numb)n(er)k FD(of)13 -b FB(hostname)t FD(.)75 1993 y Fu(\(socket?)20 b FB(so)n(cket)t -Fu(\))1255 b FD(pro)q(cedure)75 2067 y(Returns)15 b Fu(#t)e -FD(if)g FB(so)n(cket)18 b FD(is)c(a)f(so)q(c)o(k)o(et,)i(otherwise)g -(returns)g Fu(#f)p FD(.)75 2170 y Fu(\(socket-host-name)j -FB(so)n(cket)t Fu(\))1059 b FD(pro)q(cedure)75 2244 y(Returns)18 -b(a)e(string)h(whic)o(h)g(con)o(tains)f(the)i(name)d(of)h(the)i(distan) -o(t)e(host)h(attac)o(hed)h(to)e FB(so)n(cket)5 b FD(.)26 -b(If)17 b FB(so)n(cket)j FD(has)75 2293 y(b)q(een)f(created)g(with)e -Fu(make-client-sock)o(et)d FD(this)k(pro)q(cedure)h(returns)g(the)f -(o\016cial)e(name)h(of)g(the)h(distan)o(t)75 2343 y(mac)o(hine)12 -b(used)i(for)f(connection.)18 b(If)13 b FB(so)n(cket)k -FD(has)d(b)q(een)g(created)h(with)d Fu(make-server-socket)p -FD(,)e(this)j(function)75 2393 y(returns)h(the)f(o\016cial)e(name)g(of) -h(the)h(clien)o(t)g(connected)h(to)e(the)h(so)q(c)o(k)o(et.)19 -b(If)12 b(no)g(clien)o(t)g(has)h(used)g(y)o(et)g(the)g(so)q(c)o(k)o -(et,)75 2443 y(this)h(function)g(returns)h Fu(#f)p FD(.)75 -2546 y Fu(\(socket-host-addr)o(ess)k FB(so)n(cket)t Fu(\))993 -b FD(pro)q(cedure)75 2620 y(Returns)16 b(a)f(string)h(whic)o(h)f(con)o -(tains)h(the)g(IP)f(n)o(um)o(b)q(er)g(of)g(the)h(distan)o(t)f(host)h -(attac)o(hed)g(to)g FB(so)n(cket)t FD(.)22 b(If)15 b -FB(so)n(cket)75 2669 y FD(has)f(b)q(een)h(created)h(with)e -Fu(make-client-socke)o(t)d FD(this)j(pro)q(cedure)i(returns)g(the)f(IP) -f(n)o(um)o(b)q(er)f(of)h(the)h(distan)o(t)75 2719 y(mac)o(hine)d(used)i -(for)f(connection.)18 b(If)13 b FB(so)n(cket)k FD(has)d(b)q(een)g -(created)h(with)d Fu(make-server-socket)p FD(,)e(this)j(function)75 -2769 y(returns)i(the)f(address)g(of)f(the)g(clien)o(t)h(connected)h(to) -e(the)g(so)q(c)o(k)o(et.)19 b(If)13 b(no)g(clien)o(t)g(has)g(used)h(y)o -(et)g(the)g(so)q(c)o(k)o(et,)f(this)75 2819 y(function)h(returns)h -Fu(#f)p FD(.)p eop -%%Page: 45 45 -45 44 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(45)p 75 64 1763 2 v 75 179 a Fu(\(socket-local-add)o(ress)18 -b FB(so)n(cket)t Fu(\))972 b FD(pro)q(cedure)75 252 y(Returns)15 -b(a)e(string)h(whic)o(h)g(con)o(tains)g(the)g(IP)g(n)o(um)o(b)q(er)g -(of)f(the)h(lo)q(cal)f(host)i(attac)o(hed)f(to)g FB(so)n(cket)t -FD(.)75 355 y Fu(\(socket-port-numb)o(er)19 b FB(so)n(cket)t -Fu(\))1015 b FD(pro)q(cedure)75 429 y(Returns)15 b(the)f(in)o(teger)h -(n)o(um)o(b)q(er)e(of)g(the)i(p)q(ort)f(used)g(for)g -FB(so)n(cket)t FD(.)75 531 y Fu(\(socket-input)19 b FB(so)n(cket)t -Fu(\))1146 b FD(pro)q(cedure)75 581 y Fu(\(socket-output)19 -b FB(so)n(cket)t Fu(\))1124 b FD(pro)q(cedure)75 655 -y(Returns)14 b(the)f(\014le)g(p)q(ort)g(asso)q(ciated)g(for)f(reading)h -(or)g(writing)e(with)i(the)g(program)e(connected)k(with)d -FB(so)n(cket)t FD(.)18 b(If)75 705 y(no)c(connection)g(has)g(already)g -(b)q(een)h(established,)f(these)h(functions)f(return)h -Fu(#f)p FD(.)75 750 y(The)g(follo)o(wing)c(example)i(sho)o(ws)i(ho)o(w) -f(to)g(mak)o(e)f(a)h(clien)o(t)g(so)q(c)o(k)o(et.)20 -b(Here)c(w)o(e)f(create)g(a)f(so)q(c)o(k)o(et)i(on)e(p)q(ort)g(13)g(of) -75 796 y(the)g(mac)o(hine)f(\\)p Fu(kaolin.unice.fr)p -FD(")680 781 y Fy(8)696 796 y FD(:)153 873 y Ft(\(let)19 -b(\(\(s)f(\(make-clie)o(nt)o(-so)o(ck)o(et)e("kaolin.un)o(ice)o(.f)o -(r")g(13\)\)\))193 919 y(\(format)h(#t)38 b("Time)18 -b(is:)g(~A\\n")g(\(read-lin)o(e)f(\(socket-i)o(np)o(ut)f(s\)\)\))193 -964 y(\(socket-s)o(hu)o(tdo)o(wn)36 b(s\)\))75 1145 y -Fu(\(make-server-sock)o(et)m(\))1148 b FD(pro)q(cedure)75 -1194 y Fu(\(make-server-sock)o(et)19 b FB(p)n(ort-numb)n(er)t -Fu(\))902 b FD(pro)q(cedure)75 1268 y Fu(make-server-socke)o(t)13 -b FD(returns)18 b(a)e(new)h(so)q(c)o(k)o(et)g(ob)r(ject.)25 -b(If)16 b FB(p)n(ort-numb)n(er)k FD(is)d(sp)q(eci\014ed,)g(the)g(so)q -(c)o(k)o(et)g(is)f(lis-)75 1318 y(tening)e(on)f(the)i(sp)q(eci\014ed)g -(p)q(ort;)f(otherwise,)h(the)f(comm)o(unication)c(p)q(ort)15 -b(is)e(c)o(hosen)i(b)o(y)f(the)g(system.)75 1421 y Fu -(\(socket-accept-co)o(nnect)o(ion)19 b FB(so)n(cket)t -Fu(\))884 b FD(pro)q(cedure)75 1494 y Fu(socket-accept-con)o(necti)o -(on)16 b FD(w)o(aits)j(for)g(a)h(clien)o(t)f(connection)h(on)f(the)h -(giv)o(en)f FB(so)n(cket)t FD(.)35 b(If)19 b(no)g(clien)o(t)h(is)75 -1544 y(already)15 b(w)o(aiting)g(for)g(a)g(connection,)i(this)e(pro)q -(cedure)j(blo)q(c)o(ks)e(its)f(caller;)h(otherwise,)h(the)f(\014rst)h -(connection)75 1594 y(request)c(on)e(the)h(queue)g(of)f(p)q(ending)g -(connections)h(is)g(connected)h(to)e FB(so)n(cket)t FD(.)17 -b(This)11 b(pro)q(cedure)j(m)o(ust)c(b)q(e)i(called)75 -1643 y(on)h(a)f(serv)o(er)j(so)q(c)o(k)o(et)f(created)g(with)f -Fu(make-server-socke)o(t)p FD(.)i(The)e(result)h(of)e -Fu(socket-accept-connec)o(tion)75 1693 y FD(is)i(unde\014ned.)75 -1739 y(The)e(follo)o(wing)d(example)i(is)g(a)h(simple)e(serv)o(er)k -(whic)o(h)d(w)o(aits)h(for)f(a)g(connection)i(on)e(the)i(p)q(ort)f -(1234)1629 1724 y Fy(9)1647 1739 y FD(.)17 b(Once)c(the)75 -1785 y(connection)h(with)e(the)i(distan)o(t)f(program)e(is)i -(established,)g(w)o(e)g(read)h(a)e(line)h(on)f(the)i(input)f(p)q(ort)g -(asso)q(ciated)h(to)75 1830 y(the)g(so)q(c)o(k)o(et)h(and)f(w)o(e)g -(write)g(the)h(length)f(of)f(this)h(line)f(on)h(its)g(output)g(p)q -(ort.)153 1907 y Ft(\(let)19 b(\(\(s)f(\(make-serv)o(er)o(-so)o(ck)o -(et)e(1234\)\)\))193 1953 y(\(socket-a)o(cc)o(ept)o(-co)o(nn)o(ect)o -(io)o(n)h(s\))193 1999 y(\(let)h(\(\(l)g(\(read-line)e(\(socket-i)o -(npu)o(t)h(s\)\)\)\))232 2044 y(\(format)g(\(socket-o)o(utp)o(ut)f(s\)) -j("Length)e(is:)h(~A\\n")g(\(string-l)o(eng)o(th)e(l\)\))232 -2090 y(\(flush)h(\(socket-ou)o(tpu)o(t)f(s\)\)\))193 -2136 y(\(socket-s)o(hu)o(tdo)o(wn)g(s\)\))75 2316 y Fu -(\(socket-shutdown)i FB(so)n(cket)t Fu(\))1081 b FD(pro)q(cedure)75 -2366 y Fu(\(socket-shutdown)18 b FB(so)n(cket)k(close)s -Fu(\))973 b FD(pro)q(cedure)75 2439 y Fu(Socket-shutdown)10 -b FD(sh)o(utdo)o(wns)k(the)f(connection)h(asso)q(ciated)g(to)f -FB(so)n(cket)t FD(.)18 b FB(Close)e FD(is)d(a)g(b)q(o)q(olean;)f(it)h -(indicates)75 2489 y(if)h(the)h(so)q(c)o(k)o(et)g(m)o(ust)f(b)q(e)h -(closed)g(or)f(not,)g(when)h(the)g(connection)h(is)e(destro)o(y)o(ed.) -21 b(Closing)13 b(the)i(so)q(c)o(k)o(et)h(forbids)75 -2539 y(further)e(connections)h(on)e(the)h(same)f(p)q(ort)h(with)f(the)h -Fu(socket-accept-conn)o(ectio)o(n)d FD(pro)q(cedure.)19 -b(Omitting)75 2589 y(a)14 b(v)n(alue)f(for)g FB(close)k -FD(implies)12 b(the)j(closing)e(of)g(so)q(c)o(k)o(et.)19 -b(The)c(result)f(of)f Fu(socket-shutdown)e FD(is)j(unde\014ned.)p -75 2622 705 2 v 121 2649 a Fr(8)139 2661 y Fq(P)o(ort)e(13)g(is)h -(generally)d(used)i(for)g(testing:)17 b(making)10 b(a)j(connection)d -(to)i(it)h(p)q(ermits)e(to)h(kno)o(w)h(the)f(distan)o(t)f(system's)g -(idea)h(of)75 2700 y(the)f(time)f(of)h(da)o(y)m(.)121 -2728 y Fr(9)139 2740 y Fq(Under)g(Unix,)i(y)o(ou)e(can)h(simply)f -(connect)f(to)i(listening)f(so)q(c)o(k)o(et)g(with)h(the)g -Fo(telnet)f Fq(command.)k(With)d(the)g(giv)o(en)f(example,)75 -2779 y(this)g(can)f(b)q(e)i(ac)o(hiev)o(ed)d(b)o(y)i(t)o(yping)e(the)i -(follo)o(wing)f(command)f(in)i(a)g(windo)o(w)h(shell:)75 -2819 y Fo($)17 b(telnet)f(localhost)e(1234)p eop -%%Page: 46 46 -46 45 bop 75 47 a FC(46)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FD(The)f(follo)o(wing)d(example)h(sho)o(ws)i(a) -f(simple)f(serv)o(er:)19 b(when)13 b(there)g(is)g(a)f(new)h(connection) -g(on)f(the)h(p)q(ort)g(n)o(um)o(b)q(er)75 224 y(1234,)k(the)h(serv)o -(er)g(displa)o(ys)f(the)h(\014rst)g(line)f(sen)o(t)h(to)f(it)g(b)o(y)g -(the)h(clien)o(t,)f(discards)h(the)g(others)h(and)e(go)f(bac)o(k)75 -270 y(w)o(aiting)c(for)i(further)h(clien)o(t)f(connections.)153 -350 y Ft(\(let)19 b(\(\(s)f(\(make-serv)o(er)o(-so)o(ck)o(et)e -(1234\)\)\))193 395 y(\(let)i(loop)g(\(\))232 441 y(\(socket-a)o(cce)o -(pt-)o(co)o(nne)o(ct)o(ion)e(s\))232 487 y(\(format)h(#t)i("I've)e -(read:)h(~A\\n")g(\(read-lin)o(e)e(\(socket-inp)o(ut)g(s\)\)\))232 -532 y(\(socket-s)o(hut)o(dow)o(n)g(s)k(#f\))232 578 y(\(loop\)\)\))75 -764 y Fu(\(socket-down?)f FB(so)n(cket)t Fu(\))1146 b -FD(pro)q(cedure)75 837 y(Returns)14 b Fu(#t)f FD(if)g -FB(so)n(cket)k FD(has)c(b)q(een)i(previously)e(closed)h(with)f -Fu(socket-shutdown)p FD(.)i(It)e(returns)i Fu(#f)e FD(otherwise.)75 -944 y Fu(\(socket-dup)20 b FB(so)n(cket)t Fu(\))1189 -b FD(pro)q(cedure)75 1014 y(Returns)13 b(a)e(cop)o(y)h(of)f -FB(so)n(cket)t FD(.)18 b(The)12 b(original)e(and)i(the)g(cop)o(y)g(so)q -(c)o(k)o(et)g(can)h(b)q(e)f(used)h(in)o(terc)o(hangeably)m(.)j(Ho)o(w)o -(ev)o(er,)75 1059 y(if)g(a)h(new)h(connection)f(is)g(accepted)i(on)e -(one)g(so)q(c)o(k)o(et,)i(the)e(c)o(haracters)i(exc)o(hanged)f(on)f -(this)g(so)q(c)o(k)o(et)h(are)g(not)75 1105 y(visible)f(on)h(the)g -(other)g(so)q(c)o(k)o(et.)31 b(Duplicating)16 b(a)i(so)q(c)o(k)o(et)g -(is)g(useful)g(when)g(a)g(serv)o(er)h(m)o(ust)e(accept)i(m)o(ultiple)75 -1151 y(sim)o(ultaneous)c(connections.)28 b(The)18 b(follo)o(wing)c -(example)i(creates)i(a)f(serv)o(er)h(listening)f(on)f(p)q(ort)i(1234.) -26 b(This)75 1196 y(serv)o(er)15 b(is)f(duplicated)g(and,)f(once)i(t)o -(w)o(o)e(clien)o(ts)h(are)h(presen)o(t,)g(a)e(message)h(is)g(sen)o(t)g -(on)g(b)q(oth)g(connections.)153 1276 y Ft(\(define)j(s1)i(\(make-serv) -o(er-)o(so)o(cke)o(t)d(1234\)\))153 1321 y(\(define)h(s2)i(\(socket-du) -o(p)e(s1\)\))153 1367 y(\(socket-acc)o(ep)o(t-c)o(onn)o(ec)o(tio)o(n)f -(s1\))153 1413 y(\(socket-acc)o(ep)o(t-c)o(onn)o(ec)o(tio)o(n)g(s2\)) -153 1458 y(;;)j(blocks)f(until)f(two)i(clients)e(are)h(present)153 -1504 y(\(display)f("Hello,\\n")f(\(socket-o)o(ut)o(put)g(s1\)\))153 -1550 y(\(display)h("world\\n")36 b(\(socket-o)o(ut)o(put)16 -b(s2\)\))153 1595 y(\(flush)i(\(socket-o)o(utp)o(ut)e(s1\)\))153 -1641 y(\(flush)i(\(socket-o)o(utp)o(ut)e(s2\)\))75 1827 -y Fu(\(when-socket-read)o(y)j FB(so)n(cket)j(hand)r(ler)t -Fu(\))879 b FD(pro)q(cedure)75 1877 y Fu(\(when-socket-read)o(y)19 -b FB(so)n(cket)t Fu(\))1037 b FD(pro)q(cedure)75 1950 -y(De\014nes)20 b(a)e(handler)h(for)f FB(so)n(cket)t FD(.)33 -b(The)19 b(handler)f(is)h(a)f(th)o(unk)h(whic)o(h)g(is)f(executed)j -(when)e(a)f(connection)i(is)75 2000 y(a)o(v)n(ailable)12 -b(on)i FB(so)n(cket)5 b FD(.)19 b(If)14 b(the)h(sp)q(ecial)g(v)n(alue)f -Fu(#f)g FD(is)g(pro)o(vided)g(as)h FB(hand)r(ler)5 b -FD(,)14 b(the)h(curren)o(t)h(handler)e(for)g FB(so)n(cket)75 -2050 y FD(is)20 b(deleted.)37 b(If)20 b(a)g(handler)g(is)g(pro)o -(vided,)h(the)f(v)n(alue)g(returned)i(b)o(y)d Fu(when-socket-ready)e -FD(is)j(unde\014ned.)75 2100 y(Otherwise,)15 b(it)e(returns)j(the)e -(handler)g(curren)o(tly)h(asso)q(ciated)g(to)f FB(so)n(cket)t -FD(.)75 2146 y(This)i(pro)q(cedure,)i(in)d(conjunction)h(with)g -Fu(socket-dup)e FD(p)q(ermits)h(to)h(build)f(m)o(ultiple-clien)o(ts)f -(serv)o(ers)k(whic)o(h)75 2191 y(w)o(ork)c(async)o(hronously)m(.)j(Suc) -o(h)e(a)e(serv)o(er)j(is)d(sho)o(wn)h(b)q(elo)o(w.)153 -2271 y Ft(\(define)j(p)j(\(make-ser)o(ve)o(r-s)o(oc)o(ket)c(1234\)\)) -153 2317 y(\(when-socke)o(t-)o(rea)o(dy)g(p)507 2362 -y(\(let)i(\(\(count)e(0\)\))546 2408 y(\(lambda)h(\(\))585 -2454 y(\(set!)h(count)f(\(+)i(count)f(1\)\))585 2499 -y(\(register)o(-co)o(nne)o(ct)o(ion)e(\(socket-d)o(up)g(p\))j -(count\)\)\)\))153 2591 y(\(define)e(register-co)o(nn)o(ect)o(io)o(n) -193 2636 y(\(let)h(\(\(sockets)e('\(\)\)\))232 2682 y(\(lambda)h(\(s)i -(cnt\))271 2728 y(;;)g(Accept)e(connection)271 2773 y(\(socket-ac)o -(cep)o(t-)o(con)o(ne)o(cti)o(on)f(s\))271 2819 y(;;)j(Save)f(socket)f -(somewhere)f(to)j(avoid)f(GC)h(problems)p eop -%%Page: 47 47 -47 46 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(47)p 75 64 1763 2 v 271 179 a Ft(\(set!)18 b(sockets)f(\(cons)g(s)j -(sockets\)\))271 224 y(;;)f(Create)e(a)j(handler)c(for)j(reading)e -(inputs)g(from)h(this)g(new)h(connectio)o(n)271 270 y(\(let)f(\(\(in)38 -b(\(socket-i)o(npu)o(t)16 b(s\)\))389 316 y(\(out)i(\(socket-o)o(utp)o -(ut)e(s\)\)\))310 361 y(\(when-port-)o(re)o(ada)o(bl)o(e)h(in)408 -407 y(\(lambda)g(\(\))448 453 y(\(let)h(\(\(l)g(\(read-line)e(in\)\)\)) -487 498 y(\(if)i(\(eof-objec)o(t?)e(l\))565 544 y(;;)j(delete)e -(current)g(handler)565 590 y(\(when-port)o(-re)o(ada)o(bl)o(e)g(in)h -(#f\))565 635 y(;;)h(Just)f(write)g(the)g(line)g(read)h(on)f(the)h -(socket)565 681 y(\(begin)605 727 y(\(format)d(out)j("On)f(#~A)h(-->)f -(~A\\n")g(cnt)g(l\))605 772 y(\(flush)f(out\)\)\)\)\)\))o(\)\)\))o(\)) -75 957 y FG(6.24)56 b(F)-5 b(oreign)18 b(F)-5 b(unction)19 -b(In)n(terface)75 1034 y FD(The)c Fz(STk)h FD(F)m(oreign)e(F)m(unction) -h(In)o(terface)h(\(FFI)f(for)g(short\))h(has)f(b)q(een)h(de\014ned)g -(to)f(allo)o(w)e(an)i(easy)h(access)h(to)75 1084 y(functions)d(written) -g(in)f(C)h(without)f(needing)h(to)g(build)e(C-wrapp)q(ers)j(and,)e -(consequen)o(tly)m(,)h(without)f(an)o(y)g(need)75 1133 -y(to)f(write)h(C)f(co)q(de.)18 b(Note)13 b(that)f(the)h(FFI)f(is)g(v)o -(ery)g(mac)o(hine)f(dep)q(enden)o(t)j(and)e(that)g(it)g(w)o(orks)g -(only)g(on)g(a)g(limited)75 1183 y(set)18 b(of)f(arc)o(hitectures)424 -1168 y Fy(10)461 1183 y FD(.)29 b(Moreo)o(v)o(er,)18 -b(since)g(FFI)g(allo)o(ws)e(v)o(ery)h(lo)o(w)g(lev)o(el)g(access,)i(it) -e(is)h(easy)f(to)h(crash)g(the)75 1233 y(in)o(terpreter)e(when)e(using) -g(an)f(external)i(C)f(function.)75 1283 y(The)f(de\014nition)f(of)g(an) -h(external)g(function)f(is)g(done)h(with)g(the)g(syn)o(tax)f -Fu(define-external)p FD(.)j(This)d(form)f(tak)o(es)75 -1333 y(as)18 b(argumen)o(ts)f(a)g(t)o(yp)q(ed)h(list)g(of)f(parameters) -g(and)h(accepts)h(sev)o(eral)f(options)g(to)f(de\014ne)i(the)f(name)f -(of)g(the)75 1383 y(function)h(in)f(the)i(C)e(w)o(orld,)h(the)h -(library)e(whic)o(h)h(de\014nes)h(this)f(function,)f(.)7 -b(.)f(.)37 b(The)18 b(t)o(yp)q(e)h(of)e(the)i(function)75 -1432 y(result)14 b(and)f(the)h(t)o(yp)q(es)g(of)e(its)h(argumen)o(ts)g -(are)g(de\014ned)h(in)f(T)m(able)f(4.)18 b(This)13 b(table)g(lists)g -(the)h(v)n(arious)e(k)o(eyw)o(ords)75 1482 y(reserv)o(ed)k(for)d -(denoting)h(t)o(yp)q(es)h(and)f(their)g(equiv)n(alence)g(b)q(et)o(w)o -(een)h(the)g(C)f(and)f(the)i(Sc)o(heme)e(w)o(orlds.)75 -1586 y Fu(\(define-external)18 b Fm(h)p FD(name)p Fm(i)j(h)p -FD(parameters)p Fm(i)i(h)p FD(options)p Fm(i)p Fu(\))681 -b FD(syn)o(tax)75 1659 y(The)16 b(form)e Fu(define-external)e -FD(binds)k(a)f(new)h(pro)q(cedure)i(to)d Fm(h)p FD(name)p -Fm(i)p FD(.)23 b(The)16 b(arit)o(y)f(of)g(this)g(new)i(pro)q(cedure)75 -1709 y(is)g(de\014ned)h(b)o(y)f(the)h(t)o(yp)q(ed)g(list)f(of)f -(parameters)i(giv)o(en)e(b)o(y)h Fm(h)p FD(parameters)p -Fm(i)q FD(.)28 b(This)17 b(parameters)g(list)g(is)g(a)g(list)75 -1759 y(of)e(couples)h(whose)f(\014rst)h(elemen)o(t)f(is)g(the)h(name)e -(of)h(the)h(parameter,)f(and)g(the)g(second)i(one)e(is)g(is)h(a)e(k)o -(eyw)o(ord)75 1809 y(represen)o(ting)j(its)e(t)o(yp)q(e)h(\(see)g -(table)g(for)e(equiv)n(alence\).)23 b(All)14 b(the)i(t)o(yp)q(es)g -(de\014ned)g(in)f(T)m(able)g(4,)f(except)j Fu(:void)p -FD(,)75 1859 y(are)d(allo)o(w)o(ed)f(for)g(the)i(parameters)f(of)f(a)h -(foreign)f(function.)18 b Fu(Define-external)11 b FD(accepts)k(sev)o -(eral)f(options:)137 1933 y Fm(\017)21 b Fu(:return-type)11 -b FD(is)j(used)h(to)e(de\014ne)i(the)g(t)o(yp)q(e)f(of)f(the)i(v)n -(alue)e(returned)j(b)o(y)d(the)i(foreign)e(function.)18 -b(The)179 1979 y(t)o(yp)q(e)c(returned)i(m)o(ust)d(b)q(e)h(c)o(hosen)h -(in)e(the)i(t)o(yp)q(es)g(sp)q(eci\014ed)g(in)f(the)g(table.)k(F)m(or) -13 b(instance:)336 2069 y Ft(\(define-e)o(xt)o(ern)o(al)j(maximum\(\(a) -g(:int\))i(\(b)g(:int\)\))375 2114 y(:return-t)o(ype)e(:int\))179 -2254 y FD(de\014nes)j(the)f(foreign)g(function)f(maxim)n(um)d(whic)o(h) -j(tak)o(es)i(t)o(w)o(o)e(C)h(in)o(tegers)g(and)g(returns)h(an)f(in)o -(teger)179 2304 y(result.)h(Omitting)11 b(this)j(option)f(default)h(to) -f(a)h(result)g(t)o(yp)q(e)h(equal)e(to)h Fu(:void)f FD(\(i.e.)k(the)e -(returned)g(v)n(alue)179 2354 y(is)f FB(unde\014ne)n(d)t -FD(\).)137 2430 y Fm(\017)21 b Fu(:entry-name)16 b FD(is)i(used)h(to)f -(sp)q(ecify)g(the)h(name)e(of)h(the)g(foreign)g(function)g(in)g(the)g -(C)g(w)o(orld.)31 b(If)17 b(this)179 2476 y(option)c(is)h(omitted,)e -(the)i(en)o(try-name)f(is)h(supp)q(osed)h(to)f(b)q(e)h -Fm(h)p FD(name)p Fm(i)o FD(.)j(F)m(or)13 b(instance:)336 -2566 y Ft(\(define-e)o(xt)o(ern)o(al)j(minimum\(\(a)g(:int\))i(\(b)g -(:int\)\))375 2612 y(:return-t)o(ype)e(:int)375 2657 -y(:entry-na)o(me)36 b("min"\))p 75 2741 705 2 v 106 2768 -a Fr(10)139 2779 y Fq(In)13 b(release)f(3.99,)g(FFI)i(is)f(kno)o(wn)g -(to)g(w)o(ork)h(on)f(the)g(follo)o(wing)f(arc)o(hitectur)o(es)f(:)19 -b(ix86)13 b(\(but)f(not)h(y)o(et)g(MS)h(Windo)o(ws\),)f(Sun)75 -2819 y(Sparc,)d(HP)i(9000,)e(SGI.)p eop -%%Page: 48 48 -48 47 bop 75 47 a FC(48)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 114 139 1685 2 v 113 239 2 100 v 139 174 -a(Name)p 517 239 V 282 w(Corresp)q(onding)f(C)j(t)o(yp)q(e)p -1157 239 V 174 w(Corresp)q(onding)124 b(Sc)o(heme)1183 -224 y(T)o(yp)q(e)p 1798 239 V 114 240 1685 2 v 114 249 -V 113 298 2 50 v 139 283 a Fu(:void)p 517 298 V 294 w(void)p -1157 298 V 552 w FB(None)p 1798 298 V 114 300 1685 2 -v 113 400 2 100 v 139 335 a Fu(:char)p 517 400 V 294 -w(char)p 1157 400 V 552 w FD(Sc)o(heme)17 b(c)o(haracter)h(or)f(Sc)o -(heme)g(in-)1183 385 y(teger)p 1798 400 V 114 401 1685 -2 v 113 451 2 50 v 139 436 a Fu(:short)p 517 451 V 272 -w(short)k(int)p 1157 451 V 443 w FD(Sc)o(heme)14 b(in)o(teger)p -1798 451 V 114 453 1685 2 v 113 503 2 50 v 139 488 a -Fu(:ushort)p 517 503 V 250 w(unsigned)20 b(short)h(int)p -1157 503 V 247 w FD(Sc)o(heme)14 b(in)o(teger)p 1798 -503 V 114 504 1685 2 v 113 554 2 50 v 139 539 a Fu(:int)p -517 554 V 316 w(int)p 1157 554 V 574 w FD(Sc)o(heme)g(in)o(teger)p -1798 554 V 114 556 1685 2 v 113 606 2 50 v 139 591 a -Fu(:uint)p 517 606 V 294 w(unsigned)20 b(integer)p 1157 -606 V 290 w FD(Sc)o(heme)14 b(in)o(teger)p 1798 606 V -114 607 1685 2 v 113 657 2 50 v 139 642 a Fu(:long)p -517 657 V 294 w(long)21 b(integer)p 1157 657 V 377 w -FD(Sc)o(heme)14 b(in)o(teger)p 1798 657 V 114 659 1685 -2 v 113 708 2 50 v 139 694 a Fu(:ulong)p 517 708 V 272 -w(unsigned)20 b(long)h(integer)p 1157 708 V 181 w FD(Sc)o(heme)14 -b(in)o(teger)p 1798 708 V 114 710 1685 2 v 113 760 2 -50 v 139 745 a Fu(:float)p 517 760 V 272 w(float)p 1157 -760 V 530 w FD(Sc)o(heme)g(Real)p 1798 760 V 114 762 -1685 2 v 113 811 2 50 v 139 796 a Fu(:double)p 517 811 -V 250 w(double)p 1157 811 V 508 w FD(Sc)o(heme)g(Real)p -1798 811 V 114 813 1685 2 v 113 913 2 100 v 139 848 a -Fu(:static-ptr)p 517 913 V 162 w FD(p)q(oin)o(ter)g(on)g(a)f(static)h -(area)p 1157 913 V 216 w(Sc)o(heme)45 b(C-p)q(oin)o(ter)f(ob)r(ject)i -(or)1183 898 y(Sc)o(heme)14 b(String)p 1798 913 V 114 -914 1685 2 v 113 1014 2 100 v 139 949 a Fu(:dynamic-ptr)51 -b FB(or)139 999 y Fu(\(:void)20 b(*\))p 517 1014 V 543 -949 a FD(p)q(oin)o(ter)42 b(on)g(a)f(dynamic)f(area)543 -999 y(\()p Fu(malloc)p FD(ated\))p 1157 1014 V 1183 949 -a(Sc)o(heme)45 b(C-p)q(oin)o(ter)f(ob)r(ject)i(or)1183 -999 y(Sc)o(heme)14 b(String)p 1798 1014 V 114 1016 1685 -2 v 113 1115 2 100 v 139 1051 a Fu(:string)161 b FB(or)139 -1100 y Fu(\(:char)20 b(*\))p 517 1115 V 543 1051 a(char)h(*)j -FD(\(p)q(oin)o(ter)g(on)g(a)g(dynamic)543 1100 y(string\))p -1157 1115 V 1183 1051 a(Sc)o(heme)45 b(C-p)q(oin)o(ter)f(ob)r(ject)i -(or)1183 1100 y(Sc)o(heme)14 b(String)p 1798 1115 V 114 -1117 1685 2 v 113 1167 2 50 v 139 1152 a Fu(:boolean)p -517 1167 V 228 w(int)p 1157 1167 V 574 w FD(Sc)o(heme)g(b)q(o)q(olean)p -1798 1167 V 114 1168 1685 2 v 684 1243 a(T)m(able)f(4:)18 -b(FFI)c(prede\014ned)i(t)o(yp)q(es)179 1407 y(de\014nes)f(the)f(Sc)o -(heme)g(function)f Fu(minimum)g FD(whose)h(application)e(executes)17 -b(the)d(C)g(function)f(called)h Fu(min)p FD(.)137 1481 -y Fm(\017)21 b Fu(:library-name)12 b FD(is)i(used)i(to)e(sp)q(ecify)i -(the)f(library)f(whic)o(h)g(con)o(tains)h(the)g(foreign-function.)20 -b(If)14 b(neces-)179 1527 y(sary)m(,)f(the)h(library)g(is)f(loaded)h(b) -q(efore)g(calling)f(the)h(C)g(function.)k(So,)336 1609 -y Ft(\(define-e)o(xt)o(ern)o(al)e(minimum\(\(a)g(:int\))i(\(b)g -(:int\)\))375 1655 y(:return-t)o(ype)36 b(:int)375 1701 -y(:entry-na)o(me)56 b("min")375 1746 y(:library-)o(nam)o(e)17 -b("libminm)o(ax")o(\))179 1879 y FD(de\014nes)e(a)f(function)g(whic)o -(h)g(will)f(execute)j(the)f(function)f Fu(min)g FD(lo)q(cated)g(in)g -(the)h(library)f Fu(libminmax.xx)179 1929 y FD(\(where)h -Fu(xx)e FD(is)h(the)g(su\016x)g(used)g(for)g(shared)h(libraries)e(on)h -(the)g(running)f(system)h(\(generally)g Fu(so)g FD(or)f -Fu(sl)p FD(\).)75 1998 y(Hereafter,)i(there)g(are)f(some)f(commen)o -(ted)g(de\014nitions)h(of)f(external)h(functions:)193 -2067 y Ft(\(define-e)o(xt)o(ern)o(al)i(isatty)h(\(\(fd)h(:int\)\))252 -2112 y(:return-)o(typ)o(e)f(:boolean)o(\))193 2204 y(\(define-e)o(xt)o -(ern)o(al)f(system)h(\(\(cmd)h(\(:char)f(*\)\)\))h Fi(;;)h(or)g -(\(\(cmd)f(:string\)\))252 2249 y Ft(:return-)o(typ)o(e)f(:int\))193 -2341 y(\(define-e)o(xt)o(ern)o(al)f(malloc)h(\(\(size)h(:ulong\)\))252 -2386 y(:return-)o(typ)o(e)f(\(void)g(*\)\))193 2478 y(\(define-e)o(xt)o -(ern)o(al)f(free)i(\()h(\(p)g(\(:void)f(*\))g(\)\))h(\))75 -2596 y FD(All)14 b(these)i(functions)f(are)g(de\014ned)h(in)e(the)h(C)g -(standard)g(library)m(,)e(hence)k(it)d(is)h(not)f(necessary)j(to)e(sp)q -(ecify)g(the)75 2646 y Fu(:library-name)c FD(option.)137 -2719 y Fm(\017)21 b Fu(istty)13 b FD(is)i(declared)h(here)g(as)f(a)f -(function)h(whic)o(h)f(tak)o(es)i(an)e(in)o(teger)i(and)e(returns)j(a)d -(b)q(o)q(olean)g(\(in)h(fact,)179 2769 y(the)g(v)n(alue)f(returned)i(b) -o(y)e(the)h(C)g(function)f Fu(isatty)f FD(is)i(an)f Fu(int)p -FD(,)g(but)g(w)o(e)h(ask)g(here)g(to)g(the)g(FFI)g(system)179 -2819 y(to)f(translate)g(this)g(result)g(as)g(a)g(b)q(o)q(olean)f(v)n -(alue)h(in)f(the)i(Sc)o(heme)e(w)o(orld\).)p eop -%%Page: 49 49 -49 48 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(49)p 75 64 1763 2 v 137 179 a Fm(\017)21 b Fu(system)14 -b FD(is)h(a)g(function)f(whic)o(h)h(tak)o(es)h(a)f(string)g(as)g -(parameter)g(and)g(returns)i(an)e Fu(int)p FD(.)21 b(Note)16 -b(that)f(the)179 229 y(t)o(yp)q(e)e(of)g(the)g(parameter,)g(can)g(b)q -(e)h(sp)q(eci\014ed)g(as)f(a)g Fu(\(:char)21 b(*\))12 -b FD(or)h Fu(:string)p FD(,)e(as)i(indicated)g(in)g(T)m(able)f(4.)137 -323 y Fm(\017)21 b Fu(malloc)11 b FD(is)i(a)g(function)f(whic)o(h)h -(tak)o(es)h(one)f(parameter)f(\(an)h Fu(unsigned)20 b(long)h(int)12 -b FD(and)h(whic)o(h)g(returns)179 373 y(a)f Fu(\(:void)21 -b(*\))12 b FD(\(or)g Fu(:dynamic-ptr)p FD(\).)k(Sp)q(ecifying)c(that)g -(the)h(result)h(is)e(a)g(dynamic)f(p)q(oin)o(ter)i(\(instead)g(of)179 -423 y(a)i(static)h(one\))g(means)f(that)h(w)o(e)g(w)o(an)o(t)f(that)g -(the)i(Garbage)e(Collector)31 b(tak)o(es)16 b(in)o(to)f(accoun)o(t)h -(the)g(area)179 473 y(allo)q(cated)g(b)o(y)g(the)h(C)g(function)f -Fu(malloc)f FD(\(i.e.)26 b(if)16 b(this)g(area)h(b)q(ecomes)g(no)f -(more)g(accessible,)i(the)f(GC)179 523 y(disp)q(oses)e(it)e(with)h(the) -g Fu(free)f FD(function)797 508 y Fy(11)832 523 y FD(.)137 -618 y Fm(\017)21 b Fu(free)14 b FD(is)h(a)f(function)h(whic)o(h)g(tak)o -(es)g(a)g(dynamic)e(p)q(oin)o(ter)i(and)g(deallo)q(cates)h(the)f(area)g -(it)g(p)q(oin)o(ts.)21 b(Since)179 667 y(the)14 b(de\014nition)g(of)f -(this)h(function)g(sp)q(eci\014es)h(no)f(result)h(t)o(yp)q(e,)f(it)f -(is)h(supp)q(osed)h(to)f(b)q(e)g Fu(:void)1644 652 y -Fy(12)1678 667 y FD(.)75 755 y(External)h(functions)f(can)h(also)f(ha)o -(v)o(e)g(a)g(v)n(ariable)g(n)o(um)o(b)q(er)g(of)g(parameters)g(b)o(y)g -(using)h(the)g(standard)g(Sc)o(heme)75 801 y FB(dot)j -FD(notation.)f(F)m(or)d(instance,)153 892 y Ft(\(define-ext)o(er)o(nal) -i(printf)h(\(\(format)g(:string\))f(.)j(l\))193 937 y(:return-t)o(yp)o -(e)36 b(:int\))75 1071 y FD(de\014nes)16 b(a)e(Sc)o(heme)g(function)g -(with)h(one)f(or)h(more)e(parameters)i(\(the)g(\014rst)g(one)g(b)q -(eing)f(a)g(string\).)20 b(Of)15 b(course,)75 1116 y(the)h(parameters)f -(whic)o(h)g(constitute)h(the)g(v)n(ariable)e(parameters)h(list)g(m)o -(ust)f(ha)o(v)o(e)h(a)g(t)o(yp)q(e)h(whic)o(h)f(app)q(ears)h(in)75 -1162 y(the)e(third)g(column)f(of)g(T)m(able)g(4.)18 b(Some)13 -b(examples)f(using)i(the)h Fu(printf)d FD(function:)193 -1253 y Ft(\(printf)17 b("This)g(is)i(a)g(\045s)g(test")f("good"\))350 -1344 y Fs(=)-6 b Fn(\))19 b Fi(displays)62 b Ft(This)18 -b(is)h(a)g(good)g(test)193 1390 y(\(printf)e("char:)g('\045c')h(Dec:)g -('\04504d')f(Hex)i('\04504x'")e(#\\space)g(100)h(100\))350 -1481 y Fs(=)-6 b Fn(\))19 b Fi(displays)62 b Ft(char:)18 -b(')h(')g(Dec:)g('0100')e(Hex)h('0064')75 1619 y Fl(Note:)30 -b Fs(The)11 b(t)o(yp)q(es)h Ft(:dynamic-)o(pt)o(r)p Fs(,)c -Ft(:static-p)o(tr)f Fs(and)12 b Ft(:string)c Fs(are)j(compatible)i -(when)f(used)f(for)g(foreign)h(function)75 1668 y(parameter.)18 -b(This)c(giv)o(es)g(a)f(seman)o(tic)h(whic)o(h)g(is)g(similar)h(to)e -(the)g(one)h(of)e(C,)h(where)g Ft(void)18 b(*)12 b Fs(is)i(a)f -(compatible)i(with)f(all)75 1718 y(other)e(p)q(oin)o(ter)h(t)o(yp)q -(es.)k(Ho)o(w)o(ev)o(er,)11 b(di\013erenciatin)q(g)j(those)e(t)o(yp)q -(es)g(is)g(useful)h(for)e(con)o(v)o(erting)j(the)d(function)i(return)f -(v)n(alue)75 1768 y(to)h(a)g(prop)q(er)h(Sc)o(heme)f(t)o(yp)q(e.)75 -1840 y Fl(Note:)38 b Fs(When)15 b(a)f(function)i(has)f(a)f -Ft(:return-ty)o(pe)d Fs(whic)o(h)k(is)g Ft(:string)p -Fs(,)c Ft(:dynamic-pt)o(r)g Fs(or)j Ft(:static-pt)o(r)p -Fs(,)d(and)k(the)75 1886 y(return)e(v)n(alue)h(is)g(the)f(C)f -Ft(NULL)f Fs(p)q(oin)o(ter,)j(the)f(Sc)o(heme)g(v)n(alue)h(returned)g -(b)o(y)f(the)g(function)h(is,)g(b)o(y)f(con)o(v)o(en)o(tion,)h(equal)g -(to)75 1932 y Ft(#f)p Fs(.)j(F)m(or)c(instance,)h(the)g(GNU)f -Ft(readline)d Fs(function)k(allo)o(ws)h(line)g(editing)g -Fl(\022)-20 b(a)14 b(la)h Fs(Emacs)f(returns)f Ft(NULL)f -Fs(when)i(the)f(user)75 1977 y(has)f(t)o(yp)q(ed)h(an)f(end)g(of)g -(\014le.)17 b(The)12 b(follo)o(wing)i(lines)f(sho)o(w)f(ho)o(w)g(to)g -(mak)o(e)g(a)g(simple)h(shell-lik)o(e)i(toplev)o(el)f(using)f(FFIs.)153 -2068 y Ft(\(define-ext)o(er)o(nal)j(system)h(\(\(var)h(\(:char)f -(*\)\)\))193 2114 y(:return-t)o(yp)o(e)g(:int\))153 2205 -y(\(define-ext)o(er)o(nal)f(readline)g(\(\(prompt)h(:string\)\))193 -2251 y(:library-)o(na)o(me)f("libreadli)o(ne")193 2296 -y(:return-t)o(yp)o(e)36 b(:string\))153 2388 y(;;)19 -b(A)h(Shell-li)o(ke)c(toplevel)153 2433 y(\(do)j(\(\(l)f(\(readline)f -("?>)h("\))h(\(readline)d("?>)i("\)\)\))232 2479 y(\(\(not)g(l\)\))193 -2525 y(\(system)f(l\)\))p 75 2622 705 2 v 106 2649 a -Fr(11)139 2661 y Fq(P)o(oin)o(ters)d(de\014ned)g(with)i -Fo(:dynamic-p)o(tr)d Fq(are)i(alw)o(a)o(ys)g(unallo)q(cated)e(with)j -Fo(free)p Fq(.)27 b(Consequen)o(tly)m(,)15 b(areas)f(allo)q(cated)g -(with)75 2700 y(another)9 b(allo)q(cator)g(than)i(the)g(standard)e(one) -i(m)o(ust)f(b)q(e)h(declared)e(as)i Fo(:static-ptr)d -Fq(and)j(freed)f(b)o(y)h(hand)106 2728 y Fr(12)139 2740 -y Fq(Usage)d(of)g(mallo)q(c)f(and)h(free)g(are)g(for)g(illustration)e -(purp)q(ose)h(here.)13 b(Their)8 b(usage)g(in)g(a)h(program)d(m)o(ust)i -(b)q(e)g(a)o(v)o(oided,)f(if)i(p)q(ossible,)75 2779 y(b)q(ecause)j(it)i -(can)f(ha)o(v)o(e)g(in)o(teract)f(badly)h(with)h(the)f(w)o(a)o(y)i(the) -e(in)o(terpreter)e(manages)h(memory)g(or)i(it)g(can)f(conduct)f(to)i -Fp(cr)n(ashing)75 2819 y Fq(programs)9 b(if)i(y)o(ou)g(don't)f(tak)o(e) -h(care.)p eop -%%Page: 50 50 -50 49 bop 75 47 a FC(50)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(external-exists?)k FB(entry)t -Fu(\))1072 b FD(pro)q(cedure)75 229 y Fu(\(external-exists?)18 -b FB(entry)k(libr)n(ary)t Fu(\))932 b FD(pro)q(cedure)75 -298 y(Returns)19 b Fu(#t)f FD(if)f FB(entry)22 b FD(is)c(de\014ned)i -(as)e(an)g(external)h(sym)o(b)q(ol)d(in)i FB(libr)n(ary)s -FD(.)31 b(If)18 b FB(libr)n(ary)i FD(is)e(not)h(pro)o(vided)f(the)75 -344 y(sym)o(b)q(ol)12 b(is)h(searc)o(hed)j(in)d(the)h -Fz(STk)g FD(in)o(terpreter)i(or)d(in)h(libraries)f(that)h(it)f(uses.)19 -b(This)14 b(function)f(can)h(b)q(e)g(useful)75 389 y(to)g(de\014ne)h -(external)f(functions)g(conditionally:)193 462 y Ft(\(when)j -(\(external-e)o(xi)o(sts)o(?)f("dup2"\))252 508 y(\(define-)o(ext)o -(ern)o(al)g(dup2)i(\(\(oldfd)f(:int\))h(\(newfd)f(:int\)\))310 -554 y(:return-typ)o(e)f(:int\)\))75 724 y Fu(\(c-string->string)i -FB(str)t Fu(\))1117 b FD(pro)q(cedure)75 793 y(STk)13 -b(strings)h(are)g(more)f(general)h(than)f(C)h(strings)g(since)g(they)g -(accept)h(n)o(ull)e(c)o(haracter.)19 b Fu(c-string->string)75 -839 y FD(tak)o(es)c(an)f(area)g(of)g(c)o(haracters)i(built)e(b)o(y)g(a) -g(call)f(to)h(a)g(foreign)g(function)g(\(t)o(ypically)f(the)i(result)g -(of)f(a)g(function)75 884 y(returning)d(a)e Fu(:static-ptr)p -FD(,)g Fu(:dynamic-ptr)e FD(or)j Fu(:string)p FD(\))f(and)h(con)o(v)o -(ert)h(it)e(to)h(a)g(prop)q(er)h(Sc)o(heme)f(string.)153 -958 y Ft(\(define-ext)o(er)o(nal)16 b(sprintf)h(\(\(str)g(:string\))g -(\(format)g(:string\))f(.)k(l\))212 1003 y(:return-ty)o(pe)36 -b(:int\))153 1094 y(\(let)19 b(\(\(str)e(\(make-stri)o(ng)f(5)j -(#\\?\)\)\))193 1140 y(\(sprintf)d(str)j("\045x")f(100\))193 -1186 y(\(cons)f(str)i(\(C-string)o(->s)o(tr)o(ing)d(str\)\)\))350 -1277 y Fs(=)-6 b Fn(\))19 b Ft(\("64\\0??")d(.)j("64"\))75 -1459 y FG(6.25)56 b(Miscellaneous)75 1536 y FD(This)14 -b(section)g(lists)g(the)h(primitiv)o(es)d(de\014ned)j(in)e -Fz(STk)h FD(that)g(did)g(not)g(\014t)g(an)o(ywhere)g(else.)75 -1639 y Fu(\(eval)21 b Fm(h)p FD(expr)p Fm(i)q Fu(\))1379 -b FD(syn)o(tax)75 1689 y Fu(\(eval)21 b Fm(h)p FD(expr)p -Fm(i)i(h)p FD(en)o(vironmen)o(t)p Fm(i)o Fu(\))1100 b -FD(syn)o(tax)75 1758 y(Ev)n(aluates)20 b Fm(h)p FD(expr)p -Fm(i)g FD(in)f(the)i(giv)o(en)e(en)o(vironmen)o(t.)34 -b Fm(h)p FD(En)o(vironmen)o(t)p Fm(i)19 b FD(ma)o(y)f(b)q(e)i(omitted,) -f(in)h(whic)o(h)f(case)i(it)75 1804 y(defaults)14 b(to)g(the)g(global)e -(en)o(vironmen)o(t.)153 1877 y Ft(\(define)17 b(foo)i(\(let)f(\(\(a)g -(1\)\))h(\(lambda)e(\(\))i(a\)\)\))153 1922 y(\(foo\))450 -b Fs(=)-6 b Fn(\))19 b Ft(1)153 1968 y(\(eval)f('\(set!)f(a)j(2\))f -(\(procedu)o(re-)o(en)o(vir)o(onm)o(en)o(t)e(foo\)\))153 -2014 y(\(foo\))450 b Fs(=)-6 b Fn(\))19 b Ft(2)75 2184 -y Fu(\(version)n(\))1388 b FD(pro)q(cedure)75 2257 y(returns)15 -b(a)f(string)g(iden)o(tifying)e(the)j(curren)o(t)g(v)o(ersion)f(of)g -Fz(STk)p FD(.)75 2355 y Fu(\(machine-type)m(\))1279 b -FD(pro)q(cedure)75 2428 y(returns)15 b(a)d(string)i(iden)o(tifying)d -(the)j(kind)e(of)h(mac)o(hine)f(whic)o(h)h(is)f(running)h(the)h(in)o -(terpreter.)20 b(The)13 b(form)e(of)i(the)75 2478 y(result)i(is)e -Fu([os-name]-[os-versi)o(on]-[)o(proce)o(ssor-)o(type])o -FD(.)75 2575 y Fu(\(random)20 b FB(n)s Fu(\))1362 b FD(pro)q(cedure)75 -2648 y(returns)15 b(an)f(in)o(teger)g(in)g(the)g(range)g(0,)g -FB(n)e Fm(\000)e FD(1)j(inclusiv)o(e.)75 2745 y Fu(\(set-random-seed!) -18 b FB(se)n(e)n(d)t Fu(\))1094 b FD(pro)q(cedure)75 -2819 y(Set)14 b(the)h(random)d(seed)j(to)f(the)h(sp)q(eci\014ed)g -FB(se)n(e)n(d)5 b FD(.)18 b Fu(Seed)13 b FD(m)o(ust)f(b)q(e)j(an)f(in)o -(teger)g(whic)o(h)g(\014ts)g(in)g(a)f(C)h Fu(long)21 -b(int)p FD(.)p eop -%%Page: 51 51 -51 50 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(51)p 75 64 1763 2 v 75 179 a Fu(\(eval-string)19 b -FB(string)j(envir)n(onment)t Fu(\))925 b FD(pro)q(cedure)75 -248 y(Ev)n(aluates)18 b(the)h(con)o(ten)o(ts)h(of)e(the)h(giv)o(en)f -FB(string)k FD(in)c(the)h(giv)o(en)f FB(envir)n(onment)k -FD(and)d(returns)h(its)e(result.)33 b(If)75 294 y FB(envir)n(onment)18 -b FD(is)c(omitted)f(it)h(defaults)g(to)g(the)g(global)f(en)o(vironmen)o -(t.)k(If)d(ev)n(aluation)e(leads)j(to)e(an)h(error,)h(the)75 -340 y(result)g(of)e Fu(eval-string)e FD(is)j(unde\014ned.)153 -419 y Ft(\(define)j(x)j(1\))153 465 y(\(eval-strin)o(g)c("\(+)j(x)g -(1\)"\))350 510 y Fs(=)-6 b Fn(\))19 b Ft(2)153 556 y(\(eval-strin)o(g) -d("x")j(\(let)f(\(\(x)g(2\)\))h(\(the-envi)o(ron)o(me)o(nt\))o(\)\))350 -602 y Fs(=)-6 b Fn(\))19 b Ft(2)75 787 y Fu(\(read-from-string)f -Fm(h)p FD(string)p Fm(i)q Fu(\))1033 b FD(pro)q(cedure)75 -856 y(P)o(erforms)9 b(a)h(read)g(from)f(the)h(giv)o(en)g -FB(string)s FD(.)16 b(If)10 b FB(string)j FD(is)d(the)g(empt)o(y)f -(string,)h(an)g(end)g(of)g(\014le)g(ob)r(ject)g(is)g(returned.)75 -902 y(If)k(an)f(error)i(o)q(ccurs)g(during)f(string)g(reading,)f(the)i -(result)f(of)g Fu(read-from-strin)o(g)d FD(is)j(unde\014ned.)153 -981 y Ft(\(read-from-)o(st)o(rin)o(g)j("123)h(456"\))350 -1027 y Fs(=)-6 b Fn(\))19 b Ft(123)153 1073 y(\(read-from-)o(st)o(rin)o -(g)e(""\))350 1118 y Fs(=)-6 b Fn(\))19 b Ft(an)g(eof)f(object)75 -1304 y Fu(\(dump)j FB(string)t Fu(\))1323 b FD(pro)q(cedure)75 -1377 y Fu(Dump)14 b FD(grabs)g(the)h(curren)o(t)h(con)o(tin)o(uation)28 -b(and)15 b(creates)h(an)e(image)f(of)h(the)h(curren)o(t)h -Fz(STk)e FD(in)o(terpreter)j(in)d(the)75 1427 y(\014le)f(whose)g(name)e -(is)h FB(string)519 1412 y Fy(13)554 1427 y FD(.)17 b(This)c(image)d -(can)j(b)q(e)g(used)h(later)e(to)h(restart)h(the)f(in)o(terpreter)h -(from)d(the)i(sa)o(v)o(ed)75 1477 y(state.)19 b(See)c(the)f -Fz(STk)g FD(man)f(page)g(ab)q(out)h(the)h Fu(-image)d -FD(option)h(for)h(more)f(details.)75 1527 y Fl(Note:)32 -b Fs(Image)14 b(creation)g(cannot)g(b)q(e)f(done)h(if)f(Tk)g(is)g -(initiali)q(zed)q(.)75 1633 y Fu(\(trace-var)20 b FB(symb)n(ol)h(thunk) -t Fu(\))1078 b FD(pro)q(cedure)75 1702 y Fu(Trace-var)11 -b FD(call)i(the)h(giv)o(en)f FB(thunk)18 b FD(when)c(the)g(v)n(alue)f -(of)f(the)i(v)n(ariable)e(denoted)j(b)o(y)e FB(symb)n(ol)k -FD(is)c(c)o(hanged.)153 1782 y Ft(\(define)k(x)j(1\))153 -1827 y(\(define)d(y)j(0\))153 1873 y(\(trace-var)c('x)j(\(lambda)e -(\(\))i(\(set!)e(y)j(1\)\)\))153 1919 y(\(set!)e(x)h(2\))153 -1964 y(\(cons)f(x)h(y\))350 2010 y Fs(=)-6 b Fn(\))19 -b Ft(\(2)g(.)g(1\))75 2135 y Fl(Note:)32 b Fs(Sev)o(eral)14 -b(traces)f(can)g(b)q(e)g(asso)q(ciated)h(with)g(a)e(single)j(sym)o(b)q -(ol.)j(They)13 b(are)g(executed)g(in)h(rev)o(erse)f(order)g(to)f(their) -75 2181 y(de\014nition.)20 b(F)m(or)12 b(instance,)j(the)e(execution)i -(of)153 2260 y Ft(\(begin)193 2306 y(\(trace-va)o(r)h('z)j(\(lambda)e -(\(\))i(\(display)e("One"\)\)\))193 2351 y(\(trace-va)o(r)f('z)j -(\(lambda)e(\(\))i(\(display)e("Two"\)\)\))193 2397 y(\(set!)g(z)j -(10\)\))75 2526 y Fs(will)15 b(displa)o(y)g(the)e(string)h -Ft("Two")d Fs(b)q(efore)i(the)g(string)i Ft("One")10 -b Fs(on)k(the)f(curren)o(t)g(output)h(p)q(ort.)75 2632 -y Fu(\(untrace-var)19 b FB(symb)n(ol)t Fu(\))1155 b FD(pro)q(cedure)75 -2706 y(Deletes)15 b(all)e(the)h(traces)h(asso)q(ciated)g(to)f(the)g(v)n -(ariable)f(denoted)i(b)o(y)e FB(symb)n(ol)5 b FD(.)p -75 2741 705 2 v 106 2768 a Fr(13)139 2779 y Fq(Image)10 -b(creation)g(is)i(not)g(y)o(et)g(implemen)n(ted)d(on)j(all)g(systems.)k -(The)c(curren)o(t)e(v)o(ersion)h(\(3.99\))f(allo)o(ws)i(image)f -(dumping)f(only)75 2819 y(on)h(some)f(platforms:)j(SunOs)e(4.1.x,)f -(Lin)o(ux)h(1,)g(F)m(reeBsd)p eop -%%Page: 52 52 -52 51 bop 75 47 a FC(52)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Fu(\(error)21 b FB(string)g Fx(str)q(ing)466 -185 y Fy(1)507 179 y Fx(obj)562 185 y Fy(2)602 179 y -Fx(:)7 b(:)g(:)e Fu(\))980 b FD(pro)q(cedure)75 252 y -Fu(error)14 b FD(prin)o(ts)h(the)h FB(obj)6 b FD(s)15 -b(according)g(to)g(the)g(sp)q(eci\014cation)h(giv)o(en)e(in)h -FB(string)j FD(on)c(the)i(curren)o(t)g(error)g(p)q(ort)f(\(or)75 -302 y(in)e(an)g(error)h(windo)o(w)f(if)g(Tk)g(is)g(initialized\).)k -(The)d(sp)q(eci\014cation)g(string)f(follo)o(ws)f(the)i(\\tilde)f(con)o -(v)o(en)o(tions")g(of)75 352 y Fu(format)p FD(\(see)h(6.10\).)j(Once)e -(the)g(message)e(is)h(prin)o(ted,)g(execution)g(returns)i(to)d(toplev)o -(el.)75 445 y Fu(\(gc)o(\))1497 b FD(pro)q(cedure)75 -518 y(Runs)14 b(the)g(garbage)g(collector.)k(See)d(6.18)e(for)g(the)i -(signals)e(asso)q(ciated)i(to)e(garbage)h(collection.)75 -612 y Fu(\(gc-stats)n(\))1366 b FD(pro)q(cedure)75 685 -y(Pro)o(vides)15 b(some)e(statistics)i(ab)q(out)f(curren)o(t)i(memory) -11 b(usage.)19 b(This)c(pro)q(cedure)h(is)e(primarily)d(for)j -(debugging)75 735 y(the)g Fz(STk)h FD(in)o(terpreter,)g(hence)g(its)f -(w)o(eird)g(prin)o(ting)f(format.)75 828 y Fu(\(expand-heap)19 -b FB(n)s Fu(\))1253 b FD(pro)q(cedure)75 901 y(Expand)14 -b(the)g(heap)f(so)h(that)g(it)f(will)f(con)o(tains)h(at)g(least)h -FB(n)j FD(cells.)h(Normally)m(,)10 b(the)k(heap)g(automatically)d(gro)o -(ws)75 951 y(when)17 b(more)f(memory)e(is)j(needed.)28 -b(Ho)o(w)o(ev)o(er,)17 b(using)g(only)f(automatic)f(heap)i(gro)o(wing)f -(is)g(sometimes)f(v)o(ery)75 1001 y(p)q(enalizing.)20 -b(This)15 b(is)f(particularly)g(true)i(for)e(programs)g(whic)o(h)g -(uses)i(a)f(lot)f(of)g(temp)q(orary)g(data)g(\(whic)o(h)h(are)75 -1051 y(not)k(p)q(oin)o(ted)g(b)o(y)f(an)o(y)h(a)f(v)n(ariable\))g(and)h -(a)g(small)d(amoun)o(t)h(of)i(global)e(data.)33 b(In)19 -b(this)g(case,)h(the)g(garbage)75 1101 y(collector)15 -b(will)d(b)q(e)j(often)g(called)f(and)g(the)h(heap)f(will)f(not)i(b)q -(e)f(automatically)e(expanded)j(\(since)g(most)e(of)h(the)75 -1151 y(consumed)e(heap)g(will)f(b)q(e)h(reclaimed)f(b)o(y)h(the)h -(GC\).)e(This)h(could)g(b)q(e)h(anno)o(ying)d(sp)q(ecially)i(for)g -(program)e(where)75 1200 y(resp)q(onse)19 b(time)d(is)i(critical.)28 -b(Using)17 b Fu(expand-heap)e FD(p)q(ermits)i(to)h(enlarge)f(the)h -(heap)g(size)g(\(whic)o(h)g(is)f(set)i(to)75 1250 y(20000)13 -b(cells)h(b)o(y)f(default\),)h(to)f(a)o(v)o(oid)g(those)i(con)o(tin)o -(ual)d(calls)i(to)g(the)g(GC.)75 1343 y Fu(\(get-internal-inf)o(o)m(\)) -1170 b FD(pro)q(cedure)75 1417 y(Returns)15 b(a)e(7-length)h(v)o(ector) -g(whic)o(h)g(con)o(tains)g(the)g(follo)o(wing)e(informations:)137 -1491 y(0)21 b(total)13 b(cpu)h(used)h(in)f(milli)o(-seconds)137 -1570 y(1)21 b(n)o(um)o(b)q(er)13 b(of)g(cells)h(curren)o(tly)h(in)f -(use.)137 1649 y(2)21 b(total)13 b(n)o(um)o(b)q(er)g(of)g(allo)q(cated) -h(cells)137 1727 y(3)21 b(n)o(um)o(b)q(er)13 b(of)g(cells)h(used)h -(since)g(the)f(last)g(call)f(to)h Fu(get-internal-info)137 -1806 y FD(4)21 b(n)o(um)o(b)q(er)13 b(of)g(gc)h(runs)137 -1885 y(5)21 b(total)13 b(time)f(used)j(in)f(the)g(gc)137 -1964 y(6)21 b(a)13 b(b)q(o)q(olean)h(indicating)f(if)g(Tk)g(is)h -(initialized)75 2081 y Fu(\(sort)21 b FB(obj)h(pr)n(e)n(dic)n(ate)s -Fu(\))1194 b FD(pro)q(cedure)75 2151 y FB(Obj)18 b FD(m)o(ust)11 -b(b)q(e)i(a)e(list)h(or)g(a)g(v)o(ector.)18 b Fu(Sort)11 -b FD(returns)j(a)e(cop)o(y)g(of)f FB(obj)19 b FD(sorted)13 -b(according)f(to)g FB(pr)n(e)n(dic)n(ate)r FD(.)18 b -FB(Pr)n(e)n(dic)n(ate)75 2196 y FD(m)o(ust)13 b(b)q(e)i(a)f(pro)q -(cedure)j(whic)o(h)d(tak)o(es)g(t)o(w)o(o)g(argumen)o(ts)g(and)g -(returns)i(a)e(true)h(v)n(alue)f(if)f(the)i(\014rst)g(argumen)o(t)f(is) -75 2242 y(strictly)g(\\b)q(efore")g(the)h(second.)153 -2312 y Ft(\(sort)j('\(1)h(2)g(-4)g(12)g(9)g(-1)g(2)g(3\))g(<\))703 -2358 y Fs(=)-6 b Fn(\))19 b Ft(\(-4)g(-1)f(1)i(2)f(2)g(3)g(9)h(12\))153 -2404 y(\(sort)e(#\("one")f("two")h("three")f("four"\))271 -2449 y(\(lambda)g(\(x)i(y\))g(\(>)g(\(string-)o(len)o(gth)d(x\))j -(\(string-l)o(en)o(gth)d(y\)\)\)\))703 2495 y Fs(=)-6 -b Fn(\))19 b Ft(#\("three")d("four")i("one")f("two"\))89 -2658 y Fu(\(uncode)j FB(form)s Fu(\))1285 b FD(pro)q(cedure)75 -2728 y(When)18 b Fz(STk)h FD(ev)n(aluates)f(an)g(expression)h(it)f -(enco)q(des)i(it)d(so)h(that)h(further)g(ev)n(aluations)e(of)g(this)h -(expression)75 2773 y(will)13 b(b)q(e)i(more)e(e\016cien)o(t.)20 -b(Since)15 b(enco)q(ded)h(forms)d(are)i(generally)f(di\016cult)g(to)g -(read,)h Fu(uncode)e FD(can)h(b)q(e)h(used)h(to)75 2819 -y(\(re-\)obtain)e(the)g(original)e(form.)p eop -%%Page: 53 53 -53 52 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(53)p 75 64 1763 2 v 153 179 a Ft(\(define)17 b(\(foo)h(a)i(b\))212 -224 y(\(let)e(\(\(x)h(a\))g(\(y)g(\(+)f(b)i(1\)\)\))e(\(cons)f(x)j -(y\)\)\))153 316 y(\(procedure-)o(bo)o(dy)c(foo\))703 -361 y Fs(=)-6 b Fn(\))19 b Ft(\(lambda)e(\(a)i(b\))605 -407 y(\(let)f(\(\(x)g(a\))h(\(y)g(\(+)g(b)g(1\)\)\))f(\(cons)g(x)h -(y\)\)\))153 453 y(\(foo)g(1)g(2\))372 b Fs(=)-6 b Fn(\))19 -b Ft(\(1)g(.)g(3\))153 498 y(\(procedure-)o(bo)o(dy)d(foo\))703 -544 y Fs(=)-6 b Fn(\))39 b Ft(\(lambda)17 b(\(a)h(b\))605 -590 y(\(#let)f(\(x)i(y\))722 635 y(\(#)742 -681 y(\(#)j(#)e(1\)\))644 -727 y(\(#)i(#)958 -772 y(#\)\)\))153 864 y(\(uncode)e(\(procedure-)o -(bo)o(dy)f(foo\)\))703 909 y Fs(=)-6 b Fn(\))19 b Ft(\(lambda)e(\(a)i -(b\))624 955 y(\(let)f(\(\(x)h(a\))g(\(y)f(\(+)h(b)g(1\)\)\))g(\(cons)e -(x)i(y\)\)\))75 1084 y Fl(Note:)35 b Fs(When)15 b(a)f(macro)g(has)g(b)q -(een)h(directly)g(expanded)h(in)o(to)f(the)f(macro)g(call)h(co)q(de,)f -(it)g(is)g(not)h(p)q(ossible)h(to)d(retriev)o(e)75 1133 -y(the)g(original)j(macro)d(call.)18 b(Set)c Ft(*debug*)c -Fs(to)j Ft(#t)f Fs(to)h(a)o(v)o(oid)h(macro)f(expansion)j(in-lining.)75 -1239 y Fu(\(time)21 b Fm(h)p FD(expr)p Fm(i)q Fu(\))1387 -b FD(macro)75 1312 y(Ev)n(aluates)12 b(the)h(expression)h -Fm(h)p FD(expr)p Fm(i)f FD(in)f(the)h(curren)o(t)h(en)o(vironmen)o(t.)i -(Prin)o(ts)d(the)g(elapsed)g(CPU)g(time)e(and)h(the)75 -1362 y(n)o(um)o(b)q(er)h(of)g(conses)j(used)f(b)q(efore)f(returning)h -(the)f(result)h(of)e(this)h(ev)n(aluation.)75 1467 y -Fu(\(apropos)20 b FB(symb)n(ol)t Fu(\))1242 b FD(pro)q(cedure)75 -1536 y Fu(Apropos)15 b FD(returns)j(a)e(list)g(of)f(sym)o(b)q(ol)g -(whose)i(prin)o(t)f(name)f(con)o(tains)h(the)h(c)o(haracters)h(of)e -FB(symb)n(ol)t FD(.)25 b(Sym)o(b)q(ols)75 1582 y(are)14 -b(searc)o(hed)i(for)d(in)h(the)g(curren)o(t)i(en)o(vironmen)o(t.)153 -1661 y Ft(\(apropos)h('cadd\))350 1706 y Fs(=)-6 b Fn(\))19 -b Ft(\(caddar)e(caddr)h(cadddr\))75 1890 y Fu(\(inspect)i -FB(obj)6 b Fu(\))1307 b FD(pro)q(cedure)75 1964 y Fu(Inspect)15 -b FD(p)q(ermits)g(to)h(graphically)f(insp)q(ect)i(an)f(ob)r(ject.)25 -b(The)17 b(\014rst)g(call)e(of)h(this)g(pro)q(cedure)i(creates)g(a)e -(top)75 2013 y(lev)o(el)g(windo)o(w)g(con)o(taining)g(the)h(ob)r(ject)h -(to)e(insp)q(ect)i(and)f(its)f(curren)o(t)i(v)n(alue.)26 -b(If)17 b(the)g(insp)q(ector)h(windo)o(w)e(is)75 2063 -y(already)g(on)g(screen,)j FB(obj)j FD(will)15 b(b)q(e)i(app)q(ended)h -(to)e(the)h(list)f(of)g(insp)q(ected)i(ob)r(jects.)27 -b(The)17 b(insp)q(ector)g(windo)o(w)75 2113 y(con)o(tains)i(men)o(us)f -(whic)o(h)g(p)q(ermit)g(to)g(call)g(the)i(view)o(er)f(or)f(detailer)h -(on)g(eac)o(h)g(insp)q(ected)h(ob)r(ject.)33 b(See)20 -b(the)75 2163 y(on-line)13 b(do)q(cumen)o(tation)g(for)g(further)i -(details.)j(A)c(view)g(of)f(the)h(general)g(insp)q(ector)h(is)f(giv)o -(en)g(in)f(\014gure)h(1.)75 2213 y Fl(Note:)32 b Fs(Tk)13 -b(m)o(ust)g(b)q(e)h(initialize)q(d)i(to)d(use)g Ft(inspect)p -Fs(.)75 2318 y Fu(\(view)21 b FB(obj)6 b Fu(\))1372 b -FD(pro)q(cedure)75 2391 y Fu(View)14 b FD(p)q(ermits)g(to)h(obtain)f(a) -h(graphical)f(represen)o(tation)i(of)e(an)h Fz(STk)g -FD(ob)r(ject.)22 b(The)15 b(t)o(yp)q(e)h(of)e(represen)o(tation)75 -2441 y(dep)q(ends)21 b(on)f(the)g(t)o(yp)q(e)g(of)g(the)g(view)o(ed)g -(ob)r(ject.)36 b(Here)21 b(again,)f(men)o(us)f(are)h(pro)o(vided)g(to)f -(switc)o(h)h(to)g(the)75 2491 y(insp)q(ector)d(or)f(to)g(the)h -(detailer.)24 b(See)17 b(the)g(on-line)e(do)q(cumen)o(tation)g(for)h -(more)f(details.)24 b(A)16 b(snapshot)g(of)g(the)75 2541 -y(view)o(er)e(is)g(giv)o(en)f(in)h(\014gure)g(2.)75 2591 -y Fl(Note:)32 b Fs(Tk)13 b(m)o(ust)g(b)q(e)h(initialize)q(d)i(to)d(use) -g Ft(view)p Fs(.)75 2696 y Fu(\(detail)20 b FB(obj)6 -b Fu(\))1329 b FD(pro)q(cedure)75 2769 y Fu(detail)9 -b FD(p)q(ermits)h(to)h(displa)o(y)e(the)j(\014elds)f(of)f(a)g(comp)q -(osite)g(Sc)o(heme)g(ob)r(ject.)18 b(The)11 b(t)o(yp)q(e)g(of)f -(detailer)g(dep)q(ends)j(on)75 2819 y(the)i(t)o(yp)q(e)f(of)g(the)g -(comp)q(osite)g(ob)r(ject)g(detailed.)19 b(Here)c(again,)e(men)o(us)g -(are)h(pro)o(vided)g(to)g(go)g(to)g(the)g(insp)q(ector)p +41 40 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(41)p 37 64 1838 2 v 168 190 a Fv(\(add-signal-handler)o(!)19 +b(|SIGHADGC|)h(handler1\))168 240 y(\(add-signal-handler)o(!)f +(|SIGHADGC|)h(handler2\))168 290 y(\(gc\))168 340 y(x\))343 +390 y Fu(=)-7 b Fp(\))21 b Fv(\(2\))37 613 y Fw(\(get-signal-handlers)n +(\))1140 b FF(pro)q(cedure)37 669 y Fw(\(get-signal-handlers)22 +b FD(sig)t Fw(\))1058 b FF(pro)q(cedure)37 750 y(Returns)18 +b(the)f(handlers,)h(or)f(the)g(list)h(of)f(handlers,)h(asso)q(ciated)f +(to)g(the)g(signal)h FD(sig)s FF(.)26 b(If)17 b FD(sig)k +FF(is)c(omitted,)37 807 y Fw(get-signal-handlers)c FF(returns)i(a)g(v)o +(ector)f(of)h(all)h(the)g(signal)g(handlers)g(curren)o(tly)g(in)g +(e\013ect.)37 934 y FI(6.19)56 b(Hash)19 b(tables)37 +1021 y FF(A)g(hash)g(table)g(consists)f(of)g(zero)h(or)f(more)g(en)o +(tries,)h(eac)o(h)g(consisting)g(of)f(a)g(k)o(ey)h(and)f(a)h(v)m(alue.) +31 b(Giv)o(en)37 1077 y(the)18 b(k)o(ey)f(for)g(an)h(en)o(try)l(,)f +(the)h(hashing)g(function)g(can)g(v)o(ery)f(quic)o(kly)i(lo)q(cate)f +(the)f(en)o(try)l(,)h(and)f(hence)i(the)37 1134 y(corresp)q(onding)e(v) +m(alue.)23 b(There)16 b(ma)o(y)g(b)q(e)g(at)f(most)g(one)h(en)o(try)g +(in)g(a)g(hash)g(table)g(with)g(a)g(particular)g(k)o(ey)l(,)37 +1190 y(but)g(man)o(y)f(en)o(tries)g(ma)o(y)g(ha)o(v)o(e)f(the)i(same)f +(v)m(alue.)37 1247 y FB(STk)g FF(hash)g(tables)h(gro)o(w)e(gracefully)i +(as)e(the)h(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(increases,)h(so)e(that) +h(there)g(are)g(alw)o(a)o(ys)37 1304 y(less)g(than)g(three)f(en)o +(tries)h(p)q(er)g(hash)f(buc)o(k)o(et,)g(on)h(a)o(v)o(erage.)j(This)d +(allo)o(ws)g(for)e(fast)h(lo)q(okups)h(regardless)f(of)37 +1360 y(the)i(n)o(um)o(b)q(er)f(of)g(en)o(tries)h(in)g(a)f(table.)37 +1453 y Fn(Note:)37 b Fu(Hash)14 b(table)g(manipulation)d(pro)q(cedures) +16 b(are)e(built)f(up)q(on)h(the)h(e\016cien)o(t)f(Tcl)g(hash)g(table)g +(pac)o(k)n(age.)37 1572 y Fw(\(make-hash-table)n(\))1236 +b FF(pro)q(cedure)37 1628 y Fw(\(make-hash-table)22 b +FD(c)n(omp)n(arison)s Fw(\))985 b FF(pro)q(cedure)37 +1684 y Fw(\(make-hash-table)22 b FD(c)n(omp)n(arison)i(hash)s +Fw(\))873 b FF(pro)q(cedure)37 1765 y Fw(Make-hash-table)11 +b FF(admits)h(three)h(di\013eren)o(t)g(forms.)18 b(The)12 +b(most)g(general)h(form)f(admit)g(t)o(w)o(o)f(argumen)o(ts.)37 +1821 y(The)20 b(\014rst)e(argumen)o(t)g(is)h(a)g(comparison)g(function) +h(whic)o(h)f(determine)h(ho)o(w)e(k)o(eys)h(are)g(compared;)h(the)37 +1878 y(second)h(argumen)o(t)d(is)i(a)g(function)g(whic)o(h)h(computes)e +(a)g(hash)h(co)q(de)g(for)f(an)h(ob)s(ject)f(and)g(returns)h(the)37 +1934 y(hash)c(co)q(de)g(as)f(a)g(non)h(negativ)o(e)f(in)o(teger.)21 +b(Ob)s(jets)15 b(with)g(the)h(same)f(hash)g(co)q(de)h(are)f(stored)g +(in)i(an)e(A-list)37 1991 y(registered)h(in)g(the)f(buc)o(k)o(et)h +(corresp)q(onding)g(to)e(the)i(k)o(ey)l(.)37 2048 y(If)g(omitted,)106 +2144 y Fo(\017)22 b Fw(hash)15 b FF(defaults)g(to)g(the)g +Fw(hash-table-hash)e FF(pro)q(cedure.)106 2240 y Fo(\017)22 +b Fw(comparison)38 b FF(defaults)15 b(to)g(the)g Fw(eq?)g +FF(pro)q(cedure)37 2329 y(Consequen)o(tly)l(,)125 2419 +y Fv(\(define)20 b(h)i(\(make-hash-tabl)o(e\)\))37 2558 +y FF(is)16 b(equiv)m(alen)o(t)h(to)125 2648 y Fv(\(define)j(h)i +(\(make-hash-tabl)o(e)d(eq?)i(hash-table-hash\)\))37 +2787 y FF(Another)16 b(in)o(teresting)g(example)g(is)p eop +%%Page: 42 42 +42 41 bop 37 45 a FE(42)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(define)j(h)i(\(make-hash-tabl)o(e)d +(string-ci=?)h(string-length\)\))37 327 y FF(whic)o(h)f(de\014nes)f(a)f +(new)g(hash)h(table)f(whic)o(h)i(uses)e Fw(string-ci=?)25 +b FF(for)17 b(comparing)g(k)o(eys.)26 b(Here,)18 b(w)o(e)f(use)37 +377 y(the)j(string-length)f(as)g(a)g(\(v)o(ery)f(simple\))i(hashing)g +(function.)32 b(Of)19 b(course,)h(a)e(function)i(whic)o(h)g(giv)o(es)f +(a)37 426 y(k)o(ey)f(dep)q(ending)i(of)d(the)g(c)o(haracters)g(comp)q +(osing)h(the)g(string)f(giv)o(es)h(a)f(b)q(etter)g(repartition)h(and)g +(should)37 476 y(probably)e(enhance)f(p)q(erformances.)20 +b(F)l(or)14 b(instance,)h(the)g(follo)o(wing)g(call)h(to)e +Fw(make-hash-table)e FF(should)37 526 y(return)k(a)f(more)f(e\016cien)o +(t,)i(ev)o(en)f(if)h(not)f(p)q(erfect,)g(hash)g(table:)125 +613 y Fv(\(make-hash-table)212 662 y(string-ci=?)212 +712 y(\(lambda)20 b(\(s\))255 762 y(\(let)h(\(\(len)g(\(string-length)e +(s\)\)\))299 812 y(\(do)i(\(\(h)g(0\))44 b(\(i)21 b(0)g(\(+)h(i)f +(1\)\)\))386 862 y(\(\(=)g(i)h(len\))f(h\))343 911 y(\(set!)f(h)i(\(+)f +(h)h(\(char->integer)669 961 y(\(char-downcase)d(\(string-ref)h(s)h +(i\)\)\)\)\)\)\)\)\))37 1104 y Fn(Note:)49 b Fu(Hash)17 +b(tables)g(with)f(a)h(comparison)e(function)i(equal)f(to)h +Fv(eq?)f Fu(or)h Fv(string=?)25 b Fu(are)17 b(handled)g(in)f(an)h(more) +37 1161 y(e\016cien)o(t)c(w)o(a)o(y)f(\(in)g(fact,)g(they)h(don't)e +(use)i(the)g Fv(hash-table-hash)c Fu(fucn)o(tion)j(to)g(sp)q(eed)i(up)e +(hash)h(table)f(retriev)n(als\).)37 1334 y Fw(\(hash-table?)23 +b FD(obj)7 b Fw(\))1242 b FF(pro)q(cedure)37 1414 y(Returns)16 +b Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 b(a)g(hash)g(table,)h(returns)f +Fw(#f)g FF(otherwise.)37 1530 y Fw(\(hash-table-hash)22 +b FD(obj)7 b Fw(\))1147 b FF(pro)q(cedure)37 1610 y Fw(hash-table-hash) +16 b FF(computes)i(a)g(hash)g(co)q(de)h(for)e(an)h(ob)s(ject)f(and)h +(returns)g(the)g(hash)g(co)q(de)h(as)e(a)h(non)37 1667 +y(negativ)o(e)e(in)o(teger.)k(A)15 b(prop)q(ert)o(y)g(of)g +Fw(hash-table-hash)e FF(is)j(that)151 1760 y Fw(\(equal?)47 +b(x)24 b(y\))9 b FF(implies)k Fw(\(equal?)46 b(\(hash-table-hash)22 +b(x\))i(\(hash-table-hash)d(y\))37 1853 y FF(as)15 b(the)h(the)f +(Common)f(Lisp)j Fw(sxhash)d FF(function)i(from)e(whic)o(h)j(this)e +(pro)q(cedure)h(is)g(mo)q(deled.)37 1969 y Fw(\(hash-table-put!)22 +b FD(hash)i(key)g(value)s Fw(\))908 b FF(pro)q(cedure)37 +2049 y Fw(Hash-table-put!)14 b FF(en)o(ters)h(an)h(asso)q(ciation)g(b)q +(et)o(w)o(een)f FD(key)20 b FF(and)15 b FD(value)k FF(in)e(the)e +FD(hash)20 b FF(table.)h(The)16 b(v)m(alue)37 2106 y(returned)g(b)o(y)f +Fw(hash-table-put!)e FF(is)j(unde\014ned.)37 2222 y Fw +(\(hash-table-get)22 b FD(hash)i(key)t Fw(\))1056 b FF(pro)q(cedure)37 +2279 y Fw(\(hash-table-get)22 b FD(hash)i(key)g(default)t +Fw(\))900 b FF(pro)q(cedure)37 2352 y Fw(Hash-table-get)16 +b FF(returns)h(the)g(v)m(alue)i(asso)q(ciated)e(with)h +FD(key)j FF(in)d(the)g(giv)o(en)f FD(hash)k FF(table.)27 +b(If)18 b(no)f(v)m(alue)37 2402 y(has)f(b)q(een)h(asso)q(ciated)f(with) +f FD(key)20 b FF(in)c FD(hash)t FF(,)f(the)h(sp)q(eci\014ed)i +FD(default)i FF(is)c(returned)g(if)g(giv)o(en;)g(otherwise)g(an)37 +2452 y(error)f(is)h(raised.)125 2538 y Fv(\(define)k(h1)h +(\(make-hash-table\)\))125 2588 y(\(hash-table-put!)d(h1)k('foo)e +(\(list)h(1)h(2)f(3\)\))125 2638 y(\(hash-table-get)40 +b(h1)22 b('foo\))343 2688 y Fu(=)-7 b Fp(\))21 b Fv(\(1)h(2)f(3\))125 +2738 y(\(hash-table-get)40 b(h1)22 b('bar)e('absent\))343 +2787 y Fu(=)-7 b Fp(\))21 b Fv(absent)p eop +%%Page: 43 43 +43 42 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(43)p 37 64 1838 2 v 125 190 a Fv(\(hash-table-get)40 +b(h1)22 b('bar\))343 240 y Fu(=)-7 b Fp(\))21 b Fi(error)125 +290 y Fv(\(hash-table-put!)d(h1)k('\(a)f(b)g(c\))h('present\))125 +340 y(\(hash-table-get)40 b(h1)22 b('\(a)f(b)g(c\))h('absent\))343 +390 y Fu(=)-7 b Fp(\))21 b Fv('absent)125 489 y(\(define)f(h2)h +(\(make-hash-table)e(equal?\)\))125 539 y(\(hash-table-put!)f(h2)k +('\(a)f(b)g(c\))h('present\))125 589 y(\(hash-table-get)40 +b(h2)22 b('\(a)f(b)g(c\)\))343 639 y Fu(=)-7 b Fp(\))21 +b Fv('present)37 842 y Fw(\(hash-table-remove!)h FD(hash)i(key)t +Fw(\))960 b FF(pro)q(cedure)37 922 y FD(hash)24 b FF(m)o(ust)19 +b(b)q(e)i(a)e(hash)h(table)g(con)o(taining)g(an)g(en)o(try)f(for)h +FD(key)s FF(.)34 b Fw(Hash-table-remove!)17 b FF(deletes)k(the)37 +979 y(en)o(try)15 b(for)g FD(key)k FF(in)d FD(hash)t +FF(,)f(if)g(it)h(exists.)k(Result)c(of)f Fw(Hash-table-remove!)j +FF(is)d(unsp)q(eci\014ed.)125 1078 y Fv(\(define)20 b(h)i +(\(make-hash-tabl)o(e\)\))125 1127 y(\(hash-table-put!)c(h)k('foo)f +(\(list)f(1)i(2)g(3\)\))125 1177 y(\(hash-table-get)c(h)k('foo\))343 +1227 y Fu(=)-7 b Fp(\))21 b Fv(\(1)h(2)f(3\))125 1277 +y(\(hash-table-remo)o(ve!)e(h)i('foo\))125 1327 y(\(hash-table-get)d(h) +k('foo)f('absent\))343 1377 y Fu(=)-7 b Fp(\))21 b Fv(absent)37 +1592 y Fw(\(hash-table-for-each)h FD(hash)i(pr)n(o)n(c)s +Fw(\))919 b FF(pro)q(cedure)37 1672 y FD(Pr)n(o)n(c)19 +b FF(m)o(ust)d(b)q(e)i(a)e(pro)q(cedure)i(taking)f(t)o(w)o(o)e(argumen) +o(ts.)24 b Fw(Hash-table-for-each)14 b FF(calls)k FD(pr)n(o)n(c)h +FF(on)e(eac)o(h)37 1729 y(k)o(ey/v)m(alue)e(asso)q(ciation)e(in)h +FD(hash)t FF(,)f(with)h(the)f(k)o(ey)g(as)g(the)g(\014rst)g(argumen)o +(t)g(and)g(the)g(v)m(alue)i(as)e(the)g(second.)37 1785 +y(The)j(v)m(alue)g(returned)g(b)o(y)f Fw(hash-table-for-each)e +FF(is)i(unde\014ned.)37 1870 y Fn(Note:)37 b Fu(The)14 +b(order)h(of)e(application)g(of)g Fn(pr)n(o)n(c)j Fu(is)e(unsp)q +(eci\014ed.)125 1957 y Fv(\(let)21 b(\(\(h)64 b(\(make-hash-table\)\)) +255 2007 y(\(sum)21 b(0\)\))168 2057 y(\(hash-table-put!)e(h)i('foo)g +(2\))168 2107 y(\(hash-table-put!)e(h)i('bar)g(3\))168 +2156 y(\(hash-table-for-eac)o(h)e(h)i(\(lambda)g(\(key)g(value\))713 +2206 y(\(set!)g(sum)g(\(+)g(sum)h(value\)\)\)\))168 2256 +y(sum\))343 2306 y Fu(=)-7 b Fp(\))21 b Fv(5)37 2509 +y Fw(\(hash-table-map)h FD(hash)i(pr)n(o)n(c)s Fw(\))1039 +b FF(pro)q(cedure)37 2589 y FD(Pr)n(o)n(c)19 b FF(m)o(ust)d(b)q(e)i(a)e +(pro)q(cedure)i(taking)e(t)o(w)o(o)g(argumen)o(ts.)23 +b Fw(Hash-table-map)15 b FF(calls)j FD(pr)n(o)n(c)h FF(on)e(eac)o(h)f +(en)o(try)37 2646 y(in)h FD(hash)t FF(,)e(with)h(the)g(en)o(try's)f(k)o +(ey)h(as)f(the)h(\014rst)f(argumen)o(t)g(and)h(the)g(en)o(try's)f(v)m +(alue)i(as)e(the)h(second.)22 b(The)37 2702 y(result)16 +b(of)f Fw(hash-table-map)e FF(is)j(a)f(list)h(of)f(the)g(v)m(alues)h +(returned)g(b)o(y)f FD(pr)n(o)n(c)r FF(,)g(in)h(unsp)q(eci\014ed)i +(order.)37 2787 y Fn(Note:)37 b Fu(The)14 b(order)h(of)e(application)g +(of)g Fn(pr)n(o)n(c)j Fu(is)e(unsp)q(eci\014ed.)p eop +%%Page: 44 44 +44 43 bop 37 45 a FE(44)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(let)k(\(\(h)g(\(make-hash-table)o(\)\)\)) +168 240 y(\(dotimes)f(\(i)i(5\))212 290 y(\(hash-table-put!)c(h)k(i)f +(\(number->string)e(i\)\)\))168 340 y(\(hash-table-map)g(h)j(\(lambda)e +(\(key)h(value\))626 390 y(\(cons)g(key)g(value\)\)\)\))343 +439 y Fu(=)-7 b Fp(\))21 b Fv(\(\(0)g(.)h("0"\))f(\(3)g(.)h("3"\))f +(\(2)g(.)h("2"\))f(\(1)g(.)h("1"\))f(\(4)g(.)h("4"\)\))37 +633 y Fw(\(hash-table->list)g FD(hash)s Fw(\))1097 b +FF(pro)q(cedure)37 707 y Fw(hash-table->list)16 b FF(returns)h(an)h +(\\asso)q(ciation)f(list")i(built)f(from)f(the)h(en)o(tries)g(in)g +FD(hash)t FF(.)27 b(Eac)o(h)17 b(en)o(try)37 756 y(in)g +FD(hash)i FF(will)e(b)q(e)f(represen)o(ted)g(as)f(a)g(pair)g(whose)h +FD(c)n(ar)k FF(is)c(the)f(en)o(try's)g(k)o(ey)g(and)g(whose)h +FD(c)n(dr)k FF(is)c(its)f(v)m(alue.)37 806 y Fn(Note:)37 +b Fu(The)14 b(order)h(of)e(pairs)h(in)g(the)g(resulting)g(list)f(is)h +(unsp)q(eci\014ed.)125 889 y Fv(\(let)21 b(\(\(h)g(\(make-hash-table)o +(\)\)\))168 938 y(\(dotimes)f(\(i)i(5\))212 988 y(\(hash-table-put!)c +(h)k(i)f(\(number->string)e(i\)\)\))168 1038 y(\(hash-table->list)g +(h\)\))343 1088 y Fu(=)-7 b Fp(\))21 b Fv(\(\(0)g(.)h("0"\))f(\(3)g(.)h +("3"\))f(\(2)g(.)h("2"\))f(\(1)g(.)h("1"\))f(\(4)g(.)h("4"\)\))37 +1282 y Fw(\(hash-table-stats)g FD(hash)s Fw(\))1097 b +FF(pro)q(cedure)37 1362 y Fw(Hash-table-stats)12 b FF(returns)i(a)g +(string)f(with)i(o)o(v)o(erall)f(information)g(ab)q(out)f +FD(hash)t FF(,)h(suc)o(h)g(as)g(the)g(n)o(um)o(b)q(er)37 +1418 y(of)21 b(en)o(tries)g(it)h(con)o(tains,)g(the)f(n)o(um)o(b)q(er)g +(of)g(buc)o(k)o(ets)g(in)h(its)f(hash)g(arra)o(y)l(,)g(and)g(the)g +(utilization)i(of)e(the)37 1475 y(buc)o(k)o(ets.)37 1591 +y FI(6.20)56 b(Regular)18 b(expressions)37 1677 y FF(Regular)j +(expressions)f(are)f(\014rst)g(class)h(ob)s(jects)e(in)i +FB(STk)p FF(.)32 b(A)20 b(regular)f(expression)h(is)g(created)g(b)o(y)f +(the)37 1733 y Fw(string->regexp)e FF(pro)q(cedure.)29 +b(Matc)o(hing)18 b(a)g(regular)g(expression)h(against)f(a)g(string)g +(is)g(simply)i(done)37 1790 y(b)o(y)f(applying)g(a)f(previously)i +(created)e(regular)g(expression)h(to)f(this)g(string.)29 +b(Regular)19 b(expressions)g(are)37 1846 y(implemen)o(ted)24 +b(using)e(co)q(de)g(in)h(the)f(Henry)g(Sp)q(encer's)g(pac)o(k)m(age,)h +(and)f(m)o(uc)o(h)f(of)h(the)f(description)i(of)37 1903 +y(regular)16 b(expressions)g(b)q(elo)o(w)g(is)f(copied)i(from)d(his)i +(man)o(ual.)37 2018 y Fw(\(string->regexp)22 b FD(string)t +Fw(\))1118 b FF(pro)q(cedure)37 2098 y Fw(String->regexp)14 +b FF(compiles)i(the)g FD(string)i FF(and)d(returns)h(the)f(corresp)q +(onding)h(regular)f(expression.)37 2166 y(Matc)o(hing)10 +b(a)g(regular)h(expression)g(against)e(a)h(string)g(is)h(done)f(b)o(y)h +(applying)g(the)f(result)h(of)f Fw(string->regexp)37 +2223 y FF(to)k(this)h(string.)k(This)c(application)h(yields)g(a)e(list) +h(of)f(in)o(teger)h(couples)g(if)g(a)f(matc)o(hing)g(o)q(ccurs;)h(it)f +(returns)37 2279 y Fw(#f)19 b FF(otherwise.)32 b(Those)19 +b(in)o(tegers)g(corresp)q(ond)h(to)e(indexes)j(in)f(the)f(string)g +(whic)o(h)h(matc)o(h)f(the)g(regular)37 2336 y(expression.)37 +2392 y(A)f(regular)g(expression)g(is)g(zero)g(or)f(more)g +FD(br)n(anches)p FF(,)f(separated)i(b)o(y)f(\\)p Fw(|)p +FF(".)26 b(It)18 b(matc)o(hes)f(an)o(ything)h(that)37 +2449 y(matc)o(hes)d(one)h(of)e(the)i(branc)o(hes.)37 +2505 y(A)g(branc)o(h)h(is)f(zero)g(or)f(more)h FD(pie)n(c)n(es)p +FF(,)e(concatenated.)23 b(It)16 b(matc)o(hes)f(a)h(matc)o(h)f(for)g +(the)h(\014rst,)g(follo)o(w)o(ed)g(b)o(y)37 2562 y(a)f(matc)o(h)g(for)g +(the)g(second,)g(etc.)37 2618 y(A)h(piece)i(is)e(an)g +FD(atom)g FF(p)q(ossibly)i(follo)o(w)o(ed)e(b)o(y)f(\\)p +Fw(*)p FF(",)g(\\)p Fw(+)p FF(",)g(or)h(\\)p Fw(?)p FF(".)21 +b(An)16 b(atom)e(follo)o(w)o(ed)j(b)o(y)e(\\)p Fw(*)p +FF(")g(matc)o(hes)37 2674 y(a)h(sequence)h(of)e(0)h(or)f(more)h(matc)o +(hes)f(of)g(the)h(atom.)21 b(An)16 b(atom)f(follo)o(w)o(ed)h(b)o(y)g +(\\)p Fw(+)p FF(")f(matc)o(hes)g(a)h(sequence)37 2731 +y(of)g(1)g(or)g(more)g(matc)o(hes)g(of)g(the)g(atom.)23 +b(An)16 b(atom)g(follo)o(w)o(ed)g(b)o(y)g(\\)p Fw(?)p +FF(")23 b(matc)o(hes)16 b(a)g(matc)o(h)g(of)g(the)g(atom,)37 +2787 y(or)f(the)g(n)o(ull)i(string.)p eop +%%Page: 45 45 +45 44 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(45)p 37 64 1838 2 v 37 190 a FF(An)13 b(atom)f(is)h(a)g(regular)f +(expression)i(in)g(paren)o(theses)e(\(matc)o(hing)h(a)f(matc)o(h)g(for) +g(the)h(regular)g(expression\),)37 247 y(a)g FD(r)n(ange)f +FF(\(see)g(b)q(elo)o(w\),)h(\\)p Fw(.)p FF(")19 b(\(matc)o(hing)12 +b(an)o(y)h(single)h(c)o(haracter\),)d(\\)p Fw(^)p FF(")h(\(matc)o(hing) +h(the)f(n)o(ull)i(string)f(at)f(the)37 303 y(b)q(eginning)18 +b(of)d(the)h(input)g(string\),)f(\\)p Fw($)p FF(")g(\(matc)o(hing)g +(the)h(n)o(ull)h(string)f(at)f(the)g(end)h(of)f(the)h(input)h +(string\),)37 360 y(a)e(\\)p Fw(\\)p FF(")g(follo)o(w)o(ed)g(b)o(y)h(a) +e(single)j(c)o(haracter)e(\(matc)o(hing)f(that)h(c)o(haracter\),)f(or)h +(a)f(single)j(c)o(haracter)d(with)i(no)37 416 y(other)f(signi\014cance) +i(\(matc)o(hing)e(that)g(c)o(haracter\).)37 473 y(A)e +FD(r)n(ange)e FF(is)i(a)e(sequence)j(of)d(c)o(haracters)h(enclosed)h +(in)g(\\)p Fw([])p FF(".)18 b(It)12 b(normally)h(matc)o(hes)f(an)o(y)f +(single)j(c)o(haracter)37 529 y(from)g(the)h(sequence.)21 +b(If)14 b(the)h(sequence)g(b)q(egins)h(with)f(\\)p Fw(^)p +FF(",)e(it)i(matc)o(hes)f(an)o(y)g(single)i(c)o(haracter)d +FD(not)i FF(from)37 586 y(the)22 b(rest)e(of)h(the)g(sequence.)39 +b(If)21 b(t)o(w)o(o)f(c)o(haracters)g(in)i(the)f(sequence)h(are)f +(separated)g(b)o(y)g(\\)p Fw(-)p FF(",)g(this)g(is)37 +642 y(shorthand)g(for)f(the)h(full)i(list)e(of)g(ASCI)q(I)h(c)o +(haracters)e(b)q(et)o(w)o(een)h(them)g(\(e.g.)36 b(\\)p +Fw([0-9])p FF(")20 b(matc)o(hes)g(an)o(y)37 699 y(decimal)d(digit\).)j +(T)l(o)14 b(include)j(a)d(literal)i(\\)p Fw(])p FF(")e(in)h(the)g +(sequence,)g(mak)o(e)f(it)h(the)g(\014rst)f(c)o(haracter)g(\(follo)o +(wing)37 755 y(a)h(p)q(ossible)i(\\)p Fw(^)p FF("\).)i(T)l(o)c(include) +j(a)d(literal)h(\\)p Fw(-)p FF(",)e(mak)o(e)h(it)g(the)g(\014rst)g(or)g +(last)g(c)o(haracter.)37 811 y(In)g(general)g(there)f(ma)o(y)f(b)q(e)i +(more)f(than)g(one)g(w)o(a)o(y)f(to)g(matc)o(h)h(a)g(regular)g +(expression)h(to)e(an)h(input)h(string.)37 868 y(Considering)e(only)f +(the)g(rules)g(giv)o(en)g(so)f(far)g(could)h(lead)g(to)f(am)o +(biguities.)20 b(T)l(o)11 b(resolv)o(e)h(those)f(am)o(biguities,)37 +924 y(the)g(generated)f(regular)h(expression)g(c)o(ho)q(oses)f(among)g +(alternativ)o(es)g(using)h(the)g(rule)g(\\\014rst)f(then)h(longest".)37 +981 y(In)j(other)e(w)o(ords,)g(it)h(considers)g(the)g(p)q(ossible)h +(matc)o(hes)f(in)g(order)f(w)o(orking)h(from)f(left)h(to)f(righ)o(t)g +(across)g(the)37 1037 y(input)i(string)e(and)h(the)g(pattern,)f(and)h +(it)f(attempts)g(to)g(matc)o(h)f(longer)i(pieces)h(of)e(the)h(input)g +(string)g(b)q(efore)37 1094 y(shorter)i(ones.)20 b(More)15 +b(sp)q(eci\014cally)l(,)i(the)f(follo)o(wing)g(rules)g(apply)g(in)g +(decreasing)g(order)f(of)f(priorit)o(y:)93 1173 y(1.)22 +b(If)c(a)g(regular)g(expression)h(could)g(matc)o(h)e(t)o(w)o(o)g +(di\013eren)o(t)h(parts)f(of)h(an)g(input)h(string)f(then)g(it)g(will) +151 1229 y(matc)o(h)d(the)g(one)g(that)g(b)q(egins)h(earliest.)93 +1317 y(2.)22 b(If)12 b(a)f(regular)h(expression)g(con)o(tains)g(\\)p +Fw(|)p FF(")f(op)q(erators)f(then)i(the)g(leftmost)f(matc)o(hing)g +(sub-expression)151 1374 y(is)16 b(c)o(hosen.)93 1462 +y(3.)22 b(In)e(\\)p Fw(*)p FF(",)g(\\)p Fw(+)p FF(",)f(and)h(\\)p +Fw(?)p FF(")32 b(constructs,)20 b(longer)f(matc)o(hes)g(are)g(c)o +(hosen)h(in)g(preference)h(to)e(shorter)151 1518 y(ones.)93 +1606 y(4.)j(In)13 b(sequences)g(of)f(expression)h(comp)q(onen)o(ts)f +(the)g(comp)q(onen)o(ts)g(are)g(considered)h(from)f(left)g(to)g(righ)o +(t.)125 1688 y Fv(\(define)20 b(r1)h(\(string->regexp)e("abc"\)\))125 +1738 y(\(r1)i("xyz"\))391 b Fu(=)-7 b Fp(\))22 b Fv(#f)125 +1788 y(\(r1)f("12abc345"\))281 b Fu(=)-7 b Fp(\))22 b +Fv(\(\(2)f(5\)\))125 1837 y(\(define)f(r2)h(\(string->regexp)e +("[a-z]+"\)\))125 1887 y(\(r2)i("12abc345"\))281 b Fu(=)-7 +b Fp(\))22 b Fv(\(\(2)f(5\)\))37 2026 y FF(If)16 b(the)f(regular)g +(expression)g(con)o(tains)g(paren)o(thesis,)g(and)g(if)h(there)f(is)g +(a)g(matc)o(h,)f(the)g(result)i(returned)f(b)o(y)37 2082 +y(the)f(application)i(will)f(con)o(tain)f(sev)o(eral)g(couples)g(of)g +(in)o(tegers.)19 b(First)13 b(couple)i(will)h(b)q(e)e(the)g(indexes)h +(of)e(the)37 2139 y(\014rst)18 b(longest)f(substring)h(whic)o(h)g(matc) +o(h)f(the)h(regular)f(expression.)28 b(Subsequen)o(t)18 +b(couples,)h(will)g(b)q(e)f(the)37 2195 y(indexes)f(of)e(all)h(the)f +(sub-parts)g(of)g(this)h(regular)f(expression,)h(in)g(sequence.)125 +2277 y Fv(\(define)k(r3)h(\(string->regexp)e("\(a*\)\(b*\)c"\)\))125 +2327 y(\(r3)i("abc"\))391 b Fu(=)-7 b Fp(\))22 b Fv(\(\(0)f(3\))g(\(0)g +(1\))h(\(1)f(2\)\))125 2377 y(\(r3)g("c"\))435 b Fu(=)-7 +b Fp(\))22 b Fv(\(\(0)f(1\))g(\(0)g(0\))h(\(0)f(0\)\))125 +2427 y(\(\(string->regexp)d("\([a-z]+\),\([a-z]+\))o("\))h +("XXabcd,eXX"\))735 2476 y Fu(=)-7 b Fp(\))22 b Fv(\(\(2)f(8\))g(\(2)g +(6\))h(\(7)f(8\)\))37 2707 y Fw(\(regexp?)i FD(obj)7 +b Fw(\))1338 b FF(pro)q(cedure)37 2787 y(Returns)16 b +Fw(#t)f FF(if)h FD(obj)22 b FF(is)15 b(a)g(regular)g(expression)i +(created)e(b)o(y)g Fw(string->regexp)p FF(;)e(otherwise)i(returns)g +Fw(#f)p FF(.)p eop +%%Page: 46 46 +46 45 bop 37 45 a FE(46)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(regexp?)j(\(string->regexp)e +("[a-zA-Z][a-zA-Z0-9])o(*"\)\))735 240 y Fu(=)-7 b Fp(\))43 +b Fv(#t)37 466 y Fw(\(regexp-replace)22 b FD(p)n(attern)i(string)f +(substitution)s Fw(\))703 b FF(pro)q(cedure)37 523 y +Fw(\(regexp-replace-all)22 b FD(p)n(attern)i(string)f(substitution)s +Fw(\))607 b FF(pro)q(cedure)37 597 y Fw(Regexp-replace)15 +b FF(matc)o(hes)h(the)g(regular)g(expression)h FD(p)n(attern)j +FF(against)c FD(string)s FF(.)23 b(If)17 b(there)f(is)h(a)f(matc)o(h,) +37 647 y(the)i(p)q(ortion)f(of)g FD(string)k FF(whic)o(h)d(matc)o(h)f +FD(p)n(attern)j FF(is)e(replaced)g(b)o(y)g(the)f FD(substitution)k +FF(string.)26 b(If)17 b(there)g(is)37 697 y(no)f(matc)o(h,)e +Fw(regexp-replace)f FF(returns)i FD(string)k FF(unmo)q(di\014ed.)i +(Note)15 b(that)g(the)g(giv)o(en)h FD(p)n(attern)i FF(could)e(b)q(e)37 +747 y(here)d(either)g(a)f(string)g(or)g(a)f(regular)i(expression.)19 +b(If)13 b FD(p)n(attern)i FF(con)o(tains)e(strings)f(of)g(the)g(form)f +(\\)p Fw(\\n)p FF(",)h(where)37 810 y FD(n)j FF(is)g(a)f(digit)h(b)q +(et)o(w)o(een)g(1)g(and)f(9,)g(then)h(it)g(is)g(replaced)h(in)f(the)g +(substitution)g(with)g(the)g(p)q(ortion)g(of)f(string)37 +859 y(that)j(matc)o(hed)h(the)g FD(n)p FF(-th)f(paren)o(thesized)i(sub) +q(expression)g(of)e FD(p)n(attern)p FF(.)27 b(If)18 b +FD(n)f FF(is)h(equal)g(to)f(0,)h(then)g(it)f(is)37 909 +y(replaced)g(in)f FD(substitution)i FF(with)e(the)f(p)q(ortion)h(of)e +FD(string)19 b FF(that)14 b(matc)o(hed)h FD(p)n(attern)t +FF(.)125 1000 y Fv(\(regexp-replace)j("a*b")j("aaabbcccc")f("X"\))735 +1050 y Fu(=)-7 b Fp(\))22 b Fv("Xbcccc")125 1100 y(\(regexp-replace)c +(\(string->regexp)h("a*b"\))i("aaabbcccc")e("X"\))735 +1150 y Fu(=)-7 b Fp(\))22 b Fv("Xbcccc")125 1200 y(\(regexp-replace)c +("\(a*\)b")j("aaabbcccc")e("X\\\\1Y"\))735 1249 y Fu(=)-7 +b Fp(\))22 b Fv("XaaaYbcccc")125 1299 y(\(regexp-replace)c("\(a*\)b")j +("aaabbcccc")e("X\\\\0Y"\))735 1349 y Fu(=)-7 b Fp(\))22 +b Fv("XaaabYbcccc")125 1399 y(\(regexp-replace)c("\([a-z]*\))i +(\([a-z]*\)")g("john)h(brown")g("\\\\2)f(\\\\1"\))735 +1449 y Fu(=)-7 b Fp(\))22 b Fv("brown)e(john")37 1595 +y Fw(Regexp-replace)9 b FF(replaces)j(the)f(\014rst)g(o)q(ccurence)h +(of)f FD(p)n(attern)j FF(in)e FD(string)s FF(.)18 b(T)l(o)11 +b(replace)h FD(al)r(l)f FF(the)g(o)q(ccurences)37 1652 +y(of)k(the)h FD(p)n(attern)p FF(,)e(use)i Fw(regexp-replace-all)125 +1756 y Fv(\(regexp-replace)i("a*b")j("aaabbcccc")f("X"\))735 +1806 y Fu(=)-7 b Fp(\))22 b Fv("Xbcccc")125 1856 y(\(regexp-replace-)o +(all)d("a*b")h("aaabbcccc")g("X"\))735 1906 y Fu(=)-7 +b Fp(\))22 b Fv("XXcccc")37 2138 y FI(6.21)56 b(P)n(attern)19 +b(matc)n(hing)37 2225 y FF(P)o(attern)e(matc)o(hing)h(is)g(a)f(k)o(ey)g +(feature)h(of)f(most)g(mo)q(dern)g(functional)i(programming)e +(languages)h(since)37 2282 y(it)h(allo)o(ws)f(clean)h(and)f(secure)g +(co)q(de)h(to)e(b)q(e)i(written.)28 b(In)o(ternally)l(,)20 +b(\\pattern-matc)o(hing)d(forms")g(should)37 2338 y(b)q(e)g(translated) +f(\(compiled\))h(in)o(to)f(cascades)g(of)g(\\elemen)o(tary)g(tests")f +(where)h(co)q(de)h(is)g(made)f(as)f(e\016cien)o(t)37 +2395 y(as)i(p)q(ossible,)h(a)o(v)o(oiding)g(redundan)o(t)f(tests;)f +(the)h FB(STk)f FF(\\pattern)g(matc)o(hing)h(compiler")h(pro)o(vides)f +(this)1842 2378 y FA(7)1862 2395 y FF(.)37 2451 y(The)h(tec)o(hnique)h +(used)e(is)h(describ)q(ed)h(in)g(details)f(in)g([9)o(],)f(and)h(the)f +(co)q(de)h(generated)f(can)h(b)q(e)g(considered)37 2508 +y(optimal)e(due)g(to)f(the)g(w)o(a)o(y)f(this)i(\\pattern)e(compiler")i +(w)o(as)f(obtained.)37 2565 y(The)h(\\pattern)e(language")i(allo)o(ws)f +(the)g(expression)h(of)f(a)g(wide)h(v)m(ariet)o(y)f(of)g(patterns,)f +(including:)p 37 2608 735 2 v 89 2634 a Ft(7)107 2650 +y Fs(The)k(\\pattern)h(matc)o(hing)g(compiler")i(has)d(b)q(een)h +(written)g(b)o(y)f(Jean-Marie)i(Ge\013ro)o(y)f(and)g(is)f(part)h(of)f +(the)g(Man)o(uel)37 2696 y(Serrano's)g(Biglo)q(o)g(compiler[8)r(])e +(since)h(sev)o(eral)g(y)o(ears.)28 b(The)16 b(co)q(de)h(\(and)g(do)q +(cumen)o(tation\))h(included)h(in)e Fh(STk)f Fs(has)h(b)q(een)37 +2742 y(stolen)i(from)e(the)g(Biglo)q(o)i(pac)o(k)n(age)f(v1.9)f(\(the)g +(only)i(di\013erence)g(b)q(et)o(w)o(een)e(b)q(oth)h(pac)o(k)n(age)g(is) +g(the)f(pattern)h(matc)o(hing)g(of)37 2787 y(structures)c(whisc)o(h)g +(is)g(absen)o(t)g(in)f Fh(STk)p Fs(\).)p eop +%%Page: 47 47 +47 46 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(47)p 37 64 1838 2 v 106 190 a Fo(\017)22 b FF(Non-linear)15 +b(patterns:)j(pattern)12 b(v)m(ariables)j(can)e(app)q(ear)g(more)g +(than)g(once,)g(allo)o(wing)h(comparison)151 247 y(of)h(subparts)g(of)g +(the)g(datum)g(\(through)f Fw(eq?)p FF(\))106 353 y Fo(\017)22 +b FF(Recursiv)o(e)e(patterns)e(on)g(lists:)27 b(for)18 +b(example,)h(c)o(hec)o(king)h(that)d(the)i(datum)f(is)h(a)f(list)h(of)f +(zero)g(or)151 409 y(more)d Fw(a)p FF(s)g(follo)o(w)o(ed)g(b)o(y)g +(zero)h(or)e(more)h Fw(b)p FF(s.)106 515 y Fo(\017)22 +b FF(P)o(attern)14 b(matc)o(hing)i(on)f(lists)h(as)e(w)o(ell)j(as)d(on) +i(v)o(ectors.)37 653 y FE(P)o(attern)i(Matc)o(hing)g(F)l(acilities)37 +745 y FF(Only)f(t)o(w)o(o)d(sp)q(ecial)j(forms)e(are)g(pro)o(vided)h +(for)f(this:)21 b Fw(match-case)14 b FF(and)h Fw(match-lambda)f +FF(and)h(these)h(also)37 801 y(exist,)g(for)e(example,)i(in)g(Andrew)g +(W)l(righ)o(t)e(and)i(Bruce)g(Duba's)e([10)o(])h(pattern)g(matc)o(hing) +g(pac)o(k)m(age.)37 929 y Fw(\(match-case)23 b Fo(h)p +FF(k)o(ey)p Fo(i)g(h)p FF(clause)586 936 y FA(1)606 929 +y Fo(i)h(h)p FF(clause)784 936 y FA(2)804 929 y Fo(i)p +Fz(:)8 b(:)g(:)d Fw(\))839 b FF(syn)o(tax)37 1005 y(In)16 +b(this)g(form,)e Fo(h)p FF(k)o(ey)p Fo(i)g FF(ma)o(y)h(b)q(e)h(an)o(y)f +(expression)h(and)f(eac)o(h)g Fo(h)p FF(clause)p Fo(i)h +FF(has)f(the)g(form)125 1108 y Fv(\()p Fl(<)p Fv(pat)p +Fl(>)21 b(<)p Fv(expression)550 1114 y Fm(1)567 1108 +y Fl(>)h(<)p Fv(expression)873 1114 y Fm(2)890 1108 y +Fl(>)g Fv(...\))37 1263 y FF(A)16 b Fw(match-case)e FF(expression)j(is) +f(ev)m(aluated)h(as)e(follo)o(ws.)21 b Fz(<)p FF(k)o(ey)p +Fz(>)16 b FF(is)h(ev)m(aluated)f(and)g(the)g(result)g(is)g(com-)37 +1320 y(pared)i(with)g(eac)o(h)f(successiv)o(e)i(patterns.)26 +b(If)18 b(the)f(pattern)g(in)h(some)f Fz(<)p FF(clause)p +Fz(>)i FF(yields)g(a)f(matc)o(h,)f(then)37 1376 y(the)c(expressions)h +(in)f(that)f Fz(<)p FF(clause)p Fz(>)i FF(are)f(ev)m(aluated)h(from)d +(left)i(to)f(righ)o(t)h(in)g(an)g(en)o(vironmen)o(t)g(where)g(the)37 +1433 y(pattern)g(v)m(ariables)h(are)f(b)q(ound)g(to)g(the)g(corresp)q +(onding)g(subparts)g(of)g(the)f(datum,)h(and)g(the)g(result)g(of)g(the) +37 1489 y(last)h(expression)g(in)g(that)e Fz(<)p FF(clause)p +Fz(>)j FF(is)f(returned)f(as)g(the)g(result)h(of)f(the)g +Fw(match-case)f FF(expression.)20 b(If)13 b(no)37 1546 +y Fz(<)p FF(pat)p Fz(>)j FF(in)h(an)o(y)e Fz(<)p FF(clause)p +Fz(>)i FF(matc)o(hes)e(the)h(datum,)f(then,)h(if)g(there)g(is)g(an)f +Fw(else)g FF(clause,)h(its)g(expressions)37 1602 y(are)k(ev)m(aluated)h +(and)f(the)g(result)g(of)f(the)h(last)g(is)g(the)g(result)g(of)g(the)g +(whole)g Fw(match-case)e FF(expression;)37 1659 y(otherwise)e(the)f +(result)h(of)f(the)g Fw(match-case)f FF(expression)i(is)f(unsp)q +(eci\014ed.)37 1718 y(The)h(equalit)o(y)g(predicate)g(used)g(is)g +Fw(eq?)p FF(.)125 1836 y Fv(\(match-case)j('\(a)i(b)h(a\))168 +1886 y(\(\(?x)f(?x\))g('foo\))168 1936 y(\(\(?x)g(?-)h(?x\))f('bar\)\)) +343 1985 y Fu(=)-7 b Fp(\))21 b Fv(bar)37 2239 y Fw(\(match-lambda)i +Fo(h)p FF(clause)508 2246 y FA(1)528 2239 y Fo(i)g(h)p +FF(clause)705 2246 y FA(2)726 2239 y Fo(i)o Fz(:)8 b(:)g(:)e +Fw(\))917 b FF(syn)o(tax)37 2322 y(The)12 b(form)f Fw(match-lambda)p +FF(expands)f(in)o(to)h(a)g(lam)o(b)q(da-expression)i(exp)q(ecting)f(an) +g(argumen)o(t)e(whic)o(h,)j(once)37 2379 y(applied)18 +b(to)c(an)h(expression,)h(b)q(eha)o(v)o(es)f(exactly)h(lik)o(e)g(a)f +Fw(match-case)f FF(expression.)125 2497 y Fv(\(\(match-lambda)212 +2547 y(\(\(?x)21 b(?x\))g('foo\))212 2596 y(\(\(?x)g(?-)g(?x\))g +('bar\)\))g('bar\))343 2646 y Fu(=)-7 b Fp(\))21 b Fv(bar)p +eop +%%Page: 48 48 +48 47 bop 37 45 a FE(48)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 62 180 a Fl(<)p Fn(p)n(attern)p Fl(>)f +Fp(\000)-7 b(!)333 b Fn(Matches:)62 229 y Fl(<)p Fu(atom)p +Fl(>)13 b Fp(k)h Fv(\(kwote)42 b Fl(<)p Fu(atom)p Fl(>)p +Fv(\))48 b Fu(an)o(y)14 b(expression)h Fv(eq?)j Fu(to)13 +b Fl(<)p Fu(atom)p Fl(>)62 279 y Fp(k)h Fv(\(and)f Fl(<)p +Fu(pat)290 285 y Fm(1)320 279 y Fl(>)i Fu(.)6 b(.)g(.)h +Fl(<)p Fu(pat)514 285 y Fg(n)548 279 y Fl(>)p Fv(\))68 +b Fu(if)13 b(all)g(of)g Fl(<)p Fu(pat)905 285 y Fg(i)931 +279 y Fl(>)h Fu(matc)o(h)62 329 y Fp(k)g Fv(\(or)f Fl(<)p +Fu(pat)p Fl(>)i Fu(.)6 b(.)g(.)h Fl(<)p Fu(pat)462 335 +y Fg(n)496 329 y Fl(>)p Fv(\))120 b Fu(if)13 b(an)o(y)h(of)f +Fl(<)p Fu(pat)926 335 y Fm(1)957 329 y Fl(>)h Fu(through)g +Fl(<)p Fu(pat)1252 335 y Fg(n)1286 329 y Fl(>)p Fu(matc)o(h)62 +379 y Fp(k)g Fv(\(not)f Fl(<)p Fu(pat)p Fl(>)p Fv(\))326 +b Fu(if)13 b Fl(<)p Fu(pat)p Fl(>)i Fu(do)q(esn't)f(matc)o(h)62 +429 y Fp(k)g Fv(\(?)k Fl(<)p Fu(predicate)p Fl(>)p Fv(\))260 +b Fu(if)13 b Fl(<)p Fu(predicate)p Fl(>)j Fu(is)e(true)62 +479 y Fp(k)g Fv(\()p Fl(<)p Fv(pat)217 485 y Fm(1)247 +479 y Fl(>)22 b Fv(...)367 463 y Fm(8)428 479 y Fl(<)p +Fv(pat)526 485 y Fg(n)560 479 y Fl(>)p Fv(\))56 b Fu(a)14 +b(list)f(of)h Fl(n)f Fu(elemen)o(ts)62 528 y Fp(k)h Fl(<)p +Fu(pat)p Fl(>)g Fv(...)p 235 535 66 2 v 315 513 a Fm(9)670 +528 y Fu(a)g(\(p)q(ossibly)g(empt)o(y\))f(rep)q(etition)h(of)f +Fl(<)p Fu(pat)p Fl(>)i Fu(in)e(a)h(list.)62 578 y Fp(k)g +Fv(#\()p Fl(<)p Fv(pat)p Fl(>)21 b Fv(...)p Fl(<)p Fv(pat)456 +584 y Fg(n)490 578 y Fl(>)p Fv(\))126 b Fu(a)14 b(v)o(ector)h(of)e(n)h +(elemen)o(ts)62 628 y Fp(k)g Fv(?)p Fl(<)p Fu(iden)o(ti\014er)p +Fl(>)327 b Fu(an)o(ything,)13 b(and)h(binds)g Fl(identif)t(ier)i +Fu(as)e(a)g(v)n(ariable)62 678 y Fp(k)g Fv(?-)529 b Fu(an)o(ything)62 +728 y Fp(k)14 b Fv(??-)507 b Fu(an)o(y)14 b(\(p)q(ossibly)g(empt)o(y\)) +f(rep)q(etition)h(of)f(an)o(ything)g(in)h(a)f(list)62 +777 y Fp(k)h Fv(???-)485 b Fu(an)o(y)14 b(end)g(of)g(list)714 +870 y FF(T)l(able)i(3:)k(P)o(attern)14 b(Syn)o(tax)p +40 926 14 2 v 54 926 1805 2 v 1862 926 14 2 v 37 1042 +a FE(The)k(pattern)g(language)37 1128 y FF(The)e(syn)o(tax)e(is)h +(presen)o(ted)g(in)h(T)l(able)g(3.)j(It)c(is)g(describ)q(ed)i(b)q(elo)o +(w)e(in)h(the)f(same)f(w)o(a)o(y)g(\(and)h(nearly)g(in)h(the)37 +1185 y(same)f(w)o(ords\))f(as)h(in)h([10)o(].)37 1241 +y Fn(Note:)35 b Fv(and,)21 b(or,)g(not,)g(check)11 b +Fu(and)h Fv(kwote)f Fu(m)o(ust)g(b)q(e)h(quoted)g(in)g(order)g(to)g(b)q +(e)h(treated)g(as)f(literals.)17 b(This)12 b(is)f(the)37 +1298 y(only)i(justi\014cation)f(for)h(ha)o(ving)f(the)h +Fv(kwote)f Fu(pattern)i(since,)g(b)o(y)e(con)o(v)o(en)o(tion,)h(an)o(y) +f(atom)g(whic)o(h)g(is)h(not)g(a)g(k)o(eyw)o(ord)37 1354 +y(is)h(quoted.)37 1471 y FE(Explanations)20 b(through)e(examples)106 +1550 y Fo(\017)k Fw(?-)15 b FF(matc)o(hes)g(an)o(y)g(s-expr)106 +1637 y Fo(\017)22 b Fw(a)15 b FF(matc)o(hes)g(the)g(atom)f +Fw('a)p FF(.)106 1725 y Fo(\017)22 b Fw(?a)15 b FF(matc)o(hes)g(an)o(y) +g(expression,)g(and)h(binds)g(the)f(v)m(ariable)i Fw(a)e +FF(to)g(this)g(expression.)106 1813 y Fo(\017)22 b Fw(\(?)48 +b(integer?\))19 b FF(matc)o(hes)14 b(an)o(y)h(in)o(teger)106 +1900 y Fo(\017)22 b Fw(\(a)i(\(a)f(b\)\))15 b FF(matc)o(hes)g(the)g +(only)h(list)g Fw('\(a)23 b(\(a)h(b\)\))p FF(.)106 1988 +y Fo(\017)e Fw(???-)14 b FF(can)g(only)h(app)q(ear)f(at)g(the)g(end)h +(of)f(a)f(list,)i(and)g(alw)o(a)o(ys)e(succeeds.)21 b(F)l(or)13 +b(instance,)i Fw(\(a)24 b(???-\))151 2045 y FF(is)16 +b(equiv)m(alen)o(t)h(to)d Fw(\(a)24 b(.)47 b(?-\))p FF(.)106 +2132 y Fo(\017)22 b FF(when)d(o)q(ccurring)g(in)g(a)e(list,)j +Fw(??-)d FF(matc)o(hes)h(an)o(y)g(sequence)h(of)f(an)o(ything:)26 +b Fw(\(a)d(??-)h(b\))17 b FF(matc)o(hes)151 2189 y(an)o(y)e(list)h +(whose)f Fw(car)g FF(is)h Fw(a)f FF(and)g(last)g Fw(car)g +FF(is)h Fw(b)p FF(.)106 2276 y Fo(\017)22 b Fw(\(a)i(...\))14 +b FF(matc)o(hes)h(an)o(y)g(list)h(of)f Fw(a)p FF('s,)f(p)q(ossibly)j +(empt)o(y)l(.)106 2364 y Fo(\017)22 b Fw(\(?x)i(?x\))14 +b FF(matc)o(hes)h(an)o(y)g(list)h(of)f(length)h(2)e(whose)i +Fw(car)e FF(is)i FD(e)n(q)f FF(to)f(its)i Fw(cadr)106 +2452 y Fo(\017)22 b Fw(\(\(and)h(\(not)h(a\))f(?x\))h(?x\))15 +b FF(matc)o(hes)g(an)o(y)g(list)i(of)e(length)i(2)e(whose)g +Fw(car)h FF(is)g(not)f FD(e)n(q)g FF(to)g Fw('a)h FF(but)f(is)151 +2508 y FD(e)n(q)g FF(to)f(its)i Fw(cadr)106 2596 y Fo(\017)22 +b Fw(#\(?-)h(?-)h(???-\))15 b FF(matc)o(hes)f(an)o(y)h(v)o(ector)g +(whose)g(length)h(is)f(at)g(least)g(2.)37 2674 y Fn(Note:)36 +b Fv(??-)12 b Fu(and)h Fv(...)f Fu(patterns)j(can)e(not)g(app)q(ear)g +(inside)g(a)g(v)o(ector,)g(where)h(y)o(ou)f(should)f(use)i(???-:)i(F)m +(or)d(example,)37 2731 y Fv(#\(a)22 b(??-)f(b\))d Fu(or)g +Fv(#\(a...\))30 b Fu(are)18 b(in)o(v)n(alid)e(patterns,)k(whereas)g +Fv(#\(a)h(???-\))c Fu(is)h(v)n(alid)f(and)h(matc)o(hes)f(an)o(y)h(v)o +(ector)37 2787 y(whose)d(\014rst)g(elemen)o(t)e(is)h(the)g(atom)e +Fv(a)p Fu(.)p eop +%%Page: 49 49 +49 48 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(49)p 37 64 1838 2 v 37 190 a FI(6.22)56 b(Pro)r(cesses)37 +276 y FB(STk)13 b FF(pro)o(vides)g(access)g(to)f(Unix)h(pro)q(cesses)g +(as)g(\014rst)f(class)h(ob)s(jects.)19 b(Basically)l(,)14 +b(a)f(pro)q(cess)g(con)o(tains)f(four)37 333 y(informations:)20 +b(the)13 b(standard)g(Unix)i(pro)q(cess)e(iden)o(ti\014cation)j(\(ak)m +(a)d(PID\))g(and)h(the)f(three)h(standard)f(\014les)37 +389 y(of)i(the)h(pro)q(cess.)37 506 y Fw(\(run-process)23 +b FD(c)n(ommand)h Fz(p)583 513 y FA(1)626 506 y Fz(p)649 +513 y FA(2)693 506 y Fz(p)716 513 y FA(3)759 506 y Fz(:)8 +b(:)g(:)e Fw(\))835 b FF(pro)q(cedure)37 586 y Fw(run-process)18 +b FF(creates)h(a)h(new)f(pro)q(cess)h(and)f(run)h(the)g(executable)g +(sp)q(eci\014ed)i(in)e FD(c)n(ommand)5 b FF(.)32 b(The)20 +b FD(p)37 642 y FF(corresp)q(ond)13 b(to)e(the)h(command)g(line)i +(argumen)o(ts.)j(The)c(follo)o(wing)f(v)m(alues)h(of)f +FD(p)j FF(ha)o(v)o(e)c(a)h(sp)q(ecial)i(meaning:)106 +734 y Fo(\017)22 b Fw(:input)13 b FF(p)q(ermits)h(to)f(redirect)i(the)e +(standard)h(input)g(\014le)h(of)e(the)h(pro)q(cess.)20 +b(Redirection)15 b(can)f(come)151 791 y(from)20 b(a)f(\014le)j(or)d +(from)h(a)g(pip)q(e.)36 b(T)l(o)20 b(redirect)h(the)f(standard)g(input) +h(from)f(a)g(\014le,)i(the)e(name)g(of)151 847 y(this)c(\014le)h(m)o +(ust)e(b)q(e)h(sp)q(eci\014ed)i(after)d Fw(:input)p FF(.)21 +b(Use)15 b(the)h(sp)q(ecial)i(k)o(eyw)o(ord)d Fw(:pipe)f +FF(to)h(redirect)i(the)151 904 y(standard)e(input)h(from)f(a)f(pip)q +(e.)106 997 y Fo(\017)22 b Fw(:output)c FF(p)q(ermits)h(to)e(redirect)j +(the)e(standard)g(output)g(\014le)i(of)e(the)g(pro)q(cess.)30 +b(Redirection)21 b(can)151 1053 y(go)d(to)g(a)h(\014le)h(or)e(to)g(a)g +(pip)q(e.)32 b(T)l(o)19 b(redirect)g(the)g(standard)f(output)h(to)f(a)g +(\014le,)j(the)d(name)h(of)g(this)151 1110 y(\014le)i(m)o(ust)f(b)q(e)g +(sp)q(eci\014ed)i(after)e Fw(:output)p FF(.)33 b(Use)20 +b(the)g(sp)q(ecial)i(k)o(eyw)o(ord)d Fw(:pipe)h FF(to)f(redirect)i(the) +151 1166 y(standard)15 b(output)g(to)f(a)h(pip)q(e.)106 +1259 y Fo(\017)22 b Fw(:error)14 b FF(p)q(ermits)h(to)f(redirect)h(the) +g(standard)f(error)f(\014le)j(of)e(the)h(pro)q(cess.)20 +b(Redirection)c(can)f(go)f(to)151 1316 y(a)g(\014le)h(or)f(to)g(a)f +(pip)q(e.)22 b(T)l(o)13 b(redirect)i(the)g(standard)e(error)h(to)g(a)f +(\014le,)i(the)g(name)f(of)g(this)g(\014le)i(m)o(ust)d(b)q(e)151 +1372 y(sp)q(eci\014ed)j(after)e Fw(:error)p FF(.)k(Use)d(the)f(sp)q +(ecial)i(k)o(eyw)o(ord)d Fw(:pipe)h FF(to)f(redirect)i(the)f(standard)g +(error)g(to)151 1428 y(a)h(pip)q(e.)106 1522 y Fo(\017)22 +b Fw(:wait)15 b FF(m)o(ust)f(b)q(e)i(follo)o(w)o(ed)f(b)o(y)g(a)g(b)q +(o)q(olean)h(v)m(alue.)21 b(This)16 b(v)m(alue)h(sp)q(eci\014es)f(if)g +(the)f(pro)q(cess)h(m)o(ust)e(b)q(e)151 1578 y(run)h(async)o(hronously) +f(or)g(not.)19 b(By)14 b(default,)g(the)h(pro)q(cess)f(is)h(run)f +(async)o(hronously)g(\(i.e.)20 b Fw(:wait)13 b FF(is)151 +1634 y Fw(#f)p FF(\).)106 1728 y Fo(\017)22 b Fw(:host)c +FF(m)o(ust)g(b)q(e)h(follo)o(w)o(ed)g(b)o(y)f(a)g(string.)30 +b(This)19 b(string)f(represen)o(ts)h(the)f(name)h(of)f(the)g(mac)o +(hine)151 1784 y(on)j(whic)o(h)g(the)g(command)g(m)o(ust)f(b)q(e)h +(executed.)38 b(This)21 b(option)g(uses)g(the)g(external)g(command)151 +1840 y Fw(rsh)p FF(.)26 b(The)18 b(shell)g(v)m(ariable)h +Fw(PATH)e FF(m)o(ust)g(b)q(e)h(correctly)f(set)g(for)g(accessing)h(it)g +(without)f(sp)q(ecifying)151 1897 y(its)f(ab)q(olute)f(path.)37 +1982 y(The)22 b(follo)o(wing)f(example)h(launc)o(hes)g(a)f(pro)q(cess)g +(whic)o(h)h(execute)g(the)f(Unix)h(command)f Fw(ls)g +FF(with)g(the)37 2032 y(argumen)o(ts)15 b Fw(-l)g FF(and)g +Fw(/bin)p FF(.)k(The)d(lines)h(prin)o(ted)f(b)o(y)f(this)g(command)g +(are)g(stored)g(in)h(the)f(\014le)i Fw(/tmp/X)125 2117 +y Fv(\(run-process)i("ls")i("-l")g("/bin")f(:output)h("/tmp/X")f(:wait) +h(#f\))37 2317 y Fw(\(process?)i FD(pr)n(o)n(c)n(ess)t +Fw(\))1236 b FF(pro)q(cedure)37 2398 y(Returns)16 b Fw(#t)f +FF(if)h FD(pr)n(o)n(c)n(ess)h FF(is)f(a)f(pro)q(cess,)g(otherwise)g +(returns)g Fw(#f)p FF(.)37 2512 y Fw(\(process-alive?)22 +b FD(pr)n(o)n(c)n(ess)t Fw(\))1093 b FF(pro)q(cedure)37 +2592 y(Returns)16 b Fw(#t)f FF(if)h FD(pr)n(o)n(c)n(ess)h +FF(if)f(the)f(pro)q(cess)h(is)f(curren)o(tly)h(running,)g(otherwise)f +(returns)h Fw(#f)p FF(.)37 2707 y Fw(\(process-pid)23 +b FD(pr)n(o)n(c)n(ess)t Fw(\))1164 b FF(pro)q(cedure)37 +2787 y(Returns)16 b(an)f(in)o(teger)h(v)m(alue)g(whic)o(h)g(represen)o +(ts)f(the)h(Unix)g(iden)o(ti\014cation)h(\(PID\))d(of)h +FD(pr)n(o)n(c)n(ess)r FF(.)p eop +%%Page: 50 50 +50 49 bop 37 45 a FE(50)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(process-input)22 b FD(pr)n(o)n(c)n(ess)t +Fw(\))1117 b FF(pro)q(cedure)37 247 y Fw(\(process-output)22 +b FD(pr)n(o)n(c)n(ess)t Fw(\))1093 b FF(pro)q(cedure)37 +303 y Fw(\(process-error)22 b FD(pr)n(o)n(c)n(ess)t Fw(\))1117 +b FF(pro)q(cedure)37 387 y(Returns)21 b(the)g(\014le)g(p)q(ort)f(asso)q +(ciated)h(to)e(the)i(standard)f(input,)i(output)e(or)g(error)g(of)f +FD(pr)n(o)n(c)n(ess)s FF(,)i(if)g(it)f(is)37 443 y(redirected)h(in)g +(\(or)e(to\))f(a)i(pip)q(e;)j(otherwise)d(returns)f Fw(#f)p +FF(.)33 b(Note)20 b(that)e(the)i(returned)g(p)q(ort)g(is)g(op)q(ened)37 +500 y(for)d(reading)h(when)f(calling)i Fw(process-output)c +FF(or)i Fw(process-error)p FF(;)f(it)h(is)h(op)q(ened)g(for)f(writing)g +(when)37 556 y(calling)g Fw(process-input)p FF(.)37 702 +y Fw(\(process-wait)23 b FD(pr)n(o)n(c)n(ess)t Fw(\))1140 +b FF(pro)q(cedure)37 786 y Fw(Process-wait)14 b FF(stops)h(the)h +(curren)o(t)f(pro)q(cess)h(un)o(til)h FD(pr)n(o)n(c)n(ess)h +FF(completion.)k Fw(Process-wait)14 b FF(returns)h Fw(#f)37 +843 y FF(when)h FD(pr)n(o)n(c)n(ess)i FF(is)d(already)h(terminated;)f +(it)g(returns)h Fw(#t)e FF(otherwise.)37 989 y Fw +(\(process-exit-status)22 b FD(pr)n(o)n(c)n(ess)t Fw(\))973 +b FF(pro)q(cedure)37 1072 y Fw(Process-exit-status)9 +b FF(returns)h(the)h(exit)h(status)e(of)g FD(pr)n(o)n(c)n(ess)j +FF(if)f(it)f(has)f(\014nished)j(its)e(execution;)i(returns)37 +1129 y Fw(#f)i FF(otherwise.)37 1275 y Fw(\(process-send-signal)22 +b FD(pr)n(o)n(c)n(ess)g(n)s Fw(\))926 b FF(pro)q(cedure)37 +1358 y(Send)16 b(the)e(signal)i(whose)e(in)o(teger)h(v)m(alue)g(is)g +FD(n)j FF(to)c FD(pr)n(o)n(c)n(ess)r FF(.)20 b(V)l(alue)15 +b(of)f FD(n)k FF(is)d(system)f(dep)q(endan)o(t.)20 b(Use)15 +b(the)37 1415 y(de\014ned)i(signal)f(constan)o(ts)e(to)g(mak)o(e)h(y)o +(our)g(program)e(indp)q(endan)o(t)k(of)e(the)g(running)h(system)f +(\(see)g(6.18\).)37 1471 y(The)h(result)g(of)e FD(pr)n(o)n(c)n +(ess-send-signal)j FF(is)f(unde\014ned.)37 1617 y Fw(\(process-kill)23 +b FD(pr)n(o)n(c)n(ess)t Fw(\))1140 b FF(pro)q(cedure)37 +1694 y Fw(Process-kill)16 b FF(brutally)h(kills)i FD(pr)n(o)n(c)n(ess)r +FF(.)25 b(The)17 b(result)g(of)f Fw(process-kill)f FF(is)j +(unde\014ned.)26 b(This)17 b(pro)q(ce-)37 1744 y(dure)f(is)g(equiv)m +(alen)o(t)h(to)125 1849 y Fv(\(process-send-si)o(gnal)h(process)j +(|SIGTERM|\))37 2093 y Fw(\(process-stop)i FD(pr)n(o)n(c)n(ess)t +Fw(\))1140 b FF(pro)q(cedure)37 2150 y Fw(\(process-continue)22 +b FD(pr)n(o)n(c)n(ess)t Fw(\))1045 b FF(pro)q(cedure)37 +2227 y(Those)13 b(pro)q(cedures)h(are)e(only)i(a)o(v)m(ailable)g(on)f +(systems)f(whic)o(h)i(supp)q(ort)f(job)f(con)o(trol.)19 +b FD(Pr)n(o)n(c)n(ess-stop)14 b FF(stops)37 2277 y(the)f(execution)g +(of)f FD(pr)n(o)n(c)n(ess)i FF(and)e FD(pr)n(o)n(c)n(ess-c)n(ontinue)i +FF(resumes)e(its)g(execution.)20 b(They)13 b(are)f(equiv)m(alen)o(t)h +(to)125 2382 y Fv(\(process-send-si)o(gnal)18 b(process)j(|SIGSTOP|\)) +125 2431 y(\(process-send-si)o(gnal)d(process)j(|SIGCONT|\))37 +2675 y Fw(\(process-list)o(\))1307 b FF(pro)q(cedure)37 +2759 y Fw(process-list)14 b FF(returns)h(the)g(list)h(of)f(pro)q +(cesses)h(whic)o(h)g(are)f(curren)o(tly)g(running)i(\(i.e.)j(aliv)o +(e\).)p eop +%%Page: 51 51 +51 50 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(51)p 37 64 1838 2 v 37 190 a FI(6.23)56 b(So)r(c)n(k)n(ets)37 +276 y FB(STk)16 b FF(de\014nes)h(so)q(c)o(k)o(ets,)e(on)h(systems)g +(whic)o(h)g(supp)q(ort)h(them,)e(as)h(\014rst)g(class)g(ob)s(jects.)22 +b(So)q(c)o(k)o(ets)15 b(p)q(ermits)37 333 y(pro)q(cesses)23 +b(to)f(comm)o(unicate)h(ev)o(en)f(if)h(they)f(are)g(on)h(di\013eren)o +(t)f(mac)o(hines.)42 b(So)q(c)o(k)o(ets)22 b(are)g(useful)i(for)37 +389 y(creating)16 b(clien)o(t-serv)o(er)g(applications.)37 +504 y Fw(\(make-client-socket)22 b FD(hostname)i(p)n(ort-numb)n(er)5 +b Fw(\))684 b FF(pro)q(cedure)37 584 y Fw(make-client-socket)11 +b FF(returns)j(a)f(new)h(so)q(c)o(k)o(et)f(ob)s(ject.)18 +b(This)c(so)q(c)o(k)o(et)f(establishes)i(a)e(link)i(b)q(et)o(w)o(een)f +(the)37 641 y(running)j(application)g(listening)g(on)e(p)q(ort)g +FD(p)n(ort-numb)n(er)20 b FF(of)15 b FD(hostname)s FF(.)37 +748 y Fw(\(socket?)23 b FD(so)n(cket)t Fw(\))1281 b FF(pro)q(cedure)37 +828 y(Returns)16 b Fw(#t)f FF(if)h FD(so)n(cket)j FF(is)c(a)g(so)q(c)o +(k)o(et,)f(otherwise)i(returns)f Fw(#f)p FF(.)37 935 +y Fw(\(socket-host-name)22 b FD(so)n(cket)t Fw(\))1066 +b FF(pro)q(cedure)37 1015 y(Returns)19 b(a)e(string)h(whic)o(h)h(con)o +(tains)f(the)g(name)g(of)f(the)h(distan)o(t)g(host)f(attac)o(hed)h(to)f +FD(so)n(cket)s FF(.)28 b(If)18 b FD(so)n(cket)37 1071 +y FF(has)g(b)q(een)g(created)g(with)f Fw(make-client-socket)e +FF(this)j(pro)q(cedure)h(returns)e(the)g(o\016cial)h(name)g(of)f(the)37 +1128 y(distan)o(t)f(mac)o(hine)h(used)g(for)f(connection.)24 +b(If)16 b FD(so)n(cket)k FF(has)c(b)q(een)h(created)f(with)h +Fw(make-server-socket)p FF(,)37 1184 y(this)g(function)g(returns)g(the) +f(o\016cial)h(name)g(of)e(the)i(clien)o(t)g(connected)h(to)d(the)i(so)q +(c)o(k)o(et.)23 b(If)16 b(no)g(clien)o(t)i(has)37 1241 +y(used)e(y)o(et)f(the)g(so)q(c)o(k)o(et,)g(this)g(function)h(returns)f +Fw(#f)p FF(.)37 1348 y Fw(\(socket-host-address)22 b +FD(so)n(cket)t Fw(\))994 b FF(pro)q(cedure)37 1428 y(Returns)12 +b(a)f(string)g(whic)o(h)h(con)o(tains)g(the)f(IP)g(n)o(um)o(b)q(er)h +(of)f(the)g(distan)o(t)g(host)g(attac)o(hed)f(to)h FD(so)n(cket)s +FF(.)19 b(If)11 b FD(so)n(cket)37 1484 y FF(has)21 b(b)q(een)g(created) +g(with)g Fw(make-client-socket)d FF(this)j(pro)q(cedure)g(returns)g +(the)f(IP)h(n)o(um)o(b)q(er)g(of)f(the)37 1541 y(distan)o(t)c(mac)o +(hine)h(used)g(for)f(connection.)24 b(If)16 b FD(so)n(cket)k +FF(has)c(b)q(een)h(created)f(with)h Fw(make-server-socket)p +FF(,)37 1597 y(this)g(function)g(returns)g(the)f(address)g(of)g(the)g +(clien)o(t)i(connected)f(to)f(the)g(so)q(c)o(k)o(et.)23 +b(If)16 b(no)h(clien)o(t)g(has)f(used)37 1654 y(y)o(et)f(the)h(so)q(c)o +(k)o(et,)e(this)h(function)h(returns)g Fw(#f)p FF(.)37 +1761 y Fw(\(socket-local-address)21 b FD(so)n(cket)t +Fw(\))971 b FF(pro)q(cedure)37 1841 y(Returns)16 b(a)f(string)g(whic)o +(h)h(con)o(tains)g(the)f(IP)g(n)o(um)o(b)q(er)h(of)f(the)g(lo)q(cal)h +(host)f(attac)o(hed)g(to)f FD(so)n(cket)t FF(.)37 1948 +y Fw(\(socket-port-number)22 b FD(so)n(cket)t Fw(\))1018 +b FF(pro)q(cedure)37 2028 y(Returns)16 b(the)g(in)o(teger)f(n)o(um)o(b) +q(er)g(of)g(the)g(p)q(ort)g(used)h(for)f FD(so)n(cket)s +FF(.)37 2135 y Fw(\(socket-input)23 b FD(so)n(cket)t +Fw(\))1161 b FF(pro)q(cedure)37 2192 y Fw(\(socket-output)22 +b FD(so)n(cket)t Fw(\))1138 b FF(pro)q(cedure)37 2272 +y(Returns)12 b(the)f(\014le)h(p)q(ort)e(asso)q(ciated)h(for)g(reading)g +(or)f(writing)i(with)f(the)g(program)f(connected)i(with)f +FD(so)n(cket)s FF(.)37 2328 y(If)16 b(no)f(connection)h(has)f(already)h +(b)q(een)g(established,)h(these)e(functions)h(return)f +Fw(#f)p FF(.)37 2378 y(The)j(follo)o(wing)f(example)h(sho)o(ws)e(ho)o +(w)g(to)g(mak)o(e)h(a)f(clien)o(t)i(so)q(c)o(k)o(et.)25 +b(Here)17 b(w)o(e)f(create)h(a)f(so)q(c)o(k)o(et)h(on)f(p)q(ort)37 +2428 y(13)f(of)g(the)g(mac)o(hine)h(\\)p Fw(kaolin.unice.fr)p +FF(")812 2412 y FA(10)847 2428 y FF(:)125 2507 y Fv(\(let)21 +b(\(\(s)g(\(make-client-soc)o(ket)e("kaolin.unice.fr)o(")g(13\)\)\))168 +2557 y(\(format)i(#t)43 b("Time)21 b(is:)g(~A\\n")f(\(read-line)g +(\(socket-input)f(s\)\)\))168 2607 y(\(socket-shutdown)41 +b(s\)\))p 37 2699 735 2 v 74 2726 a Ft(10)107 2742 y +Fs(P)o(ort)12 b(13)h(is)g(generally)i(used)e(for)f(testing:)18 +b(making)c(a)f(connection)h(to)f(it)g(p)q(ermits)g(to)g(kno)o(w)g(the)f +(distan)o(t)i(system's)f(idea)37 2787 y(of)g(the)g(time)h(of)f(da)o(y)m +(.)p eop +%%Page: 52 52 +52 51 bop 37 45 a FE(52)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(make-server-socket)n(\))1164 +b FF(pro)q(cedure)37 247 y Fw(\(make-server-socket)22 +b FD(p)n(ort-numb)n(er)5 b Fw(\))895 b FF(pro)q(cedure)37 +327 y Fw(make-server-socket)15 b FF(returns)h(a)g(new)h(so)q(c)o(k)o +(et)f(ob)s(ject.)23 b(If)17 b FD(p)n(ort-numb)n(er)22 +b FF(is)17 b(sp)q(eci\014ed,)i(the)d(so)q(c)o(k)o(et)g(is)37 +383 y(listening)i(on)d(the)g(sp)q(eci\014ed)i(p)q(ort;)e(otherwise,)g +(the)g(comm)o(unication)h(p)q(ort)f(is)h(c)o(hosen)f(b)o(y)g(the)g +(system.)37 491 y Fw(\(socket-accept-connection)21 b +FD(so)n(cket)t Fw(\))875 b FF(pro)q(cedure)37 571 y Fw +(socket-accept-connection)16 b FF(w)o(aits)h(for)h(a)g(clien)o(t)i +(connection)f(on)g(the)f(giv)o(en)h FD(so)n(cket)s FF(.)30 +b(If)18 b(no)h(clien)o(t)37 628 y(is)e(already)g(w)o(aiting)g(for)e(a)i +(connection,)g(this)g(pro)q(cedure)g(blo)q(c)o(ks)g(its)g(caller;)h +(otherwise,)e(the)h(\014rst)f(con-)37 684 y(nection)22 +b(request)f(on)g(the)g(queue)g(of)g(p)q(ending)h(connections)g(is)g +(connected)f(to)g FD(so)n(cket)s FF(.)37 b(This)21 b(pro)q(ce-)37 +740 y(dure)g(m)o(ust)f(b)q(e)i(called)g(on)e(a)g(serv)o(er)g(so)q(c)o +(k)o(et)g(created)h(with)g Fw(make-server-socket)p FF(.)33 +b(The)20 b(result)h(of)37 797 y Fw(socket-accept-connection)12 +b FF(is)k(unde\014ned.)37 847 y(The)j(follo)o(wing)h(example)f(is)h(a)e +(simple)i(serv)o(er)e(whic)o(h)i(w)o(aits)e(for)g(a)h(connection)g(on)g +(the)g(p)q(ort)f(1234)1826 830 y FA(11)1862 847 y FF(.)37 +897 y(Once)d(the)e(connection)h(with)g(the)f(distan)o(t)g(program)f(is) +i(established,)h(w)o(e)e(read)g(a)g(line)i(on)e(the)g(input)h(p)q(ort) +37 946 y(asso)q(ciated)i(to)e(the)i(so)q(c)o(k)o(et)e(and)i(w)o(e)f +(write)g(the)g(length)h(of)f(this)h(line)g(on)g(its)f(output)g(p)q +(ort.)125 1026 y Fv(\(let)21 b(\(\(s)g(\(make-server-soc)o(ket)e +(1234\)\)\))168 1076 y(\(socket-accept-conn)o(ecti)o(on)g(s\))168 +1125 y(\(let)i(\(\(l)g(\(read-line)f(\(socket-input)f(s\)\)\)\))212 +1175 y(\(format)h(\(socket-output)f(s\))i("Length)g(is:)g(~A\\n")g +(\(string-length)e(l\)\))212 1225 y(\(flush)h(\(socket-output)f +(s\)\)\))168 1275 y(\(socket-shutdown)g(s\)\))37 1462 +y Fw(\(socket-shutdown)j FD(so)n(cket)t Fw(\))1090 b +FF(pro)q(cedure)37 1518 y Fw(\(socket-shutdown)22 b FD(so)n(cket)h +(close)s Fw(\))972 b FF(pro)q(cedure)37 1598 y Fw(Socket-shutdown)12 +b FF(sh)o(utdo)o(wns)h(the)h(connection)h(asso)q(ciated)e(to)g +FD(so)n(cket)t FF(.)19 b FD(Close)d FF(is)e(a)f(b)q(o)q(olean;)i(it)f +(indi-)37 1655 y(cates)f(if)f(the)h(so)q(c)o(k)o(et)e(m)o(ust)h(b)q(e)h +(closed)g(or)f(not,)g(when)h(the)g(connection)g(is)g(destro)o(y)o(ed.) +18 b(Closing)13 b(the)g(so)q(c)o(k)o(et)37 1711 y(forbids)f(further)e +(connections)i(on)f(the)f(same)h(p)q(ort)f(with)h(the)g +Fw(socket-accept-connection)c FF(pro)q(cedure.)37 1768 +y(Omitting)19 b(a)e(v)m(alue)i(for)e FD(close)j FF(implies)g(the)e +(closing)g(of)f(so)q(c)o(k)o(et.)27 b(The)18 b(result)g(of)f +Fw(socket-shutdown)e FF(is)37 1824 y(unde\014ned.)37 +1874 y(The)k(follo)o(wing)g(example)g(sho)o(ws)f(a)g(simple)h(serv)o +(er:)26 b(when)19 b(there)f(is)h(a)f(new)g(connection)i(on)e(the)g(p)q +(ort)37 1924 y(n)o(um)o(b)q(er)d(1234,)d(the)i(serv)o(er)g(displa)o(ys) +h(the)e(\014rst)h(line)h(sen)o(t)f(to)f(it)h(b)o(y)g(the)g(clien)o(t,)h +(discards)f(the)g(others)g(and)37 1974 y(go)h(bac)o(k)g(w)o(aiting)h +(for)e(further)h(clien)o(t)i(connections.)125 2053 y +Fv(\(let)k(\(\(s)g(\(make-server-soc)o(ket)e(1234\)\)\))168 +2103 y(\(let)i(loop)g(\(\))212 2153 y(\(socket-accept-co)o(nnec)o(tion) +d(s\))212 2202 y(\(format)i(#t)i("I've)e(read:)h(~A\\n")g(\(read-line)f +(\(socket-input)f(s\)\)\))212 2252 y(\(socket-shutdown)f(s)k(#f\))212 +2302 y(\(loop\)\)\))37 2489 y Fw(\(socket-down?)h FD(so)n(cket)t +Fw(\))1161 b FF(pro)q(cedure)37 2569 y(Returns)16 b Fw(#t)f +FF(if)h FD(so)n(cket)j FF(has)c(b)q(een)h(previously)h(closed)f(with)g +Fw(socket-shutdown)p FF(.)i(It)d(returns)g Fw(#f)g FF(other-)37 +2626 y(wise.)p 37 2653 735 2 v 74 2680 a Ft(11)107 2696 +y Fs(Under)k(Unix,)h(y)o(ou)f(can)h(simply)g(connect)g(to)e(listening)k +(so)q(c)o(k)o(et)d(with)g(the)g Fq(telnet)d Fs(command.)35 +b(With)20 b(the)f(giv)o(en)37 2742 y(example,)c(this)e(can)h(b)q(e)f +(ac)o(hiev)o(ed)i(b)o(y)e(t)o(yping)i(the)e(follo)o(wing)i(command)f +(in)g(a)f(windo)o(w)g(shell:)37 2787 y Fq($)20 b(telnet)d(localhost)f +(1234)p eop +%%Page: 53 53 +53 52 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(53)p 37 64 1838 2 v 37 190 a Fw(\(socket-dup)23 b FD(so)n(cket)t +Fw(\))1209 b FF(pro)q(cedure)37 264 y(Returns)21 b(a)f(cop)o(y)g(of)f +FD(so)n(cket)t FF(.)34 b(The)21 b(original)g(and)f(the)g(cop)o(y)g(so)q +(c)o(k)o(et)g(can)g(b)q(e)h(used)f(in)o(terc)o(hangeably)l(.)37 +314 y(Ho)o(w)o(ev)o(er,)g(if)g(a)f(new)h(connection)g(is)g(accepted)g +(on)g(one)f(so)q(c)o(k)o(et,)h(the)f(c)o(haracters)g(exc)o(hanged)h(on) +g(this)37 363 y(so)q(c)o(k)o(et)15 b(are)h(not)f(visible)j(on)d(the)h +(other)f(so)q(c)o(k)o(et.)20 b(Duplicating)d(a)e(so)q(c)o(k)o(et)g(is)h +(useful)h(when)f(a)f(serv)o(er)h(m)o(ust)37 413 y(accept)j(m)o(ultiple) +g(sim)o(ultaneous)g(connections.)28 b(The)18 b(follo)o(wing)h(example)g +(creates)e(a)h(serv)o(er)f(listening)37 463 y(on)g(p)q(ort)g(1234.)24 +b(This)17 b(serv)o(er)g(is)g(duplicated)i(and,)e(once)h(t)o(w)o(o)d +(clien)o(ts)j(are)f(presen)o(t,)g(a)f(message)h(is)g(sen)o(t)37 +513 y(on)f(b)q(oth)f(connections.)125 599 y Fv(\(define)20 +b(s1)h(\(make-server-socket)d(1234\)\))125 649 y(\(define)i(s2)h +(\(socket-dup)f(s1\)\))125 699 y(\(socket-accept-c)o(onnec)o(tion)e +(s1\))125 749 y(\(socket-accept-c)o(onnec)o(tion)g(s2\))125 +798 y(;;)j(blocks)g(until)f(two)i(clients)e(are)h(present)125 +848 y(\(display)f("Hello,\\n")g(\(socket-output)e(s1\)\))125 +898 y(\(display)i("world\\n")42 b(\(socket-output)18 +b(s2\)\))125 948 y(\(flush)i(\(socket-output)f(s1\)\))125 +998 y(\(flush)h(\(socket-output)f(s2\)\))37 1200 y Fw +(\(when-socket-ready)j FD(so)n(cket)h(hand)r(ler)5 b +Fw(\))869 b FF(pro)q(cedure)37 1256 y Fw(\(when-socket-ready)22 +b FD(so)n(cket)t Fw(\))1042 b FF(pro)q(cedure)37 1336 +y(De\014nes)19 b(a)f(handler)h(for)e FD(so)n(cket)t FF(.)28 +b(The)18 b(handler)h(is)g(a)e(th)o(unk)h(whic)o(h)h(is)g(executed)g +(when)f(a)g(connection)37 1393 y(is)j(a)o(v)m(ailable)g(on)f +FD(so)n(cket)t FF(.)33 b(If)20 b(the)g(sp)q(ecial)i(v)m(alue)f +Fw(#f)e FF(is)i(pro)o(vided)f(as)g FD(hand)r(ler)5 b +FF(,)20 b(the)g(curren)o(t)g(handler)37 1449 y(for)d +FD(so)n(cket)j FF(is)d(deleted.)25 b(If)17 b(a)g(handler)g(is)h(pro)o +(vided,)f(the)g(v)m(alue)h(returned)f(b)o(y)f Fw(when-socket-ready)e +FF(is)37 1506 y(unde\014ned.)22 b(Otherwise,)16 b(it)f(returns)g(the)h +(handler)g(curren)o(tly)g(asso)q(ciated)f(to)g FD(so)n(cket)s +FF(.)37 1555 y(This)22 b(pro)q(cedure,)i(in)e(conjunction)g(with)g +Fw(socket-dup)e FF(p)q(ermits)i(to)f(build)i(m)o(ultiple-clie)q(n)o(ts) +g(serv)o(ers)37 1605 y(whic)o(h)17 b(w)o(ork)d(async)o(hronously)l(.)20 +b(Suc)o(h)c(a)f(serv)o(er)g(is)g(sho)o(wn)g(b)q(elo)o(w.)125 +1691 y Fv(\(define)20 b(p)i(\(make-server-so)o(cket)c(1234\)\))125 +1741 y(\(when-socket-rea)o(dy)h(p)517 1791 y(\(let)i(\(\(count)f(0\)\)) +561 1841 y(\(lambda)g(\(\))604 1891 y(\(set!)h(count)g(\(+)g(count)g +(1\)\))604 1941 y(\(register-connecti)o(on)e(\(socket-dup)g(p\))j +(count\)\)\)\))125 2040 y(\(define)e(register-connecti)o(on)168 +2090 y(\(let)h(\(\(sockets)f('\(\)\)\))212 2140 y(\(lambda)g(\(s)i +(cnt\))255 2190 y(;;)g(Accept)e(connection)255 2239 y +(\(socket-accept-conn)o(ectio)o(n)f(s\))255 2289 y(;;)j(Save)f(socket)f +(somewhere)g(to)i(avoid)e(GC)i(problems)255 2339 y(\(set!)f(sockets)g +(\(cons)f(s)i(sockets\)\))255 2389 y(;;)g(Create)e(a)i(handler)e(for)h +(reading)g(inputs)f(from)h(this)g(new)g(connection)255 +2439 y(\(let)g(\(\(in)43 b(\(socket-input)19 b(s\)\))386 +2488 y(\(out)i(\(socket-output)e(s\)\)\))299 2538 y(\(when-port-readab) +o(le)g(in)408 2588 y(\(lambda)h(\(\))452 2638 y(\(let)h(\(\(l)g +(\(read-line)e(in\)\)\))495 2688 y(\(if)i(\(eof-object?)f(l\))582 +2738 y(;;)i(delete)e(current)h(handler)582 2787 y(\(when-port-readable) +d(in)k(#f\))p eop %%Page: 54 54 -54 53 bop 75 47 a FC(54)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 169 754 a @beginspecial 37 @llx 367 @lly +54 53 bop 37 45 a FE(54)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 114 146 1685 2 v 113 259 2 113 v 139 186 +a(Name)p 517 259 V 270 w(Corresp)q(onding)g(C)g(t)o(yp)q(e)p +1157 259 V 131 w(Corresp)q(onding)83 b(Sc)o(heme)1183 +242 y(T)o(yp)q(e)p 1798 259 V 114 261 1685 2 v 114 269 +V 113 326 2 57 v 139 309 a Fw(:void)p 517 326 V 284 w(void)p +1157 326 V 544 w FD(None)p 1798 326 V 114 327 1685 2 +v 113 440 2 113 v 139 367 a Fw(:char)p 517 440 V 284 +w(char)p 1157 440 V 544 w FF(Sc)o(heme)25 b(c)o(haracter)e(or)g(Sc)o +(heme)1183 423 y(in)o(teger)p 1798 440 V 114 442 1685 +2 v 113 498 2 57 v 139 482 a Fw(:short)p 517 498 V 260 +w(short)g(int)p 1157 498 V 425 w FF(Sc)o(heme)16 b(in)o(teger)p +1798 498 V 114 500 1685 2 v 113 557 2 57 v 139 540 a +Fw(:ushort)p 517 557 V 236 w(unsigned)23 b(short)g(int)p +1157 557 V 210 w FF(Sc)o(heme)16 b(in)o(teger)p 1798 +557 V 114 558 1685 2 v 113 615 2 57 v 139 598 a Fw(:int)p +517 615 V 308 w(int)p 1157 615 V 568 w FF(Sc)o(heme)g(in)o(teger)p +1798 615 V 114 616 1685 2 v 113 673 2 57 v 139 656 a +Fw(:uint)p 517 673 V 284 w(unsigned)23 b(integer)p 1157 +673 V 257 w FF(Sc)o(heme)16 b(in)o(teger)p 1798 673 V +114 674 1685 2 v 113 731 2 57 v 139 714 a Fw(:long)p +517 731 V 284 w(long)23 b(integer)p 1157 731 V 353 w +FF(Sc)o(heme)16 b(in)o(teger)p 1798 731 V 114 733 1685 +2 v 113 789 2 57 v 139 772 a Fw(:ulong)p 517 789 V 260 +w(unsigned)23 b(long)g(integer)p 1157 789 V 138 w FF(Sc)o(heme)16 +b(in)o(teger)p 1798 789 V 114 791 1685 2 v 113 847 2 +57 v 139 830 a Fw(:float)p 517 847 V 260 w(float)p 1157 +847 V 520 w FF(Sc)o(heme)g(Real)p 1798 847 V 114 849 +1685 2 v 113 905 2 57 v 139 888 a Fw(:double)p 517 905 +V 236 w(double)p 1157 905 V 496 w FF(Sc)o(heme)g(Real)p +1798 905 V 114 907 1685 2 v 113 1020 2 113 v 139 946 +a Fw(:static-ptr)p 517 1020 V 140 w FF(p)q(oin)o(ter)g(on)f(a)g(static) +g(area)p 1157 1020 V 174 w(Sc)o(heme)31 b(C-p)q(oin)o(ter)g(ob)s(ject)e +(or)1183 1003 y(Sc)o(heme)16 b(String)p 1798 1020 V 114 +1021 1685 2 v 113 1134 2 113 v 139 1061 a Fw(:dynamic-ptr)24 +b FD(or)139 1117 y Fw(\(:void)f(*\))p 517 1134 V 543 +1061 a FF(p)q(oin)o(ter)32 b(on)g(a)f(dynamic)i(area)543 +1117 y(\()p Fw(malloc)p FF(ated\))p 1157 1134 V 1183 +1061 a(Sc)o(heme)e(C-p)q(oin)o(ter)g(ob)s(ject)e(or)1183 +1117 y(Sc)o(heme)16 b(String)p 1798 1134 V 114 1136 1685 +2 v 113 1249 2 113 v 139 1176 a Fw(:string)144 b FD(or)139 +1232 y Fw(\(:char)23 b(*\))p 517 1249 V 543 1176 a(char)g(*)12 +b FF(\(p)q(oin)o(ter)h(on)f(a)g(dynamic)543 1232 y(string\))p +1157 1249 V 1183 1176 a(Sc)o(heme)31 b(C-p)q(oin)o(ter)g(ob)s(ject)e +(or)1183 1232 y(Sc)o(heme)16 b(String)p 1798 1249 V 114 +1251 1685 2 v 113 1307 2 57 v 139 1290 a Fw(:boolean)p +517 1307 V 212 w(int)p 1157 1307 V 568 w FF(Sc)o(heme)g(b)q(o)q(olean)p +1798 1307 V 114 1309 1685 2 v 658 1386 a(T)l(able)g(4:)k(FFI)15 +b(prede\014ned)h(t)o(yp)q(es)582 1581 y Fv(;;)22 b(Just)f(write)f(the)i +(line)f(read)g(on)g(the)g(socket)582 1631 y(\(begin)626 +1681 y(\(format)f(out)h("On)h(#~A)f(-->)g(~A\\n")g(cnt)g(l\))626 +1730 y(\(flush)f(out\)\)\)\)\)\)\)\)\)\))37 1991 y FI(6.24)56 +b(F)-5 b(oreign)19 b(F)-5 b(unction)19 b(In)n(terface)37 +2084 y FF(The)c FB(STk)e FF(F)l(oreign)i(F)l(unction)f(In)o(terface)h +(\(FFI)e(for)g(short\))h(has)g(b)q(een)h(de\014ned)g(to)f(allo)o(w)g +(an)g(easy)g(access)37 2141 y(to)k(functions)i(written)e(in)h(C)g +(without)f(needing)i(to)e(build)i(C-wrapp)q(ers)f(and,)g(consequen)o +(tly)l(,)h(without)37 2197 y(an)o(y)d(need)h(to)f(write)g(C)g(co)q(de.) +26 b(Note)17 b(that)f(the)h(FFI)g(is)h(v)o(ery)e(mac)o(hine)i(dep)q +(enden)o(t)h(and)e(that)g(it)g(w)o(orks)37 2254 y(only)h(on)e(a)g +(limited)i(set)f(of)f(arc)o(hitectures)777 2237 y FA(12)814 +2254 y FF(.)24 b(Moreo)o(v)o(er,)15 b(since)j(FFI)e(allo)o(ws)h(v)o +(ery)f(lo)o(w)g(lev)o(el)i(access,)f(it)37 2310 y(is)f(easy)f(to)g +(crash)g(the)g(in)o(terpreter)h(when)f(using)h(an)f(external)h(C)f +(function.)37 2371 y(The)h(de\014nition)i(of)d(an)g(external)h +(function)h(is)f(done)g(with)f(the)h(syn)o(tax)f Fw(define-external)p +FF(.)k(This)d(form)37 2427 y(tak)o(es)e(as)g(argumen)o(ts)g(a)g(t)o(yp) +q(ed)g(list)i(of)e(parameters)f(and)i(accepts)f(sev)o(eral)h(options)f +(to)g(de\014ne)h(the)g(name)37 2483 y(of)i(the)g(function)h(in)g(the)f +(C)g(w)o(orld,)g(the)g(library)h(whic)o(h)g(de\014nes)g(this)g +(function,)f(.)8 b(.)f(.)33 b(The)17 b(t)o(yp)q(e)g(of)g(the)37 +2540 y(function)j(result)g(and)f(the)g(t)o(yp)q(es)g(of)g(its)g +(argumen)o(ts)f(are)h(de\014ned)h(in)g(T)l(able)g(4.)31 +b(This)20 b(table)f(lists)h(the)37 2596 y(v)m(arious)f(k)o(eyw)o(ords)f +(reserv)o(ed)g(for)g(denoting)h(t)o(yp)q(es)f(and)h(their)f(equiv)m +(alence)j(b)q(et)o(w)o(een)e(the)f(C)g(and)h(the)37 2653 +y(Sc)o(heme)d(w)o(orlds.)p 37 2699 735 2 v 74 2726 a +Ft(12)107 2742 y Fs(In)f(release)h(3.99,)f(FFI)g(is)h(kno)o(wn)g(to)f +(w)o(ork)g(on)g(the)h(follo)o(wing)h(arc)o(hitectures)g(:)k(ix86)16 +b(\(but)g(not)f(y)o(et)g(MS)h(Windo)o(ws\),)37 2787 y(Sun)e(Sparc,)g +(HP)e(9000,)i(SGI.)p eop +%%Page: 55 55 +55 54 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(55)p 37 64 1838 2 v 37 190 a Fw(\(define-external)22 +b Fo(h)p FF(name)p Fo(i)h(h)p FF(parameters)p Fo(i)g(h)p +FF(options)p Fo(i)o Fw(\))654 b FF(syn)o(tax)37 271 y(The)11 +b(form)f Fw(define-external)f FF(binds)i(a)g(new)f(pro)q(cedure)i(to)e +Fo(h)p FF(name)p Fo(i)o FF(.)18 b(The)11 b(arit)o(y)f(of)g(this)h(new)g +(pro)q(cedure)37 327 y(is)19 b(de\014ned)h(b)o(y)e(the)g(t)o(yp)q(ed)g +(list)h(of)f(parameters)f(giv)o(en)i(b)o(y)f Fo(h)p FF(parameters)p +Fo(i)n FF(.)29 b(This)18 b(parameters)g(list)h(is)f(a)37 +383 y(list)h(of)d(couples)j(whose)e(\014rst)g(elemen)o(t)h(is)g(the)f +(name)h(of)e(the)i(parameter,)f(and)g(the)g(second)h(one)g(is)f(is)h(a) +37 440 y(k)o(eyw)o(ord)g(represen)o(ting)g(its)g(t)o(yp)q(e)g(\(see)g +(table)g(for)g(equiv)m(alence\).)30 b(All)19 b(the)f(t)o(yp)q(es)g +(de\014ned)h(in)g(T)l(able)g(4,)37 496 y(except)14 b +Fw(:void)p FF(,)e(are)h(allo)o(w)o(ed)g(for)f(the)h(parameters)f(of)h +(a)f(foreign)h(function.)20 b Fw(Define-external)11 b +FF(accepts)37 553 y(sev)o(eral)16 b(options:)106 637 +y Fo(\017)22 b Fw(:return-type)14 b FF(is)i(used)g(to)f(de\014ne)i(the) +f(t)o(yp)q(e)g(of)f(the)h(v)m(alue)g(returned)g(b)o(y)g(the)g(foreign)f +(function.)151 687 y(The)g(t)o(yp)q(e)f(returned)h(m)o(ust)f(b)q(e)h(c) +o(hosen)g(in)h(the)e(t)o(yp)q(es)h(sp)q(eci\014ed)h(in)g(the)e(table.) +20 b(F)l(or)14 b(instance:)325 789 y Fv(\(define-external)19 +b(maximum\(\(a)h(:int\))g(\(b)i(:int\)\))369 838 y(:return-type)d +(:int\))151 997 y FF(de\014nes)14 b(the)e(foreign)h(function)g(maxim)o +(um)f(whic)o(h)h(tak)o(es)f(t)o(w)o(o)f(C)h(in)o(tegers)h(and)f +(returns)g(an)h(in)o(teger)151 1053 y(result.)24 b(Omitting)18 +b(this)f(option)f(default)h(to)f(a)h(result)g(t)o(yp)q(e)f(equal)h(to)f +Fw(:void)g FF(\(i.e.)24 b(the)17 b(returned)151 1110 +y(v)m(alue)g(is)e FD(unde\014ne)n(d)5 b FF(\).)106 1196 +y Fo(\017)22 b Fw(:entry-name)13 b FF(is)i(used)h(to)e(sp)q(ecify)i +(the)e(name)h(of)f(the)h(foreign)g(function)g(in)h(the)f(C)f(w)o(orld.) +20 b(If)15 b(this)151 1245 y(option)h(is)f(omitted,)g(the)g(en)o +(try-name)g(is)h(supp)q(osed)g(to)f(b)q(e)h Fo(h)p FF(name)p +Fo(i)o FF(.)k(F)l(or)15 b(instance:)325 1347 y Fv(\(define-external)k +(minimum\(\(a)h(:int\))g(\(b)i(:int\)\))369 1397 y(:return-type)d(:int) +369 1447 y(:entry-name)41 b("min"\))151 1606 y FF(de\014nes)17 +b(the)f(Sc)o(heme)g(function)h Fw(minimum)d FF(whose)i(application)h +(executes)g(the)e(C)h(function)g(called)151 1662 y Fw(min)p +FF(.)106 1748 y Fo(\017)22 b Fw(:library-name)c FF(is)h(used)h(to)f(sp) +q(ecify)i(the)e(library)h(whic)o(h)g(con)o(tains)g(the)f +(foreign-function.)34 b(If)151 1798 y(necessary)l(,)15 +b(the)h(library)g(is)f(loaded)h(b)q(efore)g(calling)h(the)e(C)g +(function.)21 b(So,)325 1900 y Fv(\(define-external)e(minimum\(\(a)h +(:int\))g(\(b)i(:int\)\))369 1950 y(:return-type)41 b(:int)369 +1999 y(:entry-name)63 b("min")369 2049 y(:library-name)19 +b("libminmax"\))151 2208 y FF(de\014nes)11 b(a)f(function)h(whic)o(h)g +(will)h(execute)f(the)f(function)h Fw(min)f FF(lo)q(cated)g(in)h(the)g +(library)g Fw(libminmax.xx)151 2264 y FF(\(where)k Fw(xx)g +FF(is)h(the)f(su\016x)g(used)h(for)e(shared)h(libraries)i(on)e(the)g +(running)h(system)f(\(generally)i Fw(so)d FF(or)151 2321 +y Fw(sl)p FF(\).)37 2405 y(Hereafter,)h(there)g(are)g(some)g(commen)o +(ted)g(de\014nitions)i(of)e(external)g(functions:)168 +2488 y Fv(\(define-external)k(isatty)h(\(\(fd)h(:int\)\))234 +2538 y(:return-type)e(:boolean\))168 2638 y(\(define-external)g(system) +h(\(\(cmd)h(\(:char)g(*\)\)\))g Fi(;;)g(or)g(\(\(cmd)g(:string\)\))234 +2688 y Fv(:return-type)e(:int\))168 2787 y(\(define-external)g(malloc)h +(\(\(size)h(:ulong\)\))p eop +%%Page: 56 56 +56 55 bop 37 45 a FE(56)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 234 190 a Fv(:return-type)i(\(void)i(*\)\))168 +290 y(\(define-external)e(free)i(\()g(\(p)h(\(:void)e(*\))i(\)\))f(\)) +37 433 y FF(All)c(these)f(functions)g(are)f(de\014ned)h(in)h(the)e(C)g +(standard)g(library)l(,)h(hence)g(it)g(is)g(not)e(necessary)i(to)f(sp)q +(ecify)37 489 y(the)h Fw(:library-name)d FF(option.)106 +582 y Fo(\017)22 b Fw(istty)16 b FF(is)i(declared)g(here)f(as)g(a)f +(function)i(whic)o(h)g(tak)o(es)e(an)h(in)o(teger)g(and)g(returns)g(a)g +(b)q(o)q(olean)g(\(in)151 638 y(fact,)c(the)h(v)m(alue)g(returned)g(b)o +(y)f(the)h(C)f(function)h Fw(isatty)f FF(is)h(an)f Fw(int)p +FF(,)g(but)h(w)o(e)f(ask)g(here)h(to)f(the)g(FFI)151 +695 y(system)i(to)f(translate)h(this)h(result)g(as)e(a)h(b)q(o)q(olean) +h(v)m(alue)h(in)f(the)f(Sc)o(heme)h(w)o(orld\).)106 788 +y Fo(\017)22 b Fw(system)15 b FF(is)h(a)g(function)h(whic)o(h)f(tak)o +(es)f(a)h(string)g(as)f(parameter)g(and)h(returns)g(an)g +Fw(int)p FF(.)21 b(Note)16 b(that)151 844 y(the)f(t)o(yp)q(e)f(of)g +(the)h(parameter,)e(can)i(b)q(e)g(sp)q(eci\014ed)i(as)d(a)g +Fw(\(:char)23 b(*\))14 b FF(or)g Fw(:string)p FF(,)g(as)g(indicated)i +(in)151 901 y(T)l(able)g(4.)106 994 y Fo(\017)22 b Fw(malloc)d +FF(is)i(a)e(function)i(whic)o(h)g(tak)o(es)e(one)h(parameter)f(\(an)g +Fw(unsigned)k(long)h(int)19 b FF(and)h(whic)o(h)151 1051 +y(returns)12 b(a)f Fw(\(:void)23 b(*\))11 b FF(\(or)g +Fw(:dynamic-ptr)p FF(\).)16 b(Sp)q(ecifying)e(that)d(the)h(result)g(is) +g(a)f(dynamic)h(p)q(oin)o(ter)151 1107 y(\(instead)19 +b(of)g(a)g(static)f(one\))h(means)g(that)f(w)o(e)h(w)o(an)o(t)f(that)g +(the)h(Garbage)f(Collector)39 b(tak)o(es)18 b(in)o(to)151 +1163 y(accoun)o(t)d(the)f(area)g(allo)q(cated)i(b)o(y)f(the)f(C)h +(function)g Fw(malloc)f FF(\(i.e.)20 b(if)15 b(this)g(area)f(b)q +(ecomes)i(no)e(more)151 1220 y(accessible,)j(the)e(GC)g(disp)q(oses)h +(it)f(with)h(the)f Fw(free)g FF(function)1207 1203 y +FA(13)1245 1220 y FF(.)106 1313 y Fo(\017)22 b Fw(free)c +FF(is)i(a)e(function)i(whic)o(h)g(tak)o(es)e(a)g(dynamic)i(p)q(oin)o +(ter)g(and)f(deallo)q(cates)h(the)f(area)f(it)h(p)q(oin)o(ts.)151 +1370 y(Since)14 b(the)e(de\014nition)h(of)f(this)g(function)h(sp)q +(eci\014es)h(no)e(result)g(t)o(yp)q(e,)g(it)g(is)h(supp)q(osed)g(to)e +(b)q(e)i Fw(:void)1826 1353 y FA(14)1862 1370 y FF(.)37 +1456 y(External)22 b(functions)g(can)g(also)f(ha)o(v)o(e)g(a)g(v)m +(ariable)i(n)o(um)o(b)q(er)e(of)g(parameters)g(b)o(y)g(using)h(the)f +(standard)37 1506 y(Sc)o(heme)16 b FD(dot)k FF(notation.)g(F)l(or)14 +b(instance,)125 1592 y Fv(\(define-external)k(printf)j(\(\(format)f +(:string\))g(.)i(l\))168 1641 y(:return-type)41 b(:int\))37 +1777 y FF(de\014nes)21 b(a)e(Sc)o(heme)h(function)g(with)g(one)f(or)g +(more)g(parameters)g(\(the)g(\014rst)g(one)g(b)q(eing)i(a)e(string\).) +32 b(Of)37 1827 y(course,)15 b(the)g(parameters)f(whic)o(h)i +(constitute)f(the)g(v)m(ariable)i(parameters)d(list)i(m)o(ust)e(ha)o(v) +o(e)g(a)h(t)o(yp)q(e)g(whic)o(h)37 1877 y(app)q(ears)h(in)g(the)f +(third)h(column)g(of)f(T)l(able)h(4.)j(Some)d(examples)f(using)h(the)g +Fw(printf)e FF(function:)168 1963 y Fv(\(printf)21 b("This)f(is)i(a)f +(\045s)h(test")e("good"\))343 2062 y Fu(=)-7 b Fp(\))21 +b Fi(displays)71 b Fv(This)21 b(is)h(a)f(good)g(test)168 +2112 y(\(printf)g("char:)f('\045c')h(Dec:)g('\04504d')g(Hex)g +('\04504x'")f(#\\space)g(100)i(100\))343 2212 y Fu(=)-7 +b Fp(\))21 b Fi(displays)71 b Fv(char:)21 b(')h(')f(Dec:)g('0100')g +(Hex)g('0064')37 2354 y Fn(Note:)50 b Fu(The)17 b(t)o(yp)q(es)h +Fv(:dynamic-ptr)p Fu(,)d Fv(:static-ptr)g Fu(and)i Fv(:string)e +Fu(are)j(compatible)d(when)j(used)g(for)f(foreign)37 +2411 y(function)f(parameter.)22 b(This)15 b(giv)o(es)g(a)h(seman)o(tic) +e(whic)o(h)h(is)h(similar)d(to)i(the)h(one)g(of)e(C,)h(where)i +Fv(void)k(*)15 b Fu(is)g(a)g(com-)37 2467 y(patible)g(with)g(all)e +(other)j(p)q(oin)o(ter)f(t)o(yp)q(es.)22 b(Ho)o(w)o(ev)o(er,)15 +b(di\013erenciating)g(those)h(t)o(yp)q(es)g(is)f(useful)g(for)f(con)o +(v)o(erting)h(the)37 2524 y(function)f(return)h(v)n(alue)e(to)h(a)g +(prop)q(er)h(Sc)o(heme)e(t)o(yp)q(e.)p 37 2562 735 2 +v 74 2589 a Ft(13)107 2605 y Fs(P)o(oin)o(ters)f(de\014ned)h(with)f +Fq(:dynamic-)o(pt)o(r)c Fs(are)k(alw)o(a)o(ys)g(unallo)q(cated)i(with)e +Fq(free)p Fs(.)j(Consequen)o(tly)m(,)e(areas)f(allo)q(cated)h(with)37 +2650 y(another)h(allo)q(cator)h(than)f(the)f(standard)h(one)g(m)o(ust)f +(b)q(e)g(declared)i(as)e Fq(:static-p)o(tr)d Fs(and)j(freed)g(b)o(y)h +(hand)74 2680 y Ft(14)107 2696 y Fs(Usage)g(of)f(mallo)q(c)j(and)f +(free)e(are)h(for)g(illustratio)q(n)j(purp)q(ose)e(here.)20 +b(Their)15 b(usage)f(in)h(a)f(program)h(m)o(ust)f(b)q(e)g(a)o(v)o +(oided,)i(if)37 2742 y(p)q(ossible,)h(b)q(ecause)e(it)f(can)g(ha)o(v)o +(e)g(in)o(teract)h(badly)h(with)e(the)g(w)o(a)o(y)f(the)h(in)o +(terpreter)i(manages)e(memory)g(or)g(it)h(can)f(conduct)37 +2787 y(to)f Fr(cr)n(ashing)h Fs(programs)g(if)f(y)o(ou)h(don't)f(tak)o +(e)g(care.)p eop +%%Page: 57 57 +57 56 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(57)p 37 64 1838 2 v 37 190 a Fn(Note:)38 b Fu(When)14 +b(a)g(function)g(has)g(a)g Fv(:return-type)e Fu(whic)o(h)i(is)g +Fv(:string)p Fu(,)e Fv(:dynamic-ptr)g Fu(or)i Fv(:static-ptr)p +Fu(,)d(and)37 240 y(the)16 b(return)g(v)n(alue)e(is)g(the)i(C)f +Fv(NULL)e Fu(p)q(oin)o(ter,)i(the)g(Sc)o(heme)g(v)n(alue)f(returned)j +(b)o(y)d(the)h(function)g(is,)f(b)o(y)h(con)o(v)o(en)o(tion,)37 +290 y(equal)h(to)g Fv(#f)p Fu(.)23 b(F)m(or)16 b(instance,)h(the)f(GNU) +g Fv(readline)e Fu(function)i(allo)o(ws)e(line)i(editing)f +Fn(\022)-21 b(a)17 b(la)i Fu(Emacs)c(returns)j Fv(NULL)37 +340 y Fu(when)h(the)g(user)h(has)e(t)o(yp)q(ed)h(an)f(end)h(of)e +(\014le.)32 b(The)18 b(follo)o(wing)e(lines)i(sho)o(w)g(ho)o(w)g(to)g +(mak)o(e)f(a)h(simple)f(shell-lik)o(e)37 390 y(toplev)o(el)d(using)g +(FFIs.)125 501 y Fv(\(define-external)k(system)j(\(\(var)f(\(:char)h +(*\)\)\))168 551 y(:return-type)f(:int\))125 650 y(\(define-external)e +(readline)i(\(\(prompt)g(:string\)\))168 700 y(:library-name)f +("libreadline")168 750 y(:return-type)41 b(:string\))125 +850 y(;;)21 b(A)h(Shell-like)d(toplevel)125 900 y(\(do)i(\(\(l)g +(\(readline)f("?>)h("\))g(\(readline)f("?>)i("\)\)\))212 +949 y(\(\(not)f(l\)\))168 999 y(\(system)g(l\)\))37 1257 +y Fw(\(external-exists?)h FD(entry)t Fw(\))1081 b FF(pro)q(cedure)37 +1313 y Fw(\(external-exists?)22 b FD(entry)i(libr)n(ary)t +Fw(\))929 b FF(pro)q(cedure)37 1392 y(Returns)16 b Fw(#t)f +FF(if)h FD(entry)j FF(is)c(de\014ned)i(as)d(an)i(external)f(sym)o(b)q +(ol)h(in)g FD(libr)n(ary)s FF(.)k(If)c FD(libr)n(ary)j +FF(is)c(not)g(pro)o(vided)h(the)37 1442 y(sym)o(b)q(ol)i(is)g(searc)o +(hed)f(in)h(the)f FB(STk)f FF(in)o(terpreter)i(or)e(in)i(libraries)h +(that)d(it)i(uses.)25 b(This)18 b(function)g(can)f(b)q(e)37 +1491 y(useful)g(to)d(de\014ne)j(external)e(functions)h(conditionally:) +168 1603 y Fv(\(when)21 b(\(external-exists?)d("dup2"\))234 +1653 y(\(define-external)g(dup2)j(\(\(oldfd)f(:int\))h(\(newfd)g +(:int\)\))299 1702 y(:return-type)e(:int\)\))37 1960 +y Fw(\(c-string->string)j FD(str)5 b Fw(\))1130 b FF(pro)q(cedure)37 +2038 y(STk)11 b(strings)f(are)g(more)f(general)i(than)f(C)g(strings)g +(since)h(they)f(accept)h(n)o(ull)g(c)o(haracter.)18 b +Fw(c-string->string)37 2088 y FF(tak)o(es)c(an)g(area)f(of)h(c)o +(haracters)f(built)i(b)o(y)f(a)g(call)h(to)f(a)f(foreign)h(function)h +(\(t)o(ypically)g(the)f(result)h(of)f(a)f(func-)37 2138 +y(tion)h(returning)g(a)f Fw(:static-ptr)p FF(,)f Fw(:dynamic-ptr)g +FF(or)h Fw(:string)p FF(\))f(and)i(con)o(v)o(ert)f(it)h(to)e(a)i(prop)q +(er)f(Sc)o(heme)37 2188 y(string.)125 2299 y Fv(\(define-external)18 +b(sprintf)i(\(\(str)h(:string\))f(\(format)h(:string\))f(.)h(l\))190 +2349 y(:return-type)41 b(:int\))125 2449 y(\(let)21 b(\(\(str)f +(\(make-string)g(5)h(#\\?\)\)\))168 2498 y(\(sprintf)f(str)i("\045x")f +(100\))168 2548 y(\(cons)g(str)g(\(C-string->string)d(str\)\)\))343 +2648 y Fu(=)-7 b Fp(\))21 b Fv(\("64\\0??")f(.)i("64"\))p +eop +%%Page: 58 58 +58 57 bop 37 45 a FE(58)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FI(6.25)56 b(Miscellaneous)37 +277 y FF(This)16 b(section)g(lists)g(the)f(primitiv)o(es)i(de\014ned)f +(in)g FB(STk)f FF(that)f(did)j(not)e(\014t)g(an)o(ywhere)g(else.)37 +396 y Fw(\(eval)24 b Fo(h)p FF(expr)p Fo(i)o Fw(\))1418 +b FF(syn)o(tax)37 452 y Fw(\(eval)24 b Fo(h)p FF(expr)p +Fo(i)f(h)p FF(en)o(vironmen)o(t)p Fo(i)p Fw(\))1112 b +FF(syn)o(tax)37 526 y(Ev)m(aluates)16 b Fo(h)p FF(expr)p +Fo(i)g FF(in)g(the)f(giv)o(en)h(en)o(vironmen)o(t.)21 +b Fo(h)p FF(En)o(vironmen)o(t)p Fo(i)15 b FF(ma)o(y)g(b)q(e)h(omitted,) +g(in)g(whic)o(h)g(case)g(it)37 576 y(defaults)g(to)f(the)g(global)h(en) +o(vironmen)o(t.)125 665 y Fv(\(define)k(foo)h(\(let)g(\(\(a)g(1\)\))g +(\(lambda)g(\(\))g(a\)\)\))125 715 y(\(foo\))500 b Fu(=)-7 +b Fp(\))22 b Fv(1)125 765 y(\(eval)e('\(set!)h(a)h(2\))f +(\(procedure-enviro)o(nment)d(foo\)\))125 815 y(\(foo\))500 +b Fu(=)-7 b Fp(\))22 b Fv(2)37 1024 y Fw(\(version)o(\))1427 +b FF(pro)q(cedure)37 1105 y(returns)16 b(a)e(string)i(iden)o(tifying)h +(the)e(curren)o(t)g(v)o(ersion)g(of)g FB(STk)p FF(.)37 +1225 y Fw(\(machine-type)o(\))1307 b FF(pro)q(cedure)37 +1306 y(returns)17 b(a)f(string)h(iden)o(tifying)i(the)d(kind)i(of)e +(mac)o(hine)i(whic)o(h)f(is)h(running)f(the)g(in)o(terpreter.)25 +b(The)17 b(form)37 1362 y(of)e(the)h(result)f(is)h Fw +([os-name]-[os-version]-[p)o(rocessor)o(-type])p FF(.)37 +1483 y Fw(\(random)23 b FD(n)s Fw(\))1398 b FF(pro)q(cedure)37 +1564 y(returns)16 b(an)f(in)o(teger)g(in)h(the)f(range)g(0,)g +FD(n)e Fo(\000)d FF(1)15 b(inclusiv)o(e.)37 1685 y Fw +(\(set-random-seed!)22 b FD(se)n(e)n(d)5 b Fw(\))1103 +b FF(pro)q(cedure)37 1765 y(Set)18 b(the)f(random)g(seed)h(to)f(the)g +(sp)q(eci\014ed)j FD(se)n(e)n(d)s FF(.)27 b Fw(Seed)16 +b FF(m)o(ust)h(b)q(e)h(an)f(in)o(teger)h(whic)o(h)g(\014ts)f(in)h(a)f +(C)h Fw(long)37 1822 y(int)p FF(.)37 1942 y Fw(\(eval-string)23 +b FD(string)g(envir)n(onment)t Fw(\))919 b FF(pro)q(cedure)37 +2016 y(Ev)m(aluates)16 b(the)f(con)o(ten)o(ts)f(of)g(the)h(giv)o(en)g +FD(string)j FF(in)d(the)g(giv)o(en)g FD(envir)n(onment)j +FF(and)d(returns)g(its)g(result.)20 b(If)37 2066 y FD(envir)n(onment)e +FF(is)d(omitted)f(it)h(defaults)g(to)e(the)i(global)g(en)o(vironmen)o +(t.)20 b(If)14 b(ev)m(aluation)i(leads)f(to)f(an)g(error,)37 +2116 y(the)i(result)f(of)g Fw(eval-string)f FF(is)i(unde\014ned.)125 +2205 y Fv(\(define)k(x)i(1\))125 2255 y(\(eval-string)d("\(+)i(x)h +(1\)"\))343 2305 y Fu(=)-7 b Fp(\))21 b Fv(2)125 2355 +y(\(eval-string)e("x")i(\(let)g(\(\(x)g(2\)\))g +(\(the-environment\)\)\))343 2405 y Fu(=)-7 b Fp(\))21 +b Fv(2)37 2614 y Fw(\(read-from-string)h Fo(h)p FF(string)p +Fo(i)o Fw(\))1039 b FF(pro)q(cedure)37 2688 y(P)o(erforms)18 +b(a)h(read)g(from)f(the)h(giv)o(en)g FD(string)t FF(.)31 +b(If)19 b FD(string)j FF(is)d(the)h(empt)o(y)e(string,)i(an)e(end)i(of) +f(\014le)h(ob)s(ject)37 2738 y(is)j(returned.)39 b(If)22 +b(an)f(error)g(o)q(ccurs)h(during)g(string)g(reading,)h(the)f(result)g +(of)f Fw(read-from-string)e FF(is)37 2787 y(unde\014ned.)p +eop +%%Page: 59 59 +59 58 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(59)p 37 64 1838 2 v 125 190 a Fv(\(read-from-strin)o(g)19 +b("123)i(456"\))343 240 y Fu(=)-7 b Fp(\))21 b Fv(123)125 +290 y(\(read-from-strin)o(g)e(""\))343 340 y Fu(=)-7 +b Fp(\))21 b Fv(an)h(eof)f(object)37 537 y Fw(\(dump)j +FD(string)t Fw(\))1356 b FF(pro)q(cedure)37 617 y Fw(Dump)15 +b FF(grabs)f(the)h(curren)o(t)g(con)o(tin)o(uation)30 +b(and)16 b(creates)e(an)h(image)g(of)g(the)g(curren)o(t)g +FB(STk)f FF(in)o(terpreter)h(in)37 673 y(the)h(\014le)h(whose)e(name)h +(is)g FD(string)609 657 y FA(15)647 673 y FF(.)21 b(This)16 +b(image)g(can)g(b)q(e)g(used)g(later)g(to)f(restart)f(the)i(in)o +(terpreter)g(from)37 730 y(the)g(sa)o(v)o(ed)f(state.)k(See)c(the)h +FB(STk)e FF(man)h(page)g(ab)q(out)g(the)h Fw(-image)e +FF(option)h(for)g(more)g(details.)37 786 y Fn(Note:)37 +b Fu(Image)12 b(creation)j(cannot)f(b)q(e)g(done)g(if)f(Tk)h(is)g +(initialized.)37 899 y Fw(\(trace-var)23 b FD(symb)n(ol)g(thunk)5 +b Fw(\))1086 b FF(pro)q(cedure)37 973 y Fw(Trace-var)13 +b FF(call)i(the)f(giv)o(en)g FD(thunk)19 b FF(when)14 +b(the)g(v)m(alue)h(of)e(the)h(v)m(ariable)h(denoted)f(b)o(y)g +FD(symb)n(ol)k FF(is)c(c)o(hanged.)125 1106 y Fv(\(define)20 +b(x)i(1\))125 1156 y(\(define)e(y)i(0\))125 1206 y(\(trace-var)d('x)j +(\(lambda)e(\(\))h(\(set!)g(y)h(1\)\)\))125 1256 y(\(set!)e(x)i(2\))125 +1305 y(\(cons)e(x)i(y\))343 1355 y Fu(=)-7 b Fp(\))21 +b Fv(\(2)h(.)f(1\))37 1489 y Fn(Note:)42 b Fu(Sev)o(eral)15 +b(traces)i(can)e(b)q(e)h(asso)q(ciated)g(with)e(a)h(single)g(sym)o(b)q +(ol.)20 b(They)15 b(are)h(executed)h(in)d(rev)o(erse)j(order)f(to)37 +1539 y(their)f(de\014nition.)i(F)m(or)d(instance,)g(the)h(execution)f +(of)125 1622 y Fv(\(begin)168 1672 y(\(trace-var)20 b('z)h(\(lambda)g +(\(\))g(\(display)f("One"\)\)\))168 1722 y(\(trace-var)g('z)h(\(lambda) +g(\(\))g(\(display)f("Two"\)\)\))168 1772 y(\(set!)h(z)h(10\)\))37 +1912 y Fu(will)13 b(displa)o(y)g(the)h(string)g Fv("Two")f +Fu(b)q(efore)i(the)f(string)g Fv("One")f Fu(on)h(the)g(curren)o(t)h +(output)g(p)q(ort.)37 2025 y Fw(\(untrace-var)23 b FD(symb)n(ol)5 +b Fw(\))1170 b FF(pro)q(cedure)37 2105 y(Deletes)16 b(all)g(the)g +(traces)e(asso)q(ciated)i(to)e(the)i(v)m(ariable)g(denoted)g(b)o(y)f +FD(symb)n(ol)t FF(.)37 2218 y Fw(\(error)24 b FD(string)f +Fz(str)q(ing)466 2225 y FA(1)509 2218 y Fz(obj)570 2225 +y FA(2)613 2218 y Fz(:)8 b(:)g(:)e Fw(\))981 b FF(pro)q(cedure)37 +2298 y Fw(error)22 b FF(prin)o(ts)h(the)f FD(obj)7 b +FF(s)22 b(according)g(to)g(the)g(sp)q(eci\014cation)j(giv)o(en)d(in)h +FD(string)j FF(on)c(the)h(curren)o(t)f(error)37 2355 +y(p)q(ort)c(\(or)f(in)i(an)f(error)f(windo)o(w)h(if)h(Tk)e(is)i +(initialized\).)31 b(The)18 b(sp)q(eci\014cation)i(string)e(follo)o(ws) +g(the)g(\\tilde)37 2411 y(con)o(v)o(en)o(tions")c(of)f +Fw(format)p FF(\(see)g(6.10\).)18 b(Once)d(the)f(message)f(is)h(prin)o +(ted,)h(execution)g(returns)e(to)g(toplev)o(el.)37 2581 +y Fw(\(gc\))1546 b FF(pro)q(cedure)37 2661 y(Runs)17 +b(the)e(garbage)f(collector.)21 b(See)16 b(6.18)e(for)g(the)h(signals)h +(asso)q(ciated)g(to)e(garbage)h(collection.)p 37 2699 +735 2 v 74 2726 a Ft(15)107 2742 y Fs(Image)f(creation)h(is)g(not)f(y)o +(et)g(implemen)o(ted)j(on)d(all)h(systems.)21 b(The)14 +b(curren)o(t)h(v)o(ersion)g(\(3.99\))f(allo)o(ws)i(image)f(dumping)37 +2787 y(only)g(on)e(some)g(platforms:)18 b(SunOs)c(4.1.x,)f(Lin)o(ux)h +(1,)f(F)m(reeBsd)p eop +%%Page: 60 60 +60 59 bop 37 45 a FE(60)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(gc-stats)o(\))1403 b FF(pro)q(cedure)37 +271 y(Pro)o(vides)14 b(some)f(statistics)h(ab)q(out)f(curren)o(t)g +(memory)g(usage.)19 b(This)14 b(pro)q(cedure)h(is)f(primarily)g(for)f +(debug-)37 327 y(ging)j(the)f FB(STk)g FF(in)o(terpreter,)g(hence)h +(its)f(w)o(eird)h(prin)o(ting)g(format.)37 440 y Fw(\(expand-heap)23 +b FD(n)s Fw(\))1278 b FF(pro)q(cedure)37 521 y(Expand)18 +b(the)f(heap)g(so)f(that)h(it)g(will)h(con)o(tains)f(at)f(least)h +FD(n)j FF(cells.)27 b(Normally)l(,)17 b(the)g(heap)h(automatically)37 +577 y(gro)o(ws)e(when)h(more)f(memory)f(is)i(needed.)25 +b(Ho)o(w)o(ev)o(er,)16 b(using)h(only)g(automatic)f(heap)g(gro)o(wing)g +(is)h(some-)37 633 y(times)h(v)o(ery)e(p)q(enalizin)q(g.)28 +b(This)17 b(is)h(particularly)g(true)f(for)f(programs)g(whic)o(h)i +(uses)f(a)g(lot)g(of)g(temp)q(orary)37 690 y(data)11 +b(\(whic)o(h)h(are)f(not)g(p)q(oin)o(ted)h(b)o(y)g(an)o(y)f(a)g(v)m +(ariable\))h(and)g(a)f(small)h(amoun)o(t)f(of)g(global)h(data.)18 +b(In)12 b(this)f(case,)37 746 y(the)18 b(garbage)g(collector)g(will)i +(b)q(e)e(often)g(called)h(and)g(the)f(heap)g(will)h(not)f(b)q(e)h +(automatically)f(expanded)37 803 y(\(since)k(most)d(of)h(the)g +(consumed)h(heap)f(will)i(b)q(e)f(reclaimed)h(b)o(y)e(the)g(GC\).)f +(This)i(could)g(b)q(e)g(anno)o(ying)37 859 y(sp)q(ecially)d(for)d +(program)f(where)h(resp)q(onse)h(time)f(is)h(critical.)21 +b(Using)16 b Fw(expand-heap)d FF(p)q(ermits)j(to)e(enlarge)37 +916 y(the)g(heap)f(size)h(\(whic)o(h)g(is)g(set)e(to)h(20000)f(cells)i +(b)o(y)f(default\),)h(to)e(a)o(v)o(oid)h(those)g(con)o(tin)o(ual)h +(calls)g(to)f(the)g(GC.)37 1086 y Fw(\(get-internal-info)n(\))1188 +b FF(pro)q(cedure)37 1166 y(Returns)16 b(a)f(7-length)h(v)o(ector)e +(whic)o(h)i(con)o(tains)g(the)f(follo)o(wing)h(informations:)106 +1257 y(0)22 b(total)15 b(cpu)h(used)f(in)h(milli-second)q(s)106 +1349 y(1)22 b(n)o(um)o(b)q(er)16 b(of)e(cells)j(curren)o(tly)f(in)g +(use.)106 1442 y(2)22 b(total)15 b(n)o(um)o(b)q(er)g(of)g(allo)q(cated) +h(cells)106 1534 y(3)22 b(n)o(um)o(b)q(er)16 b(of)e(cells)j(used)f +(since)g(the)g(last)f(call)h(to)f Fw(get-internal-info)106 +1627 y FF(4)22 b(n)o(um)o(b)q(er)16 b(of)e(gc)i(runs)106 +1720 y(5)22 b(total)15 b(time)g(used)h(in)g(the)f(gc)106 +1812 y(6)22 b(a)15 b(b)q(o)q(olean)h(indicating)h(if)f(Tk)f(is)h +(initialized)37 1960 y Fw(\(sort)24 b FD(obj)g(pr)n(e)n(dic)n(ate)s +Fw(\))1215 b FF(pro)q(cedure)37 2034 y FD(Obj)26 b FF(m)o(ust)19 +b(b)q(e)h(a)f(list)h(or)f(a)g(v)o(ector.)32 b Fw(Sort)19 +b FF(returns)g(a)g(cop)o(y)h(of)f FD(obj)26 b FF(sorted)19 +b(according)h(to)e FD(pr)n(e)n(dic)n(ate)s FF(.)37 2083 +y FD(Pr)n(e)n(dic)n(ate)e FF(m)o(ust)d(b)q(e)g(a)g(pro)q(cedure)h(whic) +o(h)g(tak)o(es)e(t)o(w)o(o)g(argumen)o(ts)g(and)h(returns)g(a)g(true)g +(v)m(alue)h(if)f(the)g(\014rst)37 2133 y(argumen)o(t)i(is)h(strictly)f +(\\b)q(efore")g(the)h(second.)125 2217 y Fv(\(sort)k('\(1)i(2)f(-4)h +(12)f(9)h(-1)f(2)g(3\))h(<\))735 2267 y Fu(=)-7 b Fp(\))22 +b Fv(\(-4)f(-1)g(1)h(2)f(2)h(3)f(9)h(12\))125 2317 y(\(sort)e(#\("one") +h("two")g("three")f("four"\))255 2367 y(\(lambda)h(\(x)g(y\))h(\(>)f +(\(string-length)e(x\))i(\(string-length)e(y\)\)\)\))735 +2417 y Fu(=)-7 b Fp(\))22 b Fv(#\("three")d("four")i("one")g("two"\))53 +2614 y Fw(\(uncode)i FD(form)s Fw(\))1315 b FF(pro)q(cedure)37 +2688 y(When)14 b FB(STk)f FF(ev)m(aluates)h(an)f(expression)h(it)f +(enco)q(des)h(it)g(so)f(that)f(further)h(ev)m(aluations)i(of)d(this)i +(expression)37 2738 y(will)h(b)q(e)f(more)f(e\016cien)o(t.)20 +b(Since)15 b(enco)q(ded)g(forms)d(are)h(generally)i(di\016cult)g(to)d +(read,)h Fw(uncode)g FF(can)g(b)q(e)h(used)37 2787 y(to)h +(\(re-\)obtain)g(the)g(original)i(form.)p eop +%%Page: 61 61 +61 60 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(61)p 37 64 1838 2 v 125 190 a Fv(\(define)20 b(\(foo)h(a)h(b\))190 +240 y(\(let)f(\(\(x)g(a\))h(\(y)f(\(+)g(b)h(1\)\)\))f(\(cons)g(x)g +(y\)\)\))125 340 y(\(procedure-body)d(foo\))735 390 y +Fu(=)-7 b Fp(\))22 b Fv(\(lambda)e(\(a)h(b\))626 439 +y(\(let)g(\(\(x)g(a\))g(\(y)h(\(+)f(b)h(1\)\)\))f(\(cons)f(x)i(y\)\)\)) +125 489 y(\(foo)f(1)g(2\))414 b Fu(=)-7 b Fp(\))22 b +Fv(\(1)f(.)h(3\))125 539 y(\(procedure-body)c(foo\))735 +589 y Fu(=)-7 b Fp(\))43 b Fv(\(lambda)21 b(\(a)g(b\))626 +639 y(\(#let)g(\(x)g(y\))757 689 y(\(#)778 +738 y(\(#)i(#)e(1\)\))669 +788 y(\(#)h(#)1018 +838 y(#\)\)\))125 938 y(\(uncode)f +(\(procedure-body)f(foo\)\))735 987 y Fu(=)-7 b Fp(\))22 +b Fv(\(lambda)e(\(a)h(b\))648 1037 y(\(let)g(\(\(x)g(a\))g(\(y)h(\(+)f +(b)h(1\)\)\))f(\(cons)f(x)i(y\)\)\))37 1184 y Fn(Note:)34 +b Fu(When)12 b(a)e(macro)g(has)h(b)q(een)i(directly)e(expanded)h(in)o +(to)e(the)i(macro)e(call)g(co)q(de,)i(it)f(is)f(not)h(p)q(ossible)h(to) +f(retriev)o(e)37 1241 y(the)k(original)d(macro)h(call.)k(Set)d +Fv(*debug*)f Fu(to)h Fv(#t)f Fu(to)h(a)o(v)o(oid)e(macro)h(expansion)h +(in-lining.)37 1365 y Fw(\(time)24 b Fo(h)p FF(expr)p +Fo(i)o Fw(\))1427 b FF(macro)37 1446 y(Ev)m(aluates)20 +b(the)f(expression)h Fo(h)p FF(expr)p Fo(i)e FF(in)i(the)f(curren)o(t)g +(en)o(vironmen)o(t.)31 b(Prin)o(ts)19 b(the)g(elapsed)h(CPU)f(time)37 +1502 y(and)d(the)f(n)o(um)o(b)q(er)h(of)e(conses)i(used)g(b)q(efore)f +(returning)h(the)f(result)h(of)f(this)g(ev)m(aluation.)37 +1626 y Fw(\(apropos)23 b FD(symb)n(ol)5 b Fw(\))1266 +b FF(pro)q(cedure)37 1701 y Fw(Apropos)11 b FF(returns)g(a)g(list)i(of) +e(sym)o(b)q(ol)g(whose)h(prin)o(t)g(name)f(con)o(tains)h(the)f(c)o +(haracters)g(of)g FD(symb)n(ol)t FF(.)18 b(Sym)o(b)q(ols)37 +1750 y(are)d(searc)o(hed)h(for)e(in)i(the)g(curren)o(t)f(en)o(vironmen) +o(t.)125 1842 y Fv(\(apropos)20 b('cadd\))343 1892 y +Fu(=)-7 b Fp(\))21 b Fv(\(caddar)g(caddr)f(cadddr\))37 +2105 y Fw(\(inspect)j FD(obj)7 b Fw(\))1338 b FF(pro)q(cedure)37 +2186 y Fw(Inspect)11 b FF(p)q(ermits)h(to)f(graphically)i(insp)q(ect)g +(an)f(ob)s(ject.)18 b(The)12 b(\014rst)f(call)i(of)e(this)h(pro)q +(cedure)h(creates)e(a)g(top)37 2243 y(lev)o(el)17 b(windo)o(w)f(con)o +(taining)g(the)g(ob)s(ject)f(to)g(insp)q(ect)i(and)f(its)f(curren)o(t)h +(v)m(alue.)22 b(If)16 b(the)f(insp)q(ector)i(windo)o(w)37 +2299 y(is)k(already)e(on)h(screen,)h FD(obj)26 b FF(will)21 +b(b)q(e)f(app)q(ended)i(to)c(the)i(list)g(of)g(insp)q(ected)h(ob)s +(jects.)32 b(The)20 b(insp)q(ector)37 2356 y(windo)o(w)c(con)o(tains)f +(men)o(us)g(whic)o(h)g(p)q(ermit)h(to)e(call)i(the)f(view)o(er)g(or)g +(detailer)g(on)g(eac)o(h)g(insp)q(ected)i(ob)s(ject.)37 +2412 y(See)f(the)f(on-line)i(do)q(cumen)o(tation)e(for)f(further)h +(details.)21 b(A)14 b(view)i(of)e(the)h(general)h(insp)q(ector)f(is)h +(giv)o(en)f(in)37 2469 y(\014gure)h(1.)37 2526 y Fn(Note:)37 +b Fu(Tk)14 b(m)o(ust)f(b)q(e)h(initialized)f(to)g(use)i +Fv(inspect)p Fu(.)37 2650 y Fw(\(view)24 b FD(obj)7 b +Fw(\))1409 b FF(pro)q(cedure)37 2731 y Fw(View)14 b FF(p)q(ermits)h(to) +f(obtain)g(a)g(graphical)h(represen)o(tation)g(of)e(an)i +FB(STk)e FF(ob)s(ject.)19 b(The)c(t)o(yp)q(e)f(of)g(represen)o(ta-)37 +2787 y(tion)i(dep)q(ends)i(on)d(the)h(t)o(yp)q(e)g(of)f(the)h(view)o +(ed)h(ob)s(ject.)j(Here)c(again,)g(men)o(us)g(are)f(pro)o(vided)i(to)e +(switc)o(h)h(to)p eop +%%Page: 62 62 +62 61 bop 37 45 a FE(62)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 169 748 a @beginspecial 37 @llx 367 @lly 415 @urx 467 @ury 3780 @rwi @setspecial %%BeginDocument: Inspector.ps @@ -8367,8 +8705,8 @@ end origstate restore %%EndDocument - @endspecial 651 845 a FD(Figure)g(1:)k(A)c(view)g(of)f(the)h(Insp)q -(ector)321 2520 y @beginspecial 37 @llx 171 @lly 342 + @endspecial 622 846 a FF(Figure)f(1:)j(A)d(view)f(of)g(the)g(Insp)q +(ector)321 2494 y @beginspecial 37 @llx 171 @lly 342 @urx 467 @ury 3050 @rwi @setspecial %%BeginDocument: View.ps @@ -12473,11 +12811,11 @@ end origstate restore %%EndDocument - @endspecial 673 2611 a(Figure)g(2:)k(A)c(view)g(of)f(the)i(View)o(er)p + @endspecial 646 2592 a(Figure)h(2:)j(A)d(view)f(of)g(the)h(View)o(er)p eop -%%Page: 55 55 -55 54 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(55)p 75 64 1763 2 v 379 2220 a @beginspecial 37 @llx +%%Page: 63 63 +63 62 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(63)p 37 64 1838 2 v 379 1728 a @beginspecial 37 @llx 87 @lly 314 @urx 467 @ury 2770 @rwi @setspecial %%BeginDocument: Detail.ps @@ -17262,404 +17600,528 @@ end origstate restore %%EndDocument - @endspecial 663 2311 a FD(Figure)14 b(3:)k(A)c(view)g(of)f(the)h -(Detailer)p eop -%%Page: 56 56 -56 55 bop 75 47 a FC(56)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FD(or)k(to)f(the)h(view)o(er.)30 -b(See)19 b(the)f(on-line)f(do)q(cumen)o(tation)f(for)h(more)g(details.) -29 b(Figure)18 b(3)f(sho)o(ws)h(the)g(detailer)75 229 -y(examining)11 b(a)j FB(tk-c)n(ommand)p FD(.)75 278 y -Fl(Note:)32 b Fs(Tk)13 b(m)o(ust)g(b)q(e)h(initialize)q(d)i(to)d(use)g -Ft(detail)p Fs(.)75 384 y Fu(\(quit)21 b FB(r)n(etc)n(o)n(de)s -Fu(\))1303 b FD(pro)q(cedure)75 433 y Fu(\(quit)o(\))1453 -b FD(pro)q(cedure)75 483 y Fu(\(exit)21 b FB(r)n(etc)n(o)n(de)s -Fu(\))1303 b FD(pro)q(cedure)75 533 y Fu(\(exit)o(\))1453 -b FD(pro)q(cedure)75 583 y Fu(\(bye)21 b FB(r)n(etc)n(o)n(de)s -Fu(\))1325 b FD(pro)q(cedure)75 633 y Fu(\(bye)o(\))1475 -b FD(pro)q(cedure)75 706 y(Exits)20 b(the)h Fz(STk)g -FD(in)o(terpreter)h(with)e(the)g(sp)q(eci\014ed)i(in)o(teger)f(return)g -(co)q(de.)38 b(If)20 b(omitted,)g(the)h(in)o(terpreter)75 -756 y(terminates)14 b(with)f(a)h(return)h(co)q(de)g(of)e(0.)p + @endspecial 635 1826 a FF(Figure)16 b(3:)j(A)d(view)f(of)g(the)g +(Detailer)37 1964 y(the)h(insp)q(ector)g(or)f(to)g(the)g(detailer.)22 +b(See)16 b(the)g(on-line)h(do)q(cumen)o(tation)f(for)e(more)h(details.) +22 b(A)15 b(snapshot)37 2020 y(of)g(the)h(view)o(er)f(is)h(giv)o(en)f +(in)i(\014gure)e(2.)37 2077 y Fn(Note:)37 b Fu(Tk)14 +b(m)o(ust)f(b)q(e)h(initialized)f(to)g(use)i Fv(view)p +Fu(.)37 2194 y Fw(\(detail)23 b FD(obj)7 b Fw(\))1362 +b FF(pro)q(cedure)37 2274 y Fw(detail)21 b FF(p)q(ermits)g(to)f(displa) +o(y)i(the)f(\014elds)h(of)f(a)f(comp)q(osite)i(Sc)o(heme)f(ob)s(ject.) +36 b(The)21 b(t)o(yp)q(e)g(of)g(detailer)37 2331 y(dep)q(ends)c(on)f +(the)f(t)o(yp)q(e)g(of)g(the)h(comp)q(osite)f(ob)s(ject)g(detailed.)22 +b(Here)15 b(again,)g(men)o(us)h(are)f(pro)o(vided)h(to)f(go)37 +2387 y(to)i(the)f(insp)q(ector)i(or)e(to)g(the)h(view)o(er.)25 +b(See)17 b(the)g(on-line)h(do)q(cumen)o(tation)g(for)e(more)g(details.) +25 b(Figure)17 b(3)37 2444 y(sho)o(ws)e(the)g(detailer)i(examining)f(a) +f FD(tk-c)n(ommand)p FF(.)37 2500 y Fn(Note:)37 b Fu(Tk)14 +b(m)o(ust)f(b)q(e)h(initialized)f(to)g(use)i Fv(detail)p +Fu(.)37 2618 y Fw(\(quit)24 b FD(r)n(etc)n(o)n(de)s Fw(\))1334 +b FF(pro)q(cedure)37 2674 y Fw(\(quit\))1498 b FF(pro)q(cedure)37 +2731 y Fw(\(exit)24 b FD(r)n(etc)n(o)n(de)s Fw(\))1334 +b FF(pro)q(cedure)37 2787 y Fw(\(exit\))1498 b FF(pro)q(cedure)p eop -%%Page: 57 57 -57 56 bop 809 1059 a FH(P)m(art)32 b(I)s(I)741 1266 y -FA(Annexes)935 2924 y FD(57)p eop -%%Page: 58 58 -58 57 bop eop -%%Page: 59 59 -59 58 bop 75 490 a FH(App)s(endix)33 b(A)75 698 y FA(Using)39 -b(the)f(Tk)h(to)s(olkit)75 914 y FD(When)13 b Fz(STk)g -FD(detects)i(that)e(a)f FB(tk-c)n(ommand)18 b FD(m)o(ust)12 -b(b)q(e)h(called,)f(parameters)h(are)g(pro)q(cessed)i(to)e(b)q(e)g -(recognized)75 964 y(b)o(y)18 b(the)g(corresp)q(onding)h(to)q(olkit)d -(function.)30 b(Since)18 b(the)h(Tk)e(to)q(olkit)g(is)h(left)f -(\(mostly\))g(unmo)q(di\014ed,)g(all)f(its)75 1014 y(primitiv)o(es)g -(\\think")h(there)j(is)d(a)h(running)g(Tcl)g(in)o(terpreter)h(b)q -(ehind)g(the)f(scene.)32 b(Consequen)o(tly)m(,)19 b(to)f(w)o(ork)75 -1064 y(with)h(the)h(Tk)f(to)q(olkit,)g(a)f(little)h(set)h(of)f -(rewriting)g(rules)g(m)o(ust)g(b)q(e)g(kno)o(wn.)34 b(These)20 -b(rules)g(are)g(describ)q(ed)75 1113 y(hereafter.)75 -1163 y Fl(Note:)36 b Fs(This)14 b(app)q(endix)i(is)f(placed)g(here)f -(to)g(p)q(ermit)h(an)f Fj(STk)f Fs(user)i(to)e(mak)o(e)h(programs)h -(with)f(the)g(original)j(Tcl/Tk)75 1213 y(do)q(cumen)o(tation)g(b)o(y)e -(hand.)23 b(In)15 b(no)g(case)g(will)i(it)e(substitute)h(to)f(the)g -(abundan)o(t)h(Tcl/Tk)g(man)o(ual)g(pages)f(nor)g(to)g(the)75 -1263 y(excellen)o(t)g(b)q(o)q(ok)f(b)o(y)f(J.)f(Ousterhout[11)r(])75 -1401 y Fw(1)67 b(Calling)24 b(a)e(Tk-command)75 1492 -y FD(Since)13 b(Tcl)f(uses)i(strings)f(to)f(comm)o(unicate)e(with)i -(the)h(Tk)f(to)q(olkit,)f(parameters)i(to)f(a)g FB(Tk-c)n(ommand)17 -b FD(m)o(ust)12 b(b)q(e)75 1542 y(translated)i(to)g(strings)h(b)q -(efore)f(calling)f(the)i(C)e(function)h(whic)o(h)g(implemen)o(t)d(it.) -18 b(The)c(follo)o(wing)e(con)o(v)o(ersions)75 1592 y(are)i(done,)g -(dep)q(ending)g(on)g(the)h(t)o(yp)q(e)f(of)f(the)i(parameter)e(that)h -Fz(STk)h FD(m)o(ust)d(giv)o(e)i(to)f(the)i(to)q(olkit:)179 -1676 y FC(sym)o(b)q(ol:)k FD(the)c(prin)o(t)e(name)g(of)g(the)i(sym)o -(b)q(ol;)179 1742 y FC(n)o(um)o(b)q(er:)j FD(the)d(external)f(represen) -o(tation)i(of)d(the)h(n)o(um)o(b)q(er)g(expressed)i(in)d(radix)h(10;) -179 1809 y FC(string:)k FD(no)c(con)o(v)o(ersion;)179 -1876 y FC(k)o(eyw)o(ord:)20 b FD(the)11 b(prin)o(t)f(name)f(of)h(the)g -(k)o(eyw)o(ord)h(where)g(the)g(initial)d(semicolon)h(has)h(b)q(een)i -(replaced)270 1926 y(b)o(y)i(a)f(dash)h(\(\\-"\);)179 -1993 y FC(b)q(o)q(olean:)20 b FD(the)14 b(string)g("0")f(if)g -Fu(#f)h FD(and)f("1")g(if)g Fu(#t)179 2059 y FC(tk-command:)19 -b FD(the)c(name)e(of)g(the)h FB(tk-c)n(ommand)179 2126 -y FC(closure:)19 b FD(the)c(address)g(of)e(the)h(closure)h(using)f(the) -g(represen)o(tation)i(sho)o(wn)e(in)f(6.17.)179 2193 -y FC(otherwise:)19 b FD(the)14 b(external)h(\\slashi\014ed")e(v)o -(ersion)h(of)f(the)i(ob)r(ject.)75 2272 y(As)c(an)g(example,)f(let)h -(us)h(mak)o(e)d(a)i(button)g(with)g(a)g(lab)q(el)f(con)o(taining)g(the) -i(string)f Fu("Hello,)20 b(word")p FD(.)c(According)75 -2318 y(the)e(original)f(Tk/Tcl)g(do)q(cumen)o(tation,)f(this)i(can)g(b) -q(e)h(done)f(in)f(Tcl)h(with)153 2398 y Ft(button)k(.hello)f(-text)h -("Hello,)f(world")75 2523 y FD(F)m(ollo)o(wing)11 b(the)k(rewriting)f -(rules)g(expressed)i(ab)q(o)o(v)o(e,)d(this)h(can)g(b)q(e)h(done)f(in)g -Fz(STk)g FD(with)153 2602 y Ft(\(button)j('.hello)g('-text)h("Hello,)e -(world"\))75 2728 y FD(This)c(call)g(de\014nes)h(a)f(new)h(widget)f(ob) -r(ject)h(whic)o(h)f(is)g(stored)i(in)d(the)i Fz(STk)g -FD(v)n(ariable)e Fu(.hello)p FD(.)16 b(This)c(ob)r(ject)h(can)75 -2773 y(b)q(e)j(used)g(as)f(a)g(pro)q(cedure)j(to)d(customize)g(our)g -(button.)23 b(F)m(or)14 b(instance,)i(setting)g(the)g(b)q(order)g(of)f -(this)g(button)75 2819 y(to)f(5)f(pixels)h(wide)g(and)g(its)f(bac)o -(kground)h(to)g(gra)o(y)f(w)o(ould)g(b)q(e)i(done)f(in)g(Tcl)f(with)935 -2924 y(59)p eop -%%Page: 60 60 -60 59 bop 75 47 a FC(60)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 153 179 a Ft(.hello)k(configure)e(-border)h(5)i -(-backgroun)o(d)d(gray)75 287 y FD(In)e Fz(STk)g FD(this)g(w)o(ould)f -(b)q(e)i(expressed)h(as)153 350 y Ft(\(.hello)h('configure)f('-border)h -(5)i('-backgro)o(und)d("gray"\))75 459 y FD(Since)d(k)o(eyw)o(ord)g -(colon)f(is)g(replaced)i(b)o(y)e(a)h(dash)g(when)g(a)f -Fu(Tk-command)f FD(is)h(called,)g(this)h(expression)h(could)e(also)75 -504 y(ha)o(v)o(e)i(b)q(een)h(written)f(as:)153 567 y -Ft(\(.hello)j('configure)i Ff(:b)q(order)h Ft(5)h Ff(:bac)o(kground)e -Ft("gray"\))75 747 y Fw(2)67 b(Asso)r(ciating)22 b(Callbac)n(ks)h(to)f -(Tk-commands)75 834 y FD(Starting)13 b(with)h(v)o(ersion)f(3.0,)f -Fz(STk)i FD(callbac)o(ks)g(are)g(Sc)o(heme)f(closures)1180 -819 y Fy(1)1200 834 y FD(.)18 b(Apart)c(scroll)f(commands,)e(callbac)o -(ks)75 879 y(are)18 b(Sc)o(hemes)f(pro)q(cedures)j(without)c -(parameter.)28 b(Supp)q(ose)18 b(for)f(example,)f(that)i(w)o(e)f(w)o -(an)o(t)g(to)g(asso)q(ciate)h(a)75 925 y(command)11 b(with)j(the)g -(previous)g Fu(.hello)f FD(button.)18 b(In)c(Tcl,)f(suc)o(h)i(a)f -(command)d(can)j(b)q(e)g(expressed)j(as)153 988 y Ft(.hello)h -(configure)e(-command)g Fn(f)p Ft(puts)j(stdout)e("Hello,)g(world";)g -(destroy)g(.)p Fn(g)75 1096 y FD(In)d Fz(STk)p FD(,)g(w)o(e)g(can)g -(write)153 1159 y Ft(\(.hello)j('configure)i Ff(:command)g -Ft(\(lambda)d(\(\))840 1205 y(\(display)g("Hello,)h(world\\n"\))840 -1251 y(\(destroy)f(*root*\)\)\))75 1363 y FD(When)c(the)h(user)g(will)d -(press)j(the)g(mouse)e(left)h(button,)g(the)g(closure)h(asso)q(ciated)f -(to)g(the)h Fu(:command)d FD(option)h(will)75 1413 y(b)q(e)k(ev)n -(aluated)g(in)f(the)h(global)e(en)o(vironmen)o(t.)19 -b(Ev)n(aluation)13 b(of)h(the)h(giv)o(en)f(closure)i(will)d(displa)o(y) -h(the)h(message)75 1463 y(and)f(call)f(the)h Fu(destroy)f -FB(Tk-c)n(ommand)p FD(.)75 1513 y Fl(Note:)75 b Fs(The)17 -b(ro)q(ot)h(widget)g(is)g(denoted)g(\\.")30 b(in)18 b(Tcl.)31 -b(This)18 b(con)o(v)o(en)o(tion)h(is)f(am)o(biguous)h(with)f(the)f -(dotted)h(pair)75 1563 y(con)o(v)o(en)o(tion)c(and)e(the)g(dot)f(m)o -(ust)h(b)q(e)g(quoted)h(to)e(a)o(v)o(oid)i(problems.)18 -b(Since)13 b(this)f(problem)h(arises)g(so)f(often,)f(the)h(v)n(ariable) -75 1612 y Ft(*root*)e Fs(has)k(b)q(een)g(in)o(tro)q(duced)h(in)f -Fj(STk)e Fs(to)h(denote)h(the)f(Tk)g(main)h(windo)o(w.)75 -1725 y FG(Managing)19 b(Widget)f(Scrollbars)75 1798 y -FD(When)h(using)f(scrollbars,)i(Tk)f(library)f(passes)i(parameters)f -(to)f(the)i(widget)e(asso)q(ciated)i(to)e(the)i(scrollbar)75 -1843 y(\(and)14 b FB(vic)n(e)g(versa)p FD(\).)k(Let)c(us)g(lo)q(ok)f -(at)g(a)h(text)g(widget)f(with)g(an)h(asso)q(ciated)g(scrollbar.)k -(When)c(the)g(scrollbar)g(is)75 1889 y(mo)o(v)o(ed,)g(the)i(command)d -(of)i(the)h(asso)q(ciated)g(widget)f(is)h(in)o(v)o(ok)o(ed)e(to)i(c)o -(hange)f(its)h(view.)23 b(On)15 b(the)h(other)h(side,)75 -1935 y(when)d(bro)o(wsing)f(the)h(con)o(ten)o(t)g(of)f(the)h(text)g -(widget)f(\(with)h(arro)o(ws)f(for)g(example\),)f(the)i(scrollbar)f(is) -h(up)q(dated)75 1980 y(b)o(y)k(calling)e(it's)i(asso)q(ciated)h -(closure.)31 b(Tk)18 b(library)f(passes)j(p)q(osition)d(informations)f -(to)h(scrolling)h(closures.)75 2026 y(This)13 b(informations)d(are)j -(the)h(parameters)f(of)f(the)h(closure.)19 b(Hereafter)14 -b(is)f(an)f(example)g(implemen)o(ting)d(a)k(text)75 2072 -y(widget)h(with)f(a)h(scrollbar)g(\(see)h(the)f(help)g(pages)h(for)e -(details\):)153 2135 y Ft(\(text)18 b('.txt)g(:yscrollc)o(omm)o(an)o(d) -36 b(\(lambda)17 b(l)i(\(apply)f(.scroll)f('set)h(l\)\)\))153 -2180 y(\(scrollbar)e('.scroll)h(:command)f(\(lambda)h(l)i(\(apply)f -(.txt)g('yview)f(l\)\)\))153 2272 y(\(pack)h(.txt)g(:side)g("left"\)) -153 2317 y(\(pack)g(.scroll)f(:fill)h("y")g(:expand)f(#t)i(:side)f -("left"\))75 2497 y Fw(3)67 b(Tk)23 b(bindings)75 2596 -y FG(Bindings)18 b(are)h(Sc)n(heme)e(closures)75 2668 -y FD(The)e(Tk)f Fu(bind)g FD(command)d(asso)q(ciates)16 -b(Sc)o(heme)e(scripts)i(with)e(X)h(ev)o(en)o(ts.)20 b(Starting)15 -b(with)f(v)o(ersion)g(3.0)g(those)75 2714 y(scripts)j(m)o(ust)d(b)q(e)i -(Sc)o(heme)f(closures)661 2699 y Fy(2)681 2714 y FD(.)23 -b(Binding)15 b(closures)i(can)e(ha)o(v)o(e)h(parameters.)22 -b(Those)17 b(parameters)e(are)p 75 2741 705 2 v 121 2768 -a Fr(1)139 2779 y Fq(Old)c(syn)o(tax)f(for)h(callbac)o(ks)e(\(i.e.)15 -b(strings\))9 b(is)j(alw)o(a)o(ys)f(supp)q(orted)e(but)h(its)i(use)f -(is)g(deprecated.)121 2807 y Fr(2)139 2819 y Fq(Old)g(syn)o(tax)f(for)h -(bindings)e(\(i.e.)15 b(strings\))10 b(is)h(no)g(more)f(supp)q(orted.)j -(Old)f(bindings)d(scripts)h(m)o(ust)g(hence)g(b)q(e)i(rewritten.)p -eop -%%Page: 61 61 -61 60 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(61)p 75 64 1763 2 v 75 179 a FD(one)17 b(c)o(har)h(sym)o(b)q(ols)e -(\(with)h(the)h(same)e(con)o(v)o(en)o(tions)h(than)g(the)h(Tcl)f(\045)g -(c)o(har,)h(see)g(the)g Fu(bind)e FD(help)i(page)f(for)75 -224 y(details\).)h(F)m(or)13 b(instance,)i(the)f(follo)o(wing)d(Tcl)j -(script)153 303 y Ft(bind)19 b(.w)f()e -Fn(f)p Ft(puts)i("Press)g(on)h(widget)e(\045W)i(at)g(position)d(\045x)j -(\045y")p Fn(g)75 428 y FD(can)14 b(b)q(e)h(translated)f(in)o(to)153 -507 y Ft(\(bind)k(.w)h("")330 -552 y(\(lambda)e(\(|W|)h(x)h(y\))389 598 y(\(format)e(#t)i("Press)e(on) -i(widget)e(~A)i(at)g(position)d(~A)j(~A\\n")f(|W|)g(x)h(y\)\)\))75 -727 y Fl(Note:)35 b Fs(Usage)14 b(of)f(v)o(erticals)i(bars)f(for)g(the) -f Ft(W)g Fs(sym)o(b)q(ol)i(is)f(necessary)h(here)f(b)q(ecause)h(the)f -(Tk)f(to)q(olkit)i(is)f(case)g(sensitiv)o(e)75 777 y(\()p -Fl(e.g.)9 b Ft(W)i Fs(in)g(bindings)j(is)e(the)f(path)g(name)h(of)e -(the)h(windo)o(w)h(to)f(whic)o(h)g(the)h(ev)o(en)o(t)f(w)o(as)f(rep)q -(orted,)i(whereas)g Ft(w)e Fs(is)h(the)h(width)75 826 -y(\014eld)i(from)f(the)g(ev)o(en)o(t.)75 943 y FG(Bindings)18 -b(are)h(c)n(hained)75 1015 y FD(In)12 b(Tk4.0)e(and)h(later,)h -(bindings)f(are)h(c)o(hained)g(since)g(it)f(is)g(p)q(ossible)h(for)f -(sev)o(eral)h(bindings)f(to)h(matc)o(h)e(a)h(giv)o(en)g(X)75 -1061 y(ev)o(en)o(t.)18 b(If)10 b(the)i(bindings)e(are)h(asso)q(ciated)h -(with)f(di\013eren)o(t)h(tags,)f(then)g(eac)o(h)h(of)e(the)i(bindings)e -(will)f(b)q(e)j(executed,)75 1106 y(in)i(order.)22 b(By)15 -b(default,)f(a)h(class)g(binding)f(will)f(b)q(e)j(executed)h(\014rst,)e -(follo)o(w)o(ed)e(b)o(y)i(a)f(binding)g(for)h(the)g(widget,)75 -1152 y(a)g(binding)g(for)g(its)g(toplev)o(el,)g(and)h(an)f -Fu(all)g FD(binding.)21 b(The)16 b Fu(bindtags)e FD(command)f(ma)o(y)g -(b)q(e)j(used)h(to)e(c)o(hange)75 1198 y(this)h(order)h(for)f(a)g -(particular)g(windo)o(w)g(or)g(to)g(asso)q(ciate)h(additional)d -(binding)i(tags)g(with)g(the)h(windo)o(w)e(\(see)75 1243 -y(corresp)q(onding)h(help)g(page)g(for)f(details\).)23 -b(If)15 b(the)h(result)g(of)f(closure)h(in)g(the)g(bindings)f(c)o(hain) -g(is)g(the)h(sym)o(b)q(ol)75 1289 y Fu(break)p FD(,)c(the)j(next)f -(closures)h(of)f(the)g(c)o(hain)g(are)g(not)g(executed.)20 -b(The)14 b(example)f(b)q(elo)o(w)g(illustrates)h(this:)153 -1368 y Ft(\(pack)k(\(entry)f('.e\)\))153 1414 y(\(bind)h(.e)h -("")d(\(lambda)h(\(|A|\))624 1459 y(\(unless)g -(\(string->n)o(um)o(ber)f(|A|\))i('break\)\)\))75 1588 -y FD(Bindings)e(for)f(the)i(en)o(try)g Fu(.e)e FD(are)i(executed)h(b)q -(efore)e(those)h(for)f(its)g(class)g(\(i.e.)24 b Fu(Entry)p -FD(\).)g(This)15 b(allo)o(ws)g(us)i(to)75 1638 y(\014lter)c(the)g(c)o -(haracters)i(whic)o(h)d(are)h(e\013ectiv)o(ely)h(passed)f(to)g(the)g -Fu(.e)f FD(widget.)17 b(The)d(test)f(in)f(this)h(binding)f(closure)75 -1688 y(breaks)g(the)g(c)o(hain)g(of)f(bindings)g(if)f(the)i(t)o(yp)q -(ed)h(c)o(haracter)f(is)g(not)f(a)h(digit.)k(Otherwise,)d(the)f(follo)o -(wing)d(binding,)75 1737 y(the)16 b(one)f(for)g(the)h -Fu(Entry)e FD(class,)h(is)g(executed)i(and)e(inserts)h(the)g(c)o -(haracter)g(t)o(yp)q(ed)g(\(a)f(digit\).)21 b(Consequen)o(tly)m(,)75 -1787 y(the)14 b(simple)f(previous)h(binding)f(mak)o(es)g -Fu(.e)g FD(a)h(con)o(trolled)f(en)o(try)i(whic)o(h)f(only)f(accepts)i -(in)o(teger)g(n)o(um)o(b)q(ers.)p eop -%%Page: 62 62 -62 61 bop 75 47 a FC(62)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v eop -%%Page: 63 63 -63 62 bop 75 492 a FH(App)s(endix)33 b(B)75 701 y FA(Di\013erences)38 -b(with)h(R4RS)75 918 y FD(This)12 b(app)q(endix)f(summarizes)f(the)i -(main)e(di\013erences)k(b)q(et)o(w)o(een)f(the)f Fz(STk)g -FD(Sc)o(heme)f(implemen)o(tation)d(and)k(the)75 968 y(language)h -(describ)q(ed)j(in)d FB(R)510 953 y Fy(4)522 968 y Fx(RS)r -FD(.)75 1114 y Fw(1)67 b(Sym)n(b)r(ols)75 1208 y Fz(STk)20 -b FD(sym)o(b)q(ol)d(syn)o(tax)j(has)f(b)q(een)i(augmen)o(ted)d(to)h -(allo)o(w)f(case)i(signi\014can)o(t)f(sym)o(b)q(ols.)33 -b(This)20 b(extension)g(is)75 1257 y(discussed)c(in)d(6.4.)75 -1309 y(The)h(follo)o(wing)e(sym)o(b)q(ols)g(are)i(de\014ned)h(in)f(the) -g(global)e(en)o(vironmen)o(t.)137 1407 y Fm(\017)21 b -Fu(*debug*)p FD(.)16 b(Setting)d Fu(*debug*)e FD(to)h -Fu(#t)h FD(prev)o(en)o(ts)h(macro)d(inlining)g(and)h(expression)i(reco) -q(ding)f(\(see)h(6.25\).)137 1496 y Fm(\017)21 b Fu(*gc-verbose*)p -FD(.)c(If)d Fu(*gc-verbose*)d FD(is)j Fu(#t)p FD(,)g(a)g(message)g -(will)f(b)q(e)i(prin)o(ted)f(b)q(efore)i(and)e(after)g(eac)o(h)h(run) -179 1546 y(of)e(garbage)h(collector.)k(The)c(message)g(is)g(prin)o(ted) -g(on)g(the)g(standard)g(error)h(stream.)137 1635 y Fm(\017)21 -b Fu(*load-verbose*)p FD(.)i(If)17 b Fu(*load-verbose*)c -FD(is)k Fu(#t)p FD(,)f(the)i(absolute)e(path)h(name)e(of)h(eac)o(h)i -(loaded)e(\014le)h(is)179 1685 y(prin)o(ted)d(b)q(efore)h(its)f -(e\013ectiv)o(e)h(reading.)j(File)13 b(names)g(are)i(prin)o(ted)f(on)f -(the)i(standard)f(error)h(stream.)137 1774 y Fm(\017)21 -b Fu(*load-path*)13 b FD(m)o(ust)h(con)o(tain)h(a)f(list)h(of)g -(strings.)22 b(Eac)o(h)16 b(string)f(is)g(tak)o(en)g(as)h(a)f -(directory)g(path)h(name)179 1824 y(in)d(whic)o(h)h(a)f(\014le)h(will)e -(b)q(e)i(searc)o(hed)i(for)d(loading.)j(This)e(v)n(ariable)e(can)i(b)q -(e)h(set)f(automatically)d(from)h(the)179 1874 y Fu(STK)p -248 1874 14 2 v 15 w(LOAD)p 351 1874 V 15 w(PATH)h FD(shell)h(v)n -(ariable.)i(See)f Fu(stk\(1\))e FD(for)g(more)g(details.)137 -1963 y Fm(\017)21 b Fu(*load-suffixes*)14 b FD(m)o(ust)i(con)o(tain)g -(a)h(list)g(of)f(strings.)28 b(When)17 b(the)h(system)f(try)g(to)g -(load)f(a)h(\014le)g(in)g(a)179 2013 y(giv)o(en)d(directory)i -(\(according)f(to)f Fu(*load-path*)f FD(v)n(alue\),)h(it)g(will)g -(\014rst)h(try)h(to)e(load)g(it)h(without)f(su\016x.)179 -2063 y(If)f(this)h(\014le)g(do)q(es)g(not)g(exist,)g(the)g(system)g -(will)e(sequen)o(tially)h(try)h(to)g(\014nd)g(the)g(\014le)g(b)o(y)f -(app)q(ending)h(eac)o(h)179 2113 y(su\016x)g(of)f(this)h(list.)j(A)d(t) -o(ypical)f(v)n(alue)h(for)f(this)h(v)n(ariable)f(ma)o(y)f(b)q(e)i -Fu(\("stk")21 b("stklos")f("scm")h("so"\))p FD(.)137 -2202 y Fm(\017)g Fu(*help-path*)13 b FD(m)o(ust)h(con)o(tain)h(a)f -(list)h(of)g(strings.)22 b(Eac)o(h)16 b(string)f(is)g(tak)o(en)g(as)h -(a)f(directory)g(path)h(name)179 2252 y(in)e(whic)o(h)g(do)q(cumen)o -(tation)f(\014les)i(are)f(searc)o(hed.)21 b(This)14 b(v)n(ariable)g -(can)g(b)q(e)h(set)g(automatically)c(from)i(the)179 2302 -y Fu(STK)p 248 2302 V 15 w(HELP)p 351 2302 V 15 w(PATH)g -FD(shell)h(v)n(ariable.)i(See)f Fu(stk\(1\))e FD(for)g(more)g(details.) -137 2391 y Fm(\017)21 b Fu(*argc*)11 b FD(con)o(tains)h(the)h(n)o(um)o -(b)q(er)f(of)g(argumen)o(ts)f(\(0)h(if)g(none\),)h(not)f(including)f -(in)o(terpreter)j(options.)k(See)179 2441 y Fu(stk\(1\))12 -b FD(for)i(more)f(details.)137 2530 y Fm(\017)21 b Fu(*argv*)14 -b FD(con)o(tains)i(a)f(Sc)o(heme)h(list)f(whose)h(elemen)o(ts)g(are)g -(the)h(argumen)o(ts)e(\(not)g(including)g(the)h(in)o(ter-)179 -2580 y(preter)h(options\),)e(in)g(order,)h(or)f(an)g(empt)o(y)g(list)g -(if)f(there)j(are)f(no)f(argumen)o(ts.)22 b(See)16 b -Fu(stk\(1\))e FD(for)h(more)179 2630 y(details.)137 2719 -y Fm(\017)21 b Fu(*program-name*)12 b FD(con)o(tains)i(the)i(\014le)e -(name)g(sp)q(eci\014ed)i(with)f(the)g Fu(-file)f FD(option,)f(if)h -(presen)o(t.)22 b(Other-)179 2769 y(wise,)13 b(it)h(con)o(tains)f(the)i -(name)d(through)i(whic)o(h)f(the)i(in)o(terpreter)g(w)o(as)f(in)o(v)o -(ok)o(ed.)j(See)e Fu(stk\(1\))d FD(for)h(more)179 2819 -y(details.)935 2924 y(63)p eop %%Page: 64 64 -64 63 bop 75 47 a FC(64)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 137 179 a Fm(\017)21 b Fu(*print-banner*)p -FD(.)f(If)c Fu(*print-verbose*)c FD(is)k Fu(#f)p FD(,)f(the)i(usual)e -(cop)o(yrigh)o(t)g(message)h(is)f(not)h(displa)o(y)o(ed)179 -229 y(when)e(the)h(in)o(terpreter)g(is)f(started.)137 -312 y Fm(\017)21 b Fu(*root*)12 b FD(designates)j(the)g(Tk)f(main)e -(windo)o(w)h(\(see)i(A-2\).)j(This)c(v)n(ariable)f(is)h(not)g(set)h(if) -e(the)i(Tk)f(to)q(olkit)179 362 y(is)g(not)f(initialized.)75 -499 y Fw(2)67 b(T)n(yp)r(es)75 590 y Fz(STk)17 b FD(implemen)o(ts)d -(all)i(the)h(t)o(yp)q(es)h(de\014ned)g(as)f(mandatory)e(in)h -FB(R)1142 575 y Fy(4)1154 590 y Fx(RS)r FD(.)27 b(Ho)o(w)o(ev)o(er,)18 -b(complex)d(n)o(um)o(b)q(ers)i(and)75 640 y(rational)12 -b(n)o(um)o(b)q(ers)h(\(whic)o(h)g(are)h(de\014ned)g(but)g(not)f -(required)h(in)f FB(R)1130 625 y Fy(4)1142 640 y Fx(RS)r -FD(\))h(are)g(not)f(implemen)o(ted.)j(The)d(lac)o(k)g(of)75 -690 y(these)i(t)o(yp)q(es)g(implies)d(that)i(some)f(functions)h(of)f -FB(R)882 675 y Fy(4)894 690 y Fx(RS)k FD(are)d(not)g(de\014ned.)75 -740 y(Some)d(t)o(yp)q(es)h(whic)o(h)g(are)g(not)g(de\014ned)h(in)e -FB(R)764 725 y Fy(4)776 740 y Fx(RS)j FD(are)f(implem)o(en)o(ted)d(in)h -Fz(STk)p FD(.)18 b(Those)12 b(t)o(yp)q(es)h(are)f(listed)g(b)q(elo)o -(w:)137 823 y Fm(\017)21 b FD(input)13 b(string)h(p)q(ort)h(t)o(yp)q(e) -f(\(6.10\))137 906 y Fm(\017)21 b FD(output)14 b(string)g(p)q(ort)g(t)o -(yp)q(e)g(\(6.10\))137 990 y Fm(\017)21 b FD(k)o(eyw)o(ord)14 -b(t)o(yp)q(e)g(\(6.11\))137 1073 y Fm(\017)21 b FD(Tk)14 -b(command)d(t)o(yp)q(e)j(\(6.12\))137 1156 y Fm(\017)21 -b FD(en)o(vironmen)o(t)13 b(t)o(yp)q(e)h(\(6.14\))137 -1239 y Fm(\017)21 b FD(macro)12 b(t)o(yp)q(e)j(\(6.15\))137 -1323 y Fm(\017)21 b FD(address)15 b(t)o(yp)q(e)f(\(6.17\))137 -1406 y Fm(\017)21 b FD(hash)14 b(table)g(t)o(yp)q(e)g(\(6.19\))137 -1489 y Fm(\017)21 b FD(Regular)13 b(expression)i(t)o(yp)q(e)f(\(6.20\)) -137 1573 y Fm(\017)21 b FD(pro)q(cess)15 b(t)o(yp)q(e)g(\(6.22\))137 -1656 y Fm(\017)21 b FD(so)q(c)o(k)o(et)15 b(t)o(yp)q(e)f(\(6.23\))75 -1794 y Fw(3)67 b(Pro)r(cedures)75 1885 y FD(The)14 b(follo)o(wing)d -(pro)q(cedures)16 b(are)e(required)g(b)o(y)g FB(R)863 -1870 y Fy(4)875 1885 y Fx(RS)i FD(and)d(are)h(not)g(implem)o(en)o(ted)e -(in)h(the)h Fz(STk)g FD(in)o(terpreter.)137 1968 y Fm(\017)21 -b FD(transcript-o\013)137 2051 y Fm(\017)g FD(transcript-on)75 -2134 y Fu(Transcript-off)9 b FD(and)k Fu(transcript-on)c -FD(can)k(b)q(e)g(sim)o(ulated)d(with)i(v)n(arious)g(Unix)g(to)q(ols)g -(suc)o(h)h(as)f Fu(script)f FD(or)75 2184 y Fu(fep)p -FD(.)75 2269 y(The)i(follo)o(wing)d(pro)q(cedures)15 -b(are)e(not)f(implemen)o(ted)f(in)h(the)h Fz(STk)g FD(in)o(terpreter)h -(whereas)g(they)f(are)g(de\014ned)h(in)75 2319 y FB(R)105 -2304 y Fy(4)117 2319 y Fx(RS)j FD(\(but)d(not)g(required\).)19 -b(They)14 b(are)g(all)f(related)h(to)g(complex)f(or)h(rational)e(n)o -(um)o(b)q(ers.)137 2402 y Fm(\017)21 b FD(n)o(umerator)137 -2486 y Fm(\017)g FD(denominator)137 2569 y Fm(\017)g -FD(rationalize)137 2652 y Fm(\017)g FD(mak)o(e-rectangular)137 -2736 y Fm(\017)g FD(mak)o(e-p)q(olar)137 2819 y Fm(\017)g -FD(real-part)p eop -%%Page: 65 65 -65 64 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(65)p 75 64 1763 2 v 137 179 a Fm(\017)21 b FD(imag-part)137 -262 y Fm(\017)g FD(magnitude)137 345 y Fm(\017)g FD(angle)p +64 63 bop 37 45 a FE(64)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fw(\(bye)24 b FD(r)n(etc)n(o)n(de)s +Fw(\))1358 b FF(pro)q(cedure)37 247 y Fw(\(bye\))1522 +b FF(pro)q(cedure)37 327 y(Exits)17 b(the)f FB(STk)f +FF(in)o(terpreter)h(with)h(the)f(sp)q(eci\014ed)i(in)o(teger)e(return)g +(co)q(de.)23 b(If)17 b(omitted,)f(the)g(in)o(terpreter)37 +383 y(terminates)g(with)f(a)g(return)g(co)q(de)h(of)f(0.)p eop +%%Page: 65 65 +65 64 bop 809 1056 a FJ(P)m(art)32 b(I)s(I)741 1264 y +FC(Annexes)934 2901 y FF(65)p eop %%Page: 66 66 -66 65 bop 75 47 a FC(66)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v eop +66 65 bop eop %%Page: 67 67 -67 66 bop 75 491 a FH(App)s(endix)33 b(C)75 699 y FA(An)38 -b(in)m(tro)s(duction)g(to)h Fe(STklos)75 941 y Fw(1)67 -b(In)n(tro)r(duction)75 1034 y Fz(STklos)14 b FD(is)e(the)h(ob)r(ject)h -(orien)o(ted)f(la)o(y)o(er)f(of)g Fz(STk)p FD(.)18 b(Its)13 -b(implemen)o(tatio)o(n)d(is)j(deriv)o(ed)g(from)e(v)o(ersion)h(1.3)g -(of)g(the)75 1084 y(Gregor)h(Kic)o(kzales)g(Tin)o(y)f(Clos)g(pac)o(k)n -(age)g([12)o(].)17 b(Ho)o(w)o(ev)o(er,)c(it)f(has)h(b)q(een)h(extended) -g(to)e(b)q(e)i(as)e(close)i(as)e(p)q(ossible)75 1133 -y(to)17 b(CLOS,)g(the)h(Common)c(Lisp)j(Ob)r(ject)i(System[6)o(].)28 -b(Some)16 b(features)i(of)f Fz(STklos)i FD(are)e(also)g(issued)h(from) -75 1183 y(Dylan[13)n(])13 b(or)h(SOS[14].)75 1234 y(Brie\015y)d -(stated,)g(the)g Fz(STklos)h FD(extension)f(giv)o(es)f(the)h(user)g(a)g -(full)e(ob)r(ject)i(orien)o(ted)g(system)f(with)g(meta-classes,)75 -1284 y(m)o(ultiple)j(inheritance,)i(generic)h(functions)g(and)f(m)o -(ulti-m)o(etho)q(ds.)k(F)m(urthermore,)c(the)h(whole)f(implem)o(en)o -(ta-)75 1333 y(tion)i(relies)h(on)f(a)h(true)g(meta)e(ob)r(ject)j -(proto)q(col,)f(in)f(the)h(spirit)f(of)g(the)h(one)g(de\014ned)h(for)e -(CLOS[15)o(].)29 b(This)75 1383 y(mo)q(del)12 b(has)h(also)f(b)q(een)i -(used)g(to)f(em)o(b)q(o)q(dy)f(the)i(prede\014ned)h(Tk)e(widgets)g(in)g -(a)g(hierarc)o(h)o(y)g(of)g Fz(STklos)h FD(classes.)75 -1433 y(This)i(set)h(of)f(classes)h(p)q(ermits)f(to)g(simplify)e(the)j -(core)g(Tk)f(usage)g(b)o(y)g(pro)o(viding)f(homogeneous)h(accesses)j -(to)75 1483 y(widget)e(options)h(and)f(b)o(y)h(hiding)e(the)i(lo)o(w)f -(lev)o(el)g(details)h(of)f(Tk)g(widgets,)h(suc)o(h)h(as)f(naming)d(con) -o(v)o(en)o(tions.)75 1533 y(F)m(urthermore,)j(as)g(exp)q(ected,)i -(using)e(of)f(ob)r(jects)i(facilitates)e(co)q(de)i(reuse)g(and)e -(de\014nition)h(of)f(new)h(widgets)75 1583 y(classes.)75 -1633 y(The)e(purp)q(ose)i(of)d(this)h(app)q(endix)g(is)g(to)g(in)o(tro) -q(duce)h(brie\015y)f(the)g Fz(STklos)h FD(pac)o(k)n(age)f(and)g(in)g -(no)f(case)i(will)e(it)75 1683 y(replace)e(the)f Fz(STklos)h -FD(reference)h(man)o(ual)9 b(\(whic)o(h)j(needs)h(to)e(b)q(e)i(urgen)o -(tly)e(written)h(no)o(w)g(.)6 b(.)h(.)f(\).)17 b(In)12 -b(particular,)75 1733 y(metho)q(ds)j(relativ)o(e)h(to)f(the)i(meta)d -(ob)r(ject)j(proto)q(col)e(and)h(access)h(to)f(the)g(Tk)g(to)q(olkit)e -(will)h(not)g(b)q(e)i(describ)q(ed)75 1783 y(here.)75 -1925 y Fw(2)67 b(Class)21 b(de\014nition)k(and)e(instan)n(tiation)75 -2026 y FG(2.1)56 b(Class)19 b(de\014nition)75 2104 y -FD(A)e(new)g(class)g(is)g(de\014ned)h(with)e(the)i Fu(define-class)c -FD(macro.)25 b(The)18 b(syn)o(tax)e(of)g Fu(define-class)f -FD(is)h(close)i(to)75 2154 y(CLOS)c Fu(defclass)p FD(:)153 -2245 y Ft(\(define-cla)o(ss)i Fl(class)21 b Ft(\()p Fn(h)p -Fs(sup)q(erclass)730 2249 y Fr(1)749 2245 y Fn(i)f(h)p -Fs(sup)q(erclass)965 2249 y Fr(2)984 2245 y Fn(i)p Ft(...\))212 -2291 y(\()p Fn(h)p Fs(slot)g(description)507 2295 y Fr(1)527 -2291 y Fn(i)g(h)p Fs(slot)g(description)837 2295 y Fr(2)857 -2291 y Fn(i)p Ft(...\))212 2337 y Fn(h)p Fs(metaclass)h(option)p -Fn(i)q Ft(\))75 2477 y FD(The)13 b Fm(h)p FD(metaclass)g(option)p -Fm(i)e FD(will)g(not)h(b)q(e)h(discussed)h(in)d(this)h(app)q(endix.)18 -b(The)12 b Fm(h)p FD(sup)q(erclass)p Fm(i)r FD(es)h(list)f(sp)q -(eci\014es)i(the)75 2527 y(sup)q(er)j(classes)f(of)f -FB(class)k FD(\(see)d(3)g(for)f(more)f(details\).)22 -b(A)16 b Fm(h)p FD(slot)e(description)p Fm(i)i FD(giv)o(es)f(the)h -(name)e(of)h(a)g(slot)g(and,)75 2577 y(ev)o(en)o(tually)m(,)g(some)f -(\\prop)q(erties")j(of)e(this)g(slot)h(\(suc)o(h)g(as)g(its)f(initial)f -(v)n(alue,)h(the)h(function)f(whic)o(h)h(p)q(ermit)f(to)75 -2627 y(access)h(its)e(v)n(alue,)e(.)7 b(.)f(.)h(\).)18 -b(Slot)13 b(descriptions)i(will)d(b)q(e)j(discussed)h(in)d(3.3.)75 -2677 y(As)j(an)g(exemple,)f(consider)h(no)o(w)f(that)h(w)o(e)g(ha)o(v)o -(e)g(to)f(de\014ne)i(a)e(complex)f(n)o(um)o(b)q(er.)23 -b(This)16 b(can)g(b)q(e)g(done)g(with)75 2727 y(the)e(follo)o(wing)e -(class)i(de\014nition:)153 2819 y Ft(\(define-cla)o(ss)36 -b()16 b(\()o(\))935 2924 y FD(67)p eop +67 66 bop 37 502 a FJ(App)s(endix)33 b(A)37 710 y FC(Using)39 +b(the)g(Tk)g(to)s(olkit)37 933 y FF(When)15 b FB(STk)e +FF(detects)g(that)g(a)h FD(tk-c)n(ommand)19 b FF(m)o(ust)13 +b(b)q(e)h(called,)h(parameters)e(are)g(pro)q(cessed)i(to)e(b)q(e)h +(recog-)37 990 y(nized)i(b)o(y)e(the)g(corresp)q(onding)h(to)q(olkit)f +(function.)21 b(Since)15 b(the)f(Tk)g(to)q(olkit)g(is)h(left)f +(\(mostly\))f(unmo)q(di\014ed,)37 1046 y(all)18 b(its)e(primitiv)o(es)i +(\\think")e(there)h(is)f(a)g(running)i(Tcl)f(in)o(terpreter)f(b)q +(ehind)i(the)f(scene.)23 b(Consequen)o(tly)l(,)37 1103 +y(to)18 b(w)o(ork)e(with)i(the)g(Tk)f(to)q(olkit,)i(a)e(little)i(set)e +(of)h(rewriting)g(rules)g(m)o(ust)f(b)q(e)i(kno)o(wn.)27 +b(These)18 b(rules)g(are)37 1159 y(describ)q(ed)g(hereafter.)37 +1216 y Fn(Note:)34 b Fu(This)11 b(app)q(endix)f(is)h(placed)g(here)h +(to)f(p)q(ermit)f(an)g Fk(STk)h Fu(user)h(to)f(mak)o(e)e(programs)h +(with)g(the)h(original)e(Tcl/Tk)37 1273 y(do)q(cumen)o(tation)15 +b(b)o(y)h(hand.)25 b(In)16 b(no)g(case)h(will)e(it)g(substitute)j(to)e +(the)g(abundan)o(t)g(Tcl/Tk)g(man)o(ual)e(pages)i(nor)g(to)37 +1329 y(the)f(excellen)o(t)g(b)q(o)q(ok)e(b)o(y)h(J.)g(Ousterhout[11])37 +1476 y Fy(1)67 b(Calling)24 b(a)e(Tk-command)37 1578 +y FF(Since)g(Tcl)e(uses)g(strings)f(to)g(comm)o(unicate)h(with)g(the)g +(Tk)f(to)q(olkit,)h(parameters)f(to)g(a)g FD(Tk-c)n(ommand)37 +1635 y FF(m)o(ust)13 b(b)q(e)h(translated)f(to)g(strings)g(b)q(efore)g +(calling)i(the)f(C)f(function)h(whic)o(h)g(implemen)o(t)g(it.)20 +b(The)13 b(follo)o(wing)37 1691 y(con)o(v)o(ersions)20 +b(are)f(done,)h(dep)q(ending)h(on)e(the)h(t)o(yp)q(e)f(of)g(the)g +(parameter)f(that)h FB(STk)f FF(m)o(ust)h(giv)o(e)g(to)g(the)37 +1747 y(to)q(olkit:)151 1843 y FE(sym)o(b)q(ol:)j FF(the)15 +b(prin)o(t)h(name)f(of)g(the)g(sym)o(b)q(ol;)151 1918 +y FE(n)o(um)o(b)q(er:)21 b FF(the)15 b(external)h(represen)o(tation)f +(of)g(the)g(n)o(um)o(b)q(er)h(expressed)g(in)g(radix)f(10;)151 +1992 y FE(string:)23 b FF(no)15 b(con)o(v)o(ersion;)151 +2066 y FE(k)o(eyw)o(ord:)20 b FF(the)f(prin)o(t)g(name)g(of)f(the)h(k)o +(eyw)o(ord)f(where)h(the)g(initial)i(semicolon)f(has)e(b)q(een)251 +2122 y(replaced)f(b)o(y)e(a)g(dash)g(\(\\-"\);)151 2197 +y FE(b)q(o)q(olean:)25 b FF(the)15 b(string)g("0")f(if)i +Fw(#f)f FF(and)g("1")g(if)g Fw(#t)151 2271 y FE(tk-command:)23 +b FF(the)15 b(name)g(of)g(the)g FD(tk-c)n(ommand)151 +2345 y FE(closure:)22 b FF(the)16 b(address)f(of)g(the)g(closure)h +(using)g(the)f(represen)o(tation)g(sho)o(wn)g(in)h(6.17.)151 +2419 y FE(otherwise:)22 b FF(the)16 b(external)f(\\slashi\014ed")i(v)o +(ersion)e(of)g(the)g(ob)s(ject.)37 2508 y(As)22 b(an)f(example,)i(let)e +(us)h(mak)o(e)e(a)h(button)g(with)g(a)g(lab)q(el)i(con)o(taining)f(the) +f(string)g Fw("Hello,)i(word")p FF(.)37 2558 y(According)17 +b(the)e(original)h(Tk/Tcl)f(do)q(cumen)o(tation,)h(this)f(can)h(b)q(e)g +(done)f(in)h(Tcl)g(with)125 2648 y Fv(button)k(.hello)h(-text)g +("Hello,)f(world")37 2787 y FF(F)l(ollo)o(wing)c(the)g(rewriting)f +(rules)h(expressed)g(ab)q(o)o(v)o(e,)f(this)g(can)h(b)q(e)g(done)f(in)h +FB(STk)f FF(with)934 2901 y(67)p eop %%Page: 68 68 -68 67 bop 75 47 a FC(68)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 204 1041 a @beginspecial 0 @llx 0 @lly -361 @urx 217 @ury 3610 @rwi @setspecial +68 67 bop 37 45 a FE(68)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(\(button)j('.hello)g('-text)h("Hello,)f +(world"\))37 320 y FF(This)14 b(call)g(de\014nes)f(a)g(new)g(widget)g +(ob)s(ject)f(whic)o(h)h(is)g(stored)g(in)g(the)g FB(STk)f +FF(v)m(ariable)i Fw(.hello)p FF(.)k(This)c(ob)s(ject)37 +369 y(can)i(b)q(e)g(used)g(as)f(a)g(pro)q(cedure)h(to)e(customize)i +(our)f(button.)20 b(F)l(or)15 b(instance,)g(setting)h(the)f(b)q(order)h +(of)f(this)37 419 y(button)g(to)g(5)g(pixels)i(wide)f(and)f(its)h(bac)o +(kground)f(to)f(gra)o(y)g(w)o(ould)i(b)q(e)g(done)f(in)h(Tcl)g(with)125 +499 y Fv(.hello)k(configure)g(-border)g(5)i(-background)e(gray)37 +628 y FF(In)c FB(STk)f FF(this)h(w)o(ould)f(b)q(e)h(expressed)g(as)125 +707 y Fv(\(.hello)k('configure)g('-border)g(5)h('-background)f +("gray"\))37 837 y FF(Since)c(k)o(eyw)o(ord)d(colon)h(is)g(replaced)h +(b)o(y)e(a)h(dash)f(when)h(a)g Fw(Tk-command)e FF(is)i(called,)h(this)f +(expression)h(could)37 886 y(also)h(ha)o(v)o(e)e(b)q(een)j(written)e +(as:)125 966 y Fv(\(.hello)20 b('configure)i Ff(:b)q(order)e +Fv(5)k Ff(:bac)o(kground)c Fv("gray"\))37 1157 y Fy(2)67 +b(Asso)r(ciating)22 b(Callbac)n(ks)h(to)f(Tk-commands)37 +1252 y FF(Starting)h(with)g(v)o(ersion)f(3.0,)h FB(STk)f +FF(callbac)o(ks)i(are)e(Sc)o(heme)h(closures)1311 1236 +y FA(1)1331 1252 y FF(.)42 b(Apart)22 b(scroll)i(commands,)37 +1302 y(callbac)o(ks)d(are)e(Sc)o(hemes)h(pro)q(cedures)g(without)g +(parameter.)31 b(Supp)q(ose)21 b(for)d(example,)j(that)e(w)o(e)g(w)o +(an)o(t)37 1352 y(to)e(asso)q(ciate)g(a)f(command)h(with)g(the)h +(previous)f Fw(.hello)f FF(button.)25 b(In)18 b(Tcl,)f(suc)o(h)h(a)e +(command)h(can)g(b)q(e)37 1402 y(expressed)f(as)125 1481 +y Fv(.hello)k(configure)g(-command)g Fp(f)p Fv(puts)h(stdout)g("Hello,) +f(world";)g(destroy)h(.)p Fp(g)37 1610 y FF(In)16 b FB(STk)p +FF(,)e(w)o(e)h(can)h(write)125 1690 y Fv(\(.hello)k('configure)i +Ff(:command)f Fv(\(lambda)f(\(\))887 1739 y(\(display)h("Hello,)f +(world\\n"\))887 1789 y(\(destroy)h(*root*\)\)\))37 1925 +y FF(When)13 b(the)g(user)f(will)i(press)f(the)f(mouse)h(left)g +(button,)f(the)g(closure)i(asso)q(ciated)e(to)g(the)g +Fw(:command)g FF(option)37 1982 y(will)18 b(b)q(e)e(ev)m(aluated)h(in)g +(the)f(global)g(en)o(vironmen)o(t.)22 b(Ev)m(aluation)17 +b(of)e(the)h(giv)o(en)g(closure)h(will)g(displa)o(y)g(the)37 +2038 y(message)e(and)h(call)g(the)f Fw(destroy)f FD(Tk-c)n(ommand)p +FF(.)37 2094 y Fn(Note:)67 b Fu(The)16 b(ro)q(ot)g(widget)g(is)g +(denoted)g(\\.")24 b(in)15 b(Tcl.)24 b(This)15 b(con)o(v)o(en)o(tion)h +(is)g(am)o(biguous)d(with)j(the)g(dotted)g(pair)37 2151 +y(con)o(v)o(en)o(tion)i(and)f(the)h(dot)f(m)o(ust)f(b)q(e)i(quoted)g +(to)f(a)o(v)o(oid)f(problems.)28 b(Since)18 b(this)f(problem)f(arises)i +(so)g(often,)f(the)37 2207 y(v)n(ariable)c Fv(*root*)g +Fu(has)h(b)q(een)h(in)o(tro)q(duced)g(in)e Fk(STk)h Fu(to)g(denote)h +(the)f(Tk)g(main)e(windo)o(w.)37 2328 y FI(Managing)20 +b(Widget)d(Scrollbars)37 2407 y FF(When)d(using)h(scrollbars,)f(Tk)f +(library)h(passes)f(parameters)g(to)g(the)g(widget)h(asso)q(ciated)g +(to)f(the)g(scrollbar)37 2457 y(\(and)23 b FD(vic)n(e)f(versa)p +FF(\).)40 b(Let)23 b(us)f(lo)q(ok)h(at)e(a)h(text)g(widget)g(with)h(an) +f(asso)q(ciated)h(scrollbar.)41 b(When)23 b(the)37 2506 +y(scrollbar)17 b(is)f(mo)o(v)o(ed,)f(the)h(command)g(of)f(the)h(asso)q +(ciated)g(widget)g(is)g(in)o(v)o(ok)o(ed)g(to)f(c)o(hange)h(its)g +(view.)22 b(On)37 2556 y(the)16 b(other)g(side,)g(when)g(bro)o(wsing)g +(the)g(con)o(ten)o(t)f(of)g(the)h(text)f(widget)h(\(with)g(arro)o(ws)e +(for)h(example\),)h(the)37 2606 y(scrollbar)f(is)f(up)q(dated)g(b)o(y)f +(calling)j(it's)d(asso)q(ciated)g(closure.)20 b(Tk)14 +b(library)g(passes)f(p)q(osition)i(informations)37 2656 +y(to)k(scrolling)h(closures.)32 b(This)20 b(informations)f(are)f(the)h +(parameters)g(of)f(the)h(closure.)32 b(Hereafter)19 b(is)g(an)37 +2706 y(example)e(implemen)o(ting)g(a)e(text)f(widget)i(with)f(a)g +(scrollbar)h(\(see)f(the)g(help)i(pages)e(for)f(details\):)p +37 2745 735 2 v 89 2771 a Ft(1)107 2787 y Fs(Old)f(syn)o(tax)h(for)f +(callbac)o(ks)i(\(i.e.)i(strings\))d(is)g(alw)o(a)o(ys)g(supp)q(orted)h +(but)e(its)g(use)h(is)f(deprecated.)p eop +%%Page: 69 69 +69 68 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(69)p 37 64 1838 2 v 125 190 a Fv(\(text)20 b('.txt)h(:yscrollcommand) +41 b(\(lambda)20 b(l)i(\(apply)e(.scroll)g('set)h(l\)\)\))125 +240 y(\(scrollbar)e('.scroll)i(:command)f(\(lambda)g(l)i(\(apply)e +(.txt)h('yview)g(l\)\)\))125 340 y(\(pack)f(.txt)h(:side)g("left"\))125 +390 y(\(pack)f(.scroll)h(:fill)g("y")g(:expand)f(#t)h(:side)g("left"\)) +37 582 y Fy(3)67 b(Tk)23 b(bindings)37 685 y FI(Bindings)c(are)f(Sc)n +(heme)f(closures)37 764 y FF(The)h(Tk)g Fw(bind)f FF(command)g(asso)q +(ciates)h(Sc)o(heme)g(scripts)g(with)g(X)g(ev)o(en)o(ts.)27 +b(Starting)17 b(with)h(v)o(ersion)g(3.0)37 814 y(those)h(scripts)f(m)o +(ust)g(b)q(e)h(Sc)o(heme)g(closures)808 797 y FA(2)828 +814 y FF(.)30 b(Binding)20 b(closures)f(can)f(ha)o(v)o(e)g(parameters.) +29 b(Those)18 b(pa-)37 864 y(rameters)c(are)f(one)h(c)o(har)g(sym)o(b)q +(ols)g(\(with)g(the)h(same)e(con)o(v)o(en)o(tions)h(than)g(the)g(Tcl)h +(\045)f(c)o(har,)f(see)h(the)h Fw(bind)37 913 y FF(help)i(page)e(for)g +(details\).)20 b(F)l(or)15 b(instance,)g(the)h(follo)o(wing)g(Tcl)f +(script)125 995 y Fv(bind)21 b(.w)g()e +Fp(f)p Fv(puts)h("Press)h(on)g(widget)g(\045W)g(at)h(position)e(\045x)h +(\045y")p Fp(g)37 1126 y FF(can)16 b(b)q(e)g(translated)f(in)o(to)125 +1207 y Fv(\(bind)20 b(.w)i(")o(")321 1257 +y(\(lambda)e(\(|W|)h(x)h(y\))386 1307 y(\(format)f(#t)g("Press)f(on)i +(widget)e(~A)i(at)f(position)f(~A)i(~A\\n")e(|W|)i(x)f(y\)\)\))37 +1445 y Fn(Note:)34 b Fu(Usage)11 b(of)f(v)o(erticals)h(bars)h(for)e +(the)i Fv(W)e Fu(sym)o(b)q(ol)f(is)i(necessary)i(here)f(b)q(ecause)g +(the)g(Tk)e(to)q(olkit)g(is)h(case)g(sensitiv)o(e)37 +1501 y(\()p Fn(e.g.)j Fv(W)g Fu(in)f(bindings)h(is)g(the)g(path)g(name) +f(of)g(the)i(windo)o(w)e(to)h(whic)o(h)g(the)g(ev)o(en)o(t)h(w)o(as)f +(rep)q(orted,)h(whereas)g Fv(w)f Fu(is)f(the)37 1558 +y(width)h(\014eld)g(from)e(the)j(ev)o(en)o(t.)37 1678 +y FI(Bindings)k(are)f(c)n(hained)37 1758 y FF(In)g(Tk4.0)e(and)h +(later,)g(bindings)i(are)e(c)o(hained)h(since)g(it)g(is)f(p)q(ossible)i +(for)d(sev)o(eral)i(bindings)g(to)f(matc)o(h)f(a)37 1807 +y(giv)o(en)d(X)f(ev)o(en)o(t.)19 b(If)12 b(the)g(bindings)i(are)e(asso) +q(ciated)h(with)f(di\013eren)o(t)g(tags,)g(then)g(eac)o(h)g(of)g(the)g +(bindings)i(will)37 1857 y(b)q(e)g(executed,)h(in)f(order.)19 +b(By)13 b(default,)h(a)f(class)h(binding)h(will)g(b)q(e)f(executed)g +(\014rst,)f(follo)o(w)o(ed)h(b)o(y)f(a)g(binding)37 1907 +y(for)i(the)h(widget,)f(a)g(binding)j(for)c(its)i(toplev)o(el,)g(and)g +(an)f Fw(all)g FF(binding.)22 b(The)16 b Fw(bindtags)e +FF(command)i(ma)o(y)37 1957 y(b)q(e)h(used)g(to)e(c)o(hange)i(this)f +(order)g(for)f(a)h(particular)h(windo)o(w)f(or)g(to)f(asso)q(ciate)h +(additional)i(binding)g(tags)37 2007 y(with)j(the)f(windo)o(w)g(\(see)g +(corresp)q(onding)h(help)h(page)e(for)f(details\).)35 +b(If)21 b(the)f(result)h(of)e(closure)i(in)g(the)37 2056 +y(bindings)g(c)o(hain)f(is)g(the)f(sym)o(b)q(ol)h Fw(break)p +FF(,)f(the)g(next)g(closures)h(of)f(the)g(c)o(hain)h(are)e(not)h +(executed.)33 b(The)37 2106 y(example)17 b(b)q(elo)o(w)e(illustrates)i +(this:)125 2188 y Fv(\(pack)j(\(entry)h('.e\)\))125 2237 +y(\(bind)f(.e)i("")d(\(lambda)h(\(|A|\))648 +2287 y(\(unless)g(\(string->number)f(|A|\))i('break\)\)\))37 +2425 y FF(Bindings)d(for)d(the)h(en)o(try)g Fw(.e)f FF(are)h(executed)g +(b)q(efore)g(those)g(for)f(its)h(class)g(\(i.e.)22 b +Fw(Entry)p FF(\).)e(This)d(allo)o(ws)f(us)37 2482 y(to)e(\014lter)g +(the)h(c)o(haracters)e(whic)o(h)i(are)f(e\013ectiv)o(ely)h(passed)f(to) +f(the)h Fw(.e)g FF(widget.)20 b(The)14 b(test)g(in)h(this)f(binding)37 +2538 y(closure)21 b(breaks)f(the)h(c)o(hain)g(of)e(bindings)j(if)f(the) +f(t)o(yp)q(ed)h(c)o(haracter)e(is)i(not)f(a)f(digit.)36 +b(Otherwise,)22 b(the)37 2594 y(follo)o(wing)e(binding,)h(the)e(one)f +(for)g(the)h Fw(Entry)f FF(class,)h(is)h(executed)f(and)g(inserts)g +(the)g(c)o(haracter)f(t)o(yp)q(ed)37 2651 y(\(a)d(digit\).)21 +b(Consequen)o(tly)l(,)16 b(the)g(simple)h(previous)f(binding)h(mak)o +(es)e Fw(.e)g FF(a)g(con)o(trolled)h(en)o(try)f(whic)o(h)h(only)37 +2707 y(accepts)g(in)o(teger)f(n)o(um)o(b)q(ers.)p 37 +2745 735 2 v 89 2771 a Ft(2)107 2787 y Fs(Old)d(syn)o(tax)h(for)f +(bindings)j(\(i.e.)h(strings\))e(is)e(no)h(more)f(supp)q(orted.)18 +b(Old)13 b(bindings)h(scripts)f(m)o(ust)g(hence)f(b)q(e)h(rewritten.)p +eop +%%Page: 70 70 +70 69 bop 37 45 a FE(70)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v eop +%%Page: 71 71 +71 70 bop 37 502 a FJ(App)s(endix)33 b(B)37 711 y FC(Di\013erences)39 +b(with)g(R4RS)37 934 y FF(This)21 b(app)q(endix)g(summarizes)f(the)g +(main)g(di\013erences)h(b)q(et)o(w)o(een)f(the)f FB(STk)g +FF(Sc)o(heme)i(implemen)o(tation)37 990 y(and)16 b(the)f(language)h +(describ)q(ed)h(in)f FD(R)681 974 y FA(4)693 990 y Fz(RS)s +FF(.)37 1137 y Fy(1)67 b(Sym)n(b)r(ols)37 1240 y FB(STk)15 +b FF(sym)o(b)q(ol)g(syn)o(tax)f(has)h(b)q(een)h(augmen)o(ted)f(to)g +(allo)o(w)g(case)g(signi\014can)o(t)h(sym)o(b)q(ols.)k(This)c +(extension)f(is)37 1296 y(discussed)i(in)f(6.4.)37 1366 +y FB(STk)f FF(also)g(de\014nes)h(some)f(sym)o(b)q(ols)h(in)g(the)f +(global)h(en)o(vironmen)o(t)f(whic)o(h)i(are)d(describ)q(ed)k(b)q(elo)o +(w:)106 1476 y Fo(\017)k Fw(*debug*)p FF(.)46 b(Setting)25 +b Fw(*debug*)e FF(to)h Fw(#t)g FF(prev)o(en)o(ts)g(macro)g(inlining)j +(and)e(expression)g(reco)q(ding)151 1532 y(\(see)15 b(6.25\).)106 +1628 y Fo(\017)22 b Fw(*gc-verbose*)p FF(.)c(If)e Fw(*gc-verbose*)d +FF(is)j Fw(#t)p FF(,)e(a)h(message)f(will)j(b)q(e)f(prin)o(ted)g(b)q +(efore)f(and)h(after)e(eac)o(h)151 1685 y(run)i(of)e(garbage)h +(collector.)20 b(The)c(message)e(is)i(prin)o(ted)g(on)f(the)h(standard) +e(error)h(stream.)106 1781 y Fo(\017)22 b Fw(*load-verbose*)p +FF(.)c(If)d Fw(*load-verbose*)f FF(is)h Fw(#t)p FF(,)g(the)g(absolute)h +(path)f(name)g(of)g(eac)o(h)g(loaded)h(\014le)151 1838 +y(is)21 b(prin)o(ted)g(b)q(efore)f(its)h(e\013ectiv)o(e)f(reading.)35 +b(File)22 b(names)e(are)g(prin)o(ted)h(on)f(the)g(standard)g(error)151 +1894 y(stream.)106 1990 y Fo(\017)i Fw(*load-path*)17 +b FF(m)o(ust)h(con)o(tain)h(a)f(list)h(of)f(strings.)30 +b(Eac)o(h)18 b(string)h(is)g(tak)o(en)f(as)g(a)g(directory)h(path)151 +2047 y(name)13 b(in)h(whic)o(h)g(a)f(\014le)h(will)g(b)q(e)g(searc)o +(hed)f(for)g(loading.)20 b(This)13 b(v)m(ariable)i(can)e(b)q(e)h(set)f +(automatically)151 2103 y(from)i(the)g Fw(STK)p 412 2103 +15 2 v 17 w(LOAD)p 525 2103 V 16 w(PATH)g FF(shell)i(v)m(ariable.)k +(See)16 b Fw(stk\(1\))e FF(for)h(more)f(details.)106 +2200 y Fo(\017)22 b Fw(*load-suffixes*)14 b FF(m)o(ust)h(con)o(tain)h +(a)f(list)h(of)g(strings.)21 b(When)16 b(the)g(system)f(try)g(to)g +(load)h(a)f(\014le)i(in)151 2256 y(a)f(giv)o(en)h(directory)g +(\(according)f(to)g Fw(*load-path*)f FF(v)m(alue\),)i(it)g(will)h +(\014rst)e(try)g(to)g(load)g(it)h(without)151 2312 y(su\016x.)35 +b(If)20 b(this)h(\014le)g(do)q(es)g(not)e(exist,)j(the)e(system)g(will) +i(sequen)o(tially)g(try)d(to)h(\014nd)h(the)f(\014le)h(b)o(y)151 +2369 y(app)q(ending)i(eac)o(h)f(su\016x)f(of)g(this)h(list.)39 +b(A)21 b(t)o(ypical)h(v)m(alue)h(for)e(this)g(v)m(ariable)i(ma)o(y)e(b) +q(e)h Fw(\("stk")151 2425 y("stklos")h("scm")g("so"\))p +FF(.)106 2522 y Fo(\017)f Fw(*argc*)12 b FF(con)o(tains)h(the)g(n)o(um) +o(b)q(er)g(of)g(argumen)o(ts)f(\(0)g(if)i(none\),)f(not)f(including)k +(in)o(terpreter)d(options.)151 2578 y(See)j Fw(stk\(1\))e +FF(for)h(more)g(details.)106 2674 y Fo(\017)22 b Fw(*argv*)d +FF(con)o(tains)h(a)g(Sc)o(heme)g(list)h(whose)f(elemen)o(ts)g(are)g +(the)g(argumen)o(ts)f(\(not)g(including)k(the)151 2731 +y(in)o(terpreter)17 b(options\),)g(in)h(order,)f(or)f(an)h(empt)o(y)g +(list)h(if)f(there)g(are)g(no)g(argumen)o(ts.)24 b(See)18 +b Fw(stk\(1\))151 2787 y FF(for)d(more)f(details.)934 +2901 y(71)p eop +%%Page: 72 72 +72 71 bop 37 45 a FE(72)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 106 190 a Fo(\017)22 b Fw(*program-name*)e +FF(con)o(tains)i(the)f(\014le)i(name)f(sp)q(eci\014ed)h(with)f(the)g +Fw(-file)f FF(option,)i(if)f(presen)o(t.)151 247 y(Otherwise,)14 +b(it)f(con)o(tains)f(the)h(name)g(through)f(whic)o(h)i(the)f(in)o +(terpreter)f(w)o(as)g(in)o(v)o(ok)o(ed.)20 b(See)13 b +Fw(stk\(1\))151 303 y FF(for)i(more)f(details.)106 400 +y Fo(\017)22 b Fw(*print-banner*)p FF(.)17 b(If)11 b +Fw(*print-banner*)e FF(is)j Fw(#f)p FF(,)f(the)g(usual)h(cop)o(yrigh)o +(t)f(message)f(is)i(not)f(displa)o(y)o(ed)151 456 y(when)16 +b(the)f(in)o(terpreter)g(is)h(started.)106 552 y Fo(\017)22 +b Fw(*stk-library*)11 b FF(con)o(tains)j(the)f(path)g(name)g(of)f(the)h +(installation)i(directory)e(of)g(the)g FB(STk)f FF(library)l(.)151 +609 y(This)i(v)m(ariable)g(can)f(b)q(e)h(set)e(automatically)i(from)e +(the)h Fw(STK)p 1171 609 15 2 v 16 w(LIBRARY)f FF(shell)j(v)m(ariable.) +20 b(See)14 b Fw(stk\(1\))151 665 y FF(for)h(more)f(details.)37 +775 y(The)i(follo)o(wing)g(sym)o(b)q(ols)f(are)g(de\014ned)i(only)f +(when)f(Tk)g(is)h(loaded:)106 884 y Fo(\017)22 b Fw(*root*)c +FF(designates)h(the)f(Tk)h(main)g(windo)o(w)f(\(see)h(A-2\).)29 +b(This)19 b(v)m(ariable)h(is)f(not)f(set)h(if)g(the)f(Tk)151 +941 y(to)q(olkit)e(is)f(not)g(initialized)q(.)106 1037 +y Fo(\017)22 b Fw(*help-path*)17 b FF(m)o(ust)h(con)o(tain)h(a)f(list)h +(of)f(strings.)30 b(Eac)o(h)18 b(string)h(is)g(tak)o(en)f(as)g(a)g +(directory)h(path)151 1094 y(name)13 b(in)i(whic)o(h)f(do)q(cumen)o +(tation)g(\014les)g(are)f(searc)o(hed.)19 b(This)14 b(v)m(ariable)h +(can)e(b)q(e)h(set)g(automatically)151 1150 y(from)h(the)g +Fw(STK)p 412 1150 V 17 w(HELP)p 525 1150 V 16 w(PATH)g +FF(shell)i(v)m(ariable.)k(See)16 b Fw(stk\(1\))e FF(for)h(more)f +(details.)106 1246 y Fo(\017)22 b Fw(*image-path*)15 +b FF(m)o(ust)i(con)o(tain)g(a)g(list)h(of)e(strings.)26 +b(Eac)o(h)16 b(string)h(is)h(tak)o(en)e(as)h(a)g(directory)g(path)151 +1303 y(name)11 b(in)h(whic)o(h)g(images)f(are)g(searc)o(hed)g(b)o(y)g +(the)g(function)h Fw(make-image)p FF(.)17 b(This)12 b(v)m(ariable)g +(can)f(b)q(e)h(set)151 1359 y(automatically)i(from)f(the)g +Fw(STK)p 693 1359 V 17 w(IMAGE)p 830 1359 V 17 w(PATH)g +FF(shell)i(v)m(ariable.)20 b(See)14 b Fw(stk\(1\))f FF(and)h +Fw(make-image\(n\))151 1416 y FF(for)h(more)f(details.)106 +1512 y Fo(\017)22 b Fw(*root*)c FF(designates)h(the)f(Tk)h(main)g +(windo)o(w)f(\(see)h(A-2\).)29 b(This)19 b(v)m(ariable)h(is)f(not)f +(set)h(if)g(the)f(Tk)151 1569 y(to)q(olkit)e(is)f(not)g(initialized)q +(.)106 1665 y Fo(\017)22 b Fw(*start-withdrawn*)p FF(.)16 +b(If)10 b(*start-withdra)o(wn*)f(is)i(not)e(false,)i(the)g(*ro)q(ot*)d +(windo)o(w)j(is)f(not)g(mapp)q(ed)151 1721 y(on)19 b(screen)g(un)o(til) +h(its)f(\014rst)g(sub-windo)o(w)g(is)h(pac)o(k)o(ed)f(or)f(some)h +(action)g(is)g(ask)o(ed)g(to)f(the)h(windo)o(w)151 1778 +y(manager)c(for)f(it.)106 1874 y Fo(\017)22 b Fw(*tk-version*)14 +b FF(is)i(a)f(string)g(whic)o(h)h(con)o(tains)g(the)f(v)o(ersion)h(n)o +(um)o(b)q(er)g(of)f(the)g(Tk)g(to)q(olkit)h(used)g(b)o(y)151 +1931 y FB(STk)p FF(.)106 2027 y Fo(\017)22 b Fw(*tk-patch-level*)c +FF(is)j(a)g(string)f(whic)o(h)i(con)o(tains)e(the)h(v)o(ersion)g(and)f +(patc)o(h)h(lev)o(el)g(of)g(the)f(Tk)151 2083 y(to)q(olkit)c(used)f(b)o +(y)h FB(STk)p FF(.)37 2193 y(F)l(urthermore,)f FB(STk)f +FF(also)h(de\014nes)i(the)e(follo)o(wing)h(pro)q(cedures)g(in)g(the)f +(global)h(en)o(vironmen)o(t:)106 2302 y Fo(\017)22 b +Fw(report-error)p FF(.)32 b(This)20 b(pro)q(cedure)h(is)f(called)i(b)o +(y)d(the)h(error)f(system)h(to)f(displa)o(y)i(the)e(message)151 +2359 y(error.)g(This)d(pro)q(cedure)g(is)g(describ)q(ed)h(in)f +Fw(report-error\(n\))106 2455 y Fo(\017)22 b Fw(repl-display-prompt)p +FF(.)i(This)18 b(pro)q(cedure)g(is)g(called)h(when)f(the)f(system)g(is) +h(run)g(in)o(teractiv)o(ely)151 2512 y(b)q(efore)e(reading)g(a)f +FD(sexpr)20 b FF(to)15 b(ev)m(aluate)h(to)f(displa)o(y)i(a)e(prompt.)20 +b(This)c(pro)q(cedure)h(is)f(describ)q(ed)h(in)151 2568 +y Fw(repl-display-prompt\(n\))p FF(.)106 2664 y Fo(\017)22 +b Fw(repl-display-result)p FF(.)i(This)18 b(pro)q(cedure)g(is)g(called) +h(when)f(the)f(system)g(is)h(run)g(in)o(teractiv)o(ely)151 +2721 y(after)k(the)g(ev)m(aluation)h(of)f(a)g FD(sexpr)27 +b FF(to)22 b(write)g(the)h(result.)41 b(This)23 b(pro)q(cedure)g(is)g +(describ)q(ed)h(in)151 2777 y Fw(repl-display-result\(n\))p +FF(.)p eop +%%Page: 73 73 +73 72 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(73)p 37 64 1838 2 v 37 190 a Fy(2)67 b(T)n(yp)r(es)37 +292 y FB(STk)18 b FF(implemen)o(ts)i(all)f(the)f(t)o(yp)q(es)h +(de\014ned)g(as)f(mandatory)g(in)h FD(R)1206 275 y FA(4)1218 +292 y Fz(RS)s FF(.)29 b(Ho)o(w)o(ev)o(er,)18 b(complex)h(n)o(um)o(b)q +(ers)37 348 y(and)h(rational)g(n)o(um)o(b)q(ers)f(\(whic)o(h)h(are)f +(de\014ned)i(but)e(not)g(required)i(in)f FD(R)1329 332 +y FA(4)1341 348 y Fz(RS)s FF(\))f(are)g(not)g(implemen)o(ted.)37 +405 y(The)d(lac)o(k)f(of)g(these)h(t)o(yp)q(es)f(implies)i(that)e(some) +f(functions)i(of)f FD(R)1160 388 y FA(4)1172 405 y Fz(RS)j +FF(are)d(not)g(de\014ned.)37 461 y(Some)i(t)o(yp)q(es)f(whic)o(h)h(are) +e(not)h(de\014ned)h(in)g FD(R)814 445 y FA(4)826 461 +y Fz(RS)i FF(are)d(implemen)o(ted)h(in)g FB(STk)p FF(.)22 +b(Those)16 b(t)o(yp)q(es)g(are)g(listed)37 518 y(b)q(elo)o(w:)106 +610 y Fo(\017)22 b FF(input)16 b(string)g(p)q(ort)e(t)o(yp)q(e)i +(\(6.10\))106 703 y Fo(\017)22 b FF(output)15 b(string)g(p)q(ort)g(t)o +(yp)q(e)g(\(6.10\))106 796 y Fo(\017)22 b FF(k)o(eyw)o(ord)15 +b(t)o(yp)q(e)g(\(6.11\))106 889 y Fo(\017)22 b FF(Tk)15 +b(command)g(t)o(yp)q(e)g(\(6.12\))106 982 y Fo(\017)22 +b FF(en)o(vironmen)o(t)16 b(t)o(yp)q(e)f(\(6.14\))106 +1075 y Fo(\017)22 b FF(macro)15 b(t)o(yp)q(e)g(\(6.15\))106 +1168 y Fo(\017)22 b FF(address)15 b(t)o(yp)q(e)h(\(6.17\))106 +1261 y Fo(\017)22 b FF(hash)15 b(table)h(t)o(yp)q(e)f(\(6.19\))106 +1354 y Fo(\017)22 b FF(Regular)16 b(expression)g(t)o(yp)q(e)f(\(6.20\)) +106 1447 y Fo(\017)22 b FF(pro)q(cess)16 b(t)o(yp)q(e)f(\(6.22\))106 +1540 y Fo(\017)22 b FF(so)q(c)o(k)o(et)15 b(t)o(yp)q(e)g(\(6.23\))37 +1683 y Fy(3)67 b(Pro)r(cedures)37 1785 y FF(The)17 b(follo)o(wing)h +(pro)q(cedures)f(are)f(required)i(b)o(y)f FD(R)911 1768 +y FA(4)923 1785 y Fz(RS)i FF(and)e(are)f(not)g(implemen)o(ted)i(in)g +(the)f FB(STk)f FF(in)o(ter-)37 1841 y(preter.)106 1933 +y Fo(\017)22 b FF(transcript-o\013)106 2026 y Fo(\017)g +FF(transcript-on)37 2118 y Fw(Transcript-off)9 b FF(and)h +Fw(transcript-on)f FF(can)h(b)q(e)h(sim)o(ulated)g(with)g(v)m(arious)g +(Unix)g(to)q(ols)f(suc)o(h)h(as)f Fw(script)37 2175 y +FF(or)15 b Fw(fep)p FF(.)37 2267 y(The)c(follo)o(wing)h(pro)q(cedures)f +(are)f(not)h(implemen)o(ted)h(in)g(the)e FB(STk)g FF(in)o(terpreter)h +(whereas)g(they)f(are)h(de\014ned)37 2323 y(in)17 b FD(R)124 +2307 y FA(4)136 2323 y Fz(RS)g FF(\(but)e(not)g(required\).)21 +b(They)15 b(are)g(all)h(related)g(to)e(complex)i(or)f(rational)g(n)o +(um)o(b)q(ers.)106 2415 y Fo(\017)22 b FF(n)o(umerator)106 +2508 y Fo(\017)g FF(denominator)106 2601 y Fo(\017)g +FF(rationalize)106 2694 y Fo(\017)g FF(mak)o(e-rectangular)106 +2787 y Fo(\017)g FF(mak)o(e-p)q(olar)p eop +%%Page: 74 74 +74 73 bop 37 45 a FE(74)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 106 190 a Fo(\017)22 b FF(real-part)106 +284 y Fo(\017)g FF(imag-part)106 378 y Fo(\017)g FF(magnitude)106 +472 y Fo(\017)g FF(angle)p eop +%%Page: 75 75 +75 74 bop 37 502 a FJ(App)s(endix)33 b(C)37 709 y FC(An)39 +b(in)m(tro)s(duction)f(to)h Fe(STklos)37 950 y Fy(1)67 +b(In)n(tro)r(duction)37 1052 y FB(STklos)16 b FF(is)h(the)f(ob)s(ject)g +(orien)o(ted)g(la)o(y)o(er)g(of)g FB(STk)p FF(.)22 b(Its)17 +b(implemen)o(tation)g(is)g(deriv)o(ed)g(from)e(v)o(ersion)i(1.3)37 +1108 y(of)d(the)g(Gregor)f(Kic)o(kzales)j(Tin)o(y)e(Clos)h(pac)o(k)m +(age)f([12)o(].)19 b(Ho)o(w)o(ev)o(er,)13 b(it)h(has)g(b)q(een)h +(extended)g(to)f(b)q(e)h(as)e(close)37 1164 y(as)h(p)q(ossible)i(to)d +(CLOS,)h(the)g(Common)g(Lisp)h(Ob)s(ject)f(System[6)o(].)19 +b(Some)14 b(features)g(of)f FB(STklos)g FF(are)h(also)37 +1221 y(issued)j(from)d(Dylan[13])g(or)h(SOS[14].)37 1277 +y(Brie\015y)h(stated,)f(the)g FB(STklos)f FF(extension)i(giv)o(es)f +(the)g(user)g(a)g(full)h(ob)s(ject)e(orien)o(ted)i(system)e(with)h +(meta-)37 1334 y(classes,)k(m)o(ultiple)g(inheritance,)g(generic)g +(functions)f(and)g(m)o(ulti-metho)q(ds.)28 b(F)l(urthermore,)17 +b(the)g(whole)37 1390 y(implemen)o(tation)22 b(relies)g(on)f(a)f(true)h +(meta)f(ob)s(ject)g(proto)q(col,)h(in)h(the)e(spirit)i(of)e(the)h(one)g +(de\014ned)h(for)37 1447 y(CLOS[15].)d(This)12 b(mo)q(del)h(has)f(also) +g(b)q(een)h(used)g(to)e(em)o(b)q(o)q(dy)i(the)f(prede\014ned)h(Tk)f +(widgets)g(in)h(a)f(hierarc)o(h)o(y)37 1503 y(of)19 b +FB(STklos)f FF(classes.)30 b(This)19 b(set)g(of)f(classes)h(p)q(ermits) +g(to)f(simplify)j(the)d(core)h(Tk)f(usage)g(b)o(y)h(pro)o(viding)37 +1560 y(homogeneous)f(accesses)h(to)e(widget)i(options)f(and)h(b)o(y)f +(hiding)i(the)e(lo)o(w)g(lev)o(el)h(details)g(of)f(Tk)g(widgets,)37 +1616 y(suc)o(h)c(as)g(naming)g(con)o(v)o(en)o(tions.)19 +b(F)l(urthermore,)13 b(as)g(exp)q(ected,)i(using)f(of)f(ob)s(jects)g +(facilitates)h(co)q(de)h(reuse)37 1673 y(and)h(de\014nition)h(of)e(new) +g(widgets)h(classes.)37 1729 y(The)f(purp)q(ose)h(of)e(this)h(app)q +(endix)i(is)e(to)f(in)o(tro)q(duce)i(brie\015y)g(the)f +FB(STklos)f FF(pac)o(k)m(age)g(and)h(in)h(no)f(case)f(will)37 +1785 y(it)19 b(replace)h(the)e FB(STklos)g FF(reference)h(man)o(ual)g +(\(whic)o(h)g(needs)g(to)f(b)q(e)h(urgen)o(tly)g(written)f(no)o(w)g(.)8 +b(.)f(.)g(\).)29 b(In)37 1842 y(particular,)15 b(metho)q(ds)f(relativ)o +(e)g(to)g(the)f(meta)h(ob)s(ject)f(proto)q(col)h(and)g(access)g(to)f +(the)h(Tk)g(to)q(olkit)g(will)h(not)37 1898 y(b)q(e)h(describ)q(ed)i +(here.)37 2040 y Fy(2)67 b(Class)22 b(de\014nition)i(and)f(instan)n +(tiation)37 2143 y FI(2.1)56 b(Class)19 b(de\014nition)37 +2229 y FF(A)e(new)f(class)h(is)g(de\014ned)g(with)g(the)f +Fw(define-class)f FF(macro.)22 b(The)17 b(syn)o(tax)e(of)h +Fw(define-class)f FF(is)h(close)37 2285 y(to)f(CLOS)h +Fw(defclass)p FF(:)125 2374 y Fv(\(define-class)j Fn(class)25 +b Fv(\()p Fp(h)p Fu(sup)q(erclass)758 2380 y Fm(1)778 +2374 y Fp(i)d(h)p Fu(sup)q(erclass)1012 2380 y Fm(2)1033 +2374 y Fp(i)p Fv(...\))190 2423 y(\()p Fp(h)p Fu(slot)f(description)512 +2429 y Fm(1)531 2423 y Fp(i)h(h)p Fu(slot)e(description)868 +2429 y Fm(2)888 2423 y Fp(i)p Fv(...\))190 2473 y Fp(h)p +Fu(metaclass)g(option)p Fp(i)p Fv(\))37 2618 y FF(The)13 +b Fo(h)p FF(metaclass)h(option)p Fo(i)e FF(will)h(not)f(b)q(e)g +(discussed)i(in)e(this)h(app)q(endix.)20 b(The)12 b Fo(h)p +FF(sup)q(erclass)p Fo(i)q FF(es)g(list)g(sp)q(eci\014es)37 +2674 y(the)h(sup)q(er)h(classes)f(of)g FD(class)i FF(\(see)e(3)f(for)h +(more)f(details\).)20 b(A)13 b Fo(h)p FF(slot)h(description)p +Fo(i)g FF(giv)o(es)f(the)g(name)g(of)g(a)f(slot)37 2731 +y(and,)19 b(ev)o(en)o(tually)l(,)g(some)f(\\prop)q(erties")g(of)f(this) +h(slot)g(\(suc)o(h)g(as)f(its)h(initial)i(v)m(alue,)g(the)d(function)i +(whic)o(h)37 2787 y(p)q(ermit)d(to)f(access)g(its)h(v)m(alue,)g(.)7 +b(.)g(.)g(\).)20 b(Slot)15 b(descriptions)i(will)g(b)q(e)f(discussed)g +(in)g(3.3.)934 2901 y(75)p eop +%%Page: 76 76 +76 75 bop 37 45 a FE(76)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FF(As)h(an)g(exemple,)i(consider)e(no)o(w)g +(that)f(w)o(e)g(ha)o(v)o(e)h(to)f(de\014ne)i(a)f(complex)g(n)o(um)o(b)q +(er.)29 b(This)18 b(can)g(b)q(e)h(done)37 247 y(with)d(the)f(follo)o +(wing)h(class)g(de\014nition:)125 356 y Fv(\(define-class)41 +b()19 b(\(\))190 406 y(\(r)i(i\)\))37 +570 y FF(This)e(binds)g(the)f(sym)o(b)q(ol)g Fw()f +FF(to)g(a)g(new)h(class)g(whose)g(instances)h(con)o(tain)f(t)o(w)o(o)e +(slots.)28 b(These)37 626 y(slots)16 b(are)g(called)i +Fw(r)e FF(an)g Fw(i)g FF(and)g(w)o(e)g(supp)q(ose)h(here)f(that)g(they) +g(con)o(tain)g(resp)q(ectiv)o(ely)i(the)e(real)g(part)g(and)37 +683 y(the)g(imaginary)f(part)g(of)g(a)f(complex)i(n)o(um)o(b)q(er.)21 +b(Note)14 b(that)h(this)h(class)f(inherits)i(from)d Fw()g +FF(whic)o(h)37 739 y(is)j(a)e(pre-de\014ned)j(class)e(\()p +Fw()e FF(is)j(the)f(sup)q(er)g(class)g(of)g(the)g +Fw()f FF(and)h Fw()e FF(pre-de\014ned)37 +796 y(classes\).)197 779 y FA(1)217 796 y FF(.)37 948 +y Fy(3)67 b(Inheritance)37 1054 y FI(3.1)56 b(Class)19 +b(hierarc)n(h)n(y)g(and)g(inheritance)e(of)i(slots)37 +1137 y FF(Inheritance)f(is)f(sp)q(eci\014ed)h(up)q(on)f(class)f +(de\014nition.)24 b(As)16 b(said)h(in)f(the)h(in)o(tro)q(duction,)g +FB(STklos)e FF(supp)q(orts)37 1186 y(m)o(ultiple)j(inheritance.)j +(Hereafter)15 b(are)g(some)g(classes)g(de\014nition:)125 +1282 y Fv(\(define-class)k(A)i(\(\))h(\(a\)\))125 1331 +y(\(define-class)d(B)i(\(\))h(\(b\)\))125 1381 y(\(define-class)d(C)i +(\(\))h(\(c\)\))125 1431 y(\(define-class)d(D)i(\(A)h(B\))f(\(d)g +(a\)\))125 1481 y(\(define-class)e(E)i(\(A)h(C\))f(\(e)g(c\)\))125 +1531 y(\(define-class)e(F)i(\(D)h(E\))f(\(f\)\))37 1681 +y Fw(A)p FF(,)e Fw(B)p FF(,)f Fw(C)g FF(ha)o(v)o(e)h(a)f(n)o(ull)i +(list)g(of)e(sup)q(er)i(classes.)31 b(In)19 b(this)g(case,)g(the)g +(system)g(will)h(replace)g(it)f(b)o(y)f(the)h(list)37 +1737 y(whic)o(h)f(only)g(con)o(tains)f Fw()p +FF(,)f(the)h(ro)q(ot)f(of)h(all)h(the)f(classes)g(de\014ned)i(b)o(y)e +Fw(define-class)p FF(.)23 b Fw(D)p FF(,)17 b Fw(E)p FF(,)f +Fw(F)37 1794 y FF(use)g(m)o(ultiple)h(inheritance:)22 +b(eac)o(h)15 b(class)g(inherits)i(from)d(t)o(w)o(o)g(previously)j +(de\014ned)f(classes.)21 b(Those)15 b(class)37 1850 y(de\014nitions)g +(de\014ne)f(a)e(hierarc)o(h)o(y)h(whic)o(h)g(is)h(sho)o(wn)e(in)h +(Figure)g(1.)19 b(In)13 b(this)g(\014gure,)g(the)g(class)g +Fw()f FF(is)h(also)37 1906 y(sho)o(wn;)18 b(this)g(class)g(is)g +(the)f(sup)q(er)i(class)e(of)g(all)i(Sc)o(heme)f(ob)s(jects.)26 +b(In)18 b(particular,)g Fw()f FF(is)h(the)f(sup)q(er)37 +1963 y(class)f(of)f(all)h(standard)f(Sc)o(heme)h(t)o(yp)q(es.)37 +2014 y(The)e(set)g(of)f(slots)h(of)f(a)g(giv)o(en)i(class)f(is)g +(calculated)h(b)o(y)f(\\unioning")g(the)g(slots)g(of)f(all)i(its)e(sup) +q(er)i(class.)20 b(F)l(or)37 2064 y(instance,)d(eac)o(h)f(instance)h +(of)f(the)g(class)g(D,)g(de\014ned)h(b)q(efore)f(will)i(ha)o(v)o(e)e +(three)g(slots)f(\()p Fw(a)p FF(,)h Fw(b)g FF(and)g Fw(d)p +FF(\).)22 b(The)37 2114 y(slots)16 b(of)e(a)h(class)h(can)f(b)q(e)h +(obtained)g(b)o(y)f(the)g Fw(class-slots)f FF(primitiv)o(e.)21 +b(F)l(or)15 b(instance,)125 2209 y Fv(\(class-slots)k(A\))343 +2259 y Fu(=)-7 b Fp(\))21 b Fv(\(a\))125 2309 y(\(class-slots)e(E\))343 +2358 y Fu(=)-7 b Fp(\))21 b Fv(\(a)h(e)f(c\))125 2408 +y(\(class-slots)e(F\))343 2458 y Fu(=)-7 b Fp(\))21 b +Fv(\(d)h(a)f(b)h(c)f(f\))37 2608 y Fn(Note:)37 b Fu(The)14 +b(order)h(of)e(slots)h(is)g(not)g(signi\014can)o(t.)p +37 2653 735 2 v 89 2680 a Ft(1)107 2696 y Fs(With)21 +b(this)g(de\014nition,)j(a)c Fq()d Fs(is)k(not)f(a)g +Fq()c Fs(since)21 b Fq()d Fs(inherits)j(from)f +Fq()d Fs(rather)j(than)37 2742 y Fq()p +Fs(.)29 b(In)18 b(practice,)i(inheritance)h(could)f(b)q(e)e(mo)q +(di\014ed)i Fr(a)e(p)n(osteriori)p Fs(,)f(if)h(needed.)33 +b(Ho)o(w)o(ev)o(er,)19 b(this)g(necessitates)37 2787 +y(some)14 b(kno)o(wledge)g(of)f(the)g(meta)g(ob)r(ject)g(proto)q(col)i +(and)f(it)f(will)i(not)e(b)q(e)g(sho)o(wn)h(in)f(this)h(do)q(cumen)o(t) +p eop +%%Page: 77 77 +77 76 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(77)p 37 64 1838 2 v 204 1049 a @beginspecial 0 @llx +0 @lly 361 @urx 217 @ury 3610 @rwi @setspecial %%BeginDocument: hierarchy.eps /$F2psDict 200 dict def $F2psDict begin @@ -17780,2229 +18242,2183 @@ gs 1 -1 scale () col-1 show gr gs 1 -1 scale () col-1 show gr $F2psEnd %%EndDocument - @endspecial 690 1133 a FD(Figure)g(C.1:)j(A)d(class)g(hierarc)o(h)o(y) -212 1271 y Ft(\(r)19 b(i\)\))75 1420 y FD(This)11 b(binds)g(the)h(sym)o -(b)q(ol)d Fu()h FD(to)h(a)f(new)i(class)g(whose)f(instances)i -(con)o(tain)d(t)o(w)o(o)h(slots.)17 b(These)c(slots)e(are)75 -1470 y(called)i Fu(r)h FD(an)f Fu(i)h FD(and)f(w)o(e)h(supp)q(ose)h -(here)g(that)e(they)i(con)o(tain)e(resp)q(ectiv)o(ely)i(the)f(real)g -(part)g(and)f(the)h(imaginary)75 1519 y(part)k(of)e(a)h(complex)g(n)o -(um)o(b)q(er.)27 b(Note)18 b(that)g(this)f(class)h(inherits)g(from)d -Fu()h FD(whic)o(h)h(is)h(a)f(pre-de\014ned)75 -1569 y(class)d(\()p Fu()f FD(is)g(the)i(sup)q(er)g(class)f(of)g -(the)g Fu()f FD(and)g Fu()f FD(pre-de\014ned)k -(classes\).)1613 1554 y Fy(1)1633 1569 y FD(.)75 1722 -y Fw(3)67 b(Inheritance)75 1826 y FG(3.1)56 b(Class)19 -b(hierarc)n(h)n(y)f(and)h(inheritance)f(of)g(slots)75 -1904 y FD(Inheritance)k(is)e(sp)q(eci\014ed)i(up)q(on)f(class)g -(de\014nition.)38 b(As)21 b(said)f(in)g(the)h(in)o(tro)q(duction,)h -Fz(STklos)f FD(supp)q(orts)75 1950 y(m)o(ultiple)12 b(inheritance.)18 -b(Hereafter)e(are)e(some)f(classes)i(de\014nition:)153 -2040 y Ft(\(define-cla)o(ss)h(A)j(\(\))g(\(a\)\))153 -2086 y(\(define-cla)o(ss)d(B)j(\(\))g(\(b\)\))153 2132 -y(\(define-cla)o(ss)d(C)j(\(\))g(\(c\)\))153 2177 y(\(define-cla)o(ss)d -(D)j(\(A)g(B\))g(\(d)g(a\)\))153 2223 y(\(define-cla)o(ss)d(E)j(\(A)g -(C\))g(\(e)g(c\)\))153 2269 y(\(define-cla)o(ss)d(F)j(\(D)g(E\))g -(\(f\)\))75 2406 y Fu(A)p FD(,)c Fu(B)p FD(,)g Fu(C)g -FD(ha)o(v)o(e)g(a)g(n)o(ull)g(list)g(of)g(sup)q(er)i(classes.)24 -b(In)15 b(this)h(case,)g(the)g(system)g(will)e(replace)i(it)f(b)o(y)g -(the)i(list)e(whic)o(h)75 2456 y(only)e(con)o(tains)h -Fu()p FD(,)d(the)j(ro)q(ot)g(of)f(all)g(the)h(classes)h -(de\014ned)g(b)o(y)e Fu(define-class)p FD(.)j Fu(D)p -FD(,)d Fu(E)p FD(,)g Fu(F)g FD(use)i(m)o(ultiple)75 2506 -y(inheritance:)k(eac)o(h)14 b(class)g(inherits)g(from)e(t)o(w)o(o)h -(previously)g(de\014ned)i(classes.)k(Those)c(class)f(de\014nitions)f -(de\014ne)75 2556 y(a)j(hierarc)o(h)o(y)h(whic)o(h)f(is)g(sho)o(wn)h -(in)f(Figure)g(1.)25 b(In)17 b(this)f(\014gure,)h(the)g(class)g -Fu()e FD(is)i(also)e(sho)o(wn;)j(this)e(class)75 -2605 y(is)h(the)h(sup)q(er)g(class)g(of)e(all)g(Sc)o(heme)h(ob)r -(jects.)29 b(In)17 b(particular,)h Fu()e FD(is)h(the)h(sup)q(er)g -(class)g(of)e(all)g(standard)75 2655 y(Sc)o(heme)e(t)o(yp)q(es.)p -75 2701 705 2 v 121 2728 a Fr(1)139 2740 y Fq(With)d(this)g -(de\014nition,)e(a)i Fo()f Fq(is)i(not)e(a)i Fo()d -Fq(since)h Fo()g Fq(inherits)g(from)g Fo()f -Fq(rather)h(than)h Fo()p Fq(.)75 2779 y(In)f(practice,)e -(inheritance)f(could)i(b)q(e)h(mo)q(di\014ed)e Fp(a)k(p)n(osteriori)p -Fq(,)f(if)g(needed.)h(Ho)o(w)o(ev)o(er,)e(this)g(necessitates)e(some)h -(kno)o(wledge)f(of)i(the)75 2819 y(meta)g(ob)r(ject)g(proto)q(col)f -(and)i(it)g(will)h(not)f(b)q(e)g(sho)o(wn)g(in)g(this)g(do)q(cumen)o(t) -p eop -%%Page: 69 69 -69 68 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(69)p 75 64 1763 2 v 75 179 a FD(The)17 b(set)h(of)e(slots)h(of)f(a)g -(giv)o(en)g(class)i(is)e(calculated)h(b)o(y)f(\\unioning")f(the)j -(slots)f(of)f(all)f(its)i(sup)q(er)h(class.)27 b(F)m(or)75 -224 y(instance,)14 b(eac)o(h)h(instance)g(of)e(the)i(class)g(D,)e -(de\014ned)i(b)q(efore)g(will)d(ha)o(v)o(e)i(three)i(slots)e(\()p -Fu(a)p FD(,)g Fu(b)f FD(and)h Fu(d)p FD(\).)19 b(The)14 -b(slots)75 270 y(of)f(a)h(class)g(can)g(b)q(e)h(obtained)e(b)o(y)h(the) -h Fu(class-slots)c FD(primitiv)o(e.)16 b(F)m(or)d(instance,)153 -352 y Ft(\(class-slot)o(s)j(A\))350 397 y Fs(=)-6 b Fn(\))19 -b Ft(\(a\))153 443 y(\(class-slot)o(s)d(E\))350 489 y -Fs(=)-6 b Fn(\))19 b Ft(\(a)g(e)g(c\))153 534 y(\(class-slot)o(s)d(F\)) -350 580 y Fs(=)-6 b Fn(\))19 b Ft(\(d)g(a)g(b)g(c)h(f\))75 -711 y Fl(Note:)32 b Fs(The)13 b(order)h(of)f(slots)g(is)h(not)f -(signi\014can)o(t.)75 830 y FG(3.2)56 b(Instance)18 b(creation)g(and)h -(slot)f(access)75 908 y FD(Creation)d(of)f(an)g(instance)i(of)e(a)g -(previously)h(de\014ned)h(class)f(can)g(b)q(e)g(done)g(with)g(the)g -Fu(make)f FD(pro)q(cedure.)23 b(This)75 958 y(pro)q(cedure)13 -b(tak)o(es)f(one)f(mandatory)e(parameter)i(whic)o(h)g(is)g(the)h(class) -f(of)g(the)g(instance)h(whic)o(h)f(m)o(ust)f(b)q(e)i(created)75 -1008 y(and)h(a)f(list)g(of)g(optional)g(argumen)o(ts.)17 -b(Optional)11 b(argumen)o(ts)h(are)i(generally)e(used)i(to)e -(initialize)f(some)h(slots)h(of)75 1058 y(the)h(newly)g(created)i -(instance.)i(F)m(or)c(instance,)g(the)h(follo)o(wing)c(form)153 -1148 y Ft(\(define)17 b(c)j(\(make)d(\))o(\))75 -1288 y FD(will)12 b(create)k(a)d(new)i Fu()d -FD(ob)r(ject)i(and)g(will)e(bind)i(it)g(to)f(the)i Fu(c)e -FD(Sc)o(heme)h(v)n(ariable.)75 1338 y(Accessing)f(the)e(slots)h(of)e -(the)i(new)f(complex)f(n)o(um)o(b)q(er)g(can)i(b)q(e)f(done)h(with)f -(the)g Fu(slot-ref)f FD(and)h(the)g Fu(slot-set!)75 1388 -y FD(primitiv)o(es.)16 b Fu(Slot-set!)h FD(primitiv)o(e)11 -b(p)q(ermits)j(to)f(set)i(the)f(v)n(alue)f(of)h(an)f(ob)r(ject)i(slot)e -(and)h Fu(slot-ref)e FD(p)q(ermits)75 1438 y(to)i(get)g(its)g(v)n -(alue.)153 1529 y Ft(\(slot-set!)i(c)j('r)g(10\))153 -1574 y(\(slot-set!)d(c)j('i)g(3\))153 1620 y(\(slot-ref)e(c)i('r\))350 -1666 y Fs(=)-6 b Fn(\))19 b Ft(10)153 1711 y(\(slot-ref)e(c)i('i\))350 -1757 y Fs(=)-6 b Fn(\))19 b Ft(3)75 1897 y FD(Using)14 -b(the)g Fu(describe)f FD(generic)h(function)g(is)g(a)g(simple)e(w)o(a)o -(y)h(to)h(see)h(all)e(the)h(slots)g(of)g(an)g(ob)r(ject)g(at)g(one)g -(time:)75 1946 y(this)f(function)g(prin)o(ts)g(all)e(the)j(slots)f(of)f -(an)h(ob)r(ject)h(on)e(the)i(standard)f(output.)18 b(F)m(or)12 -b(instance,)i(the)f(expression)153 2037 y Ft(\(describe)k(c\))75 -2172 y FD(will)12 b(prin)o(t)i(the)h(follo)o(wing)c(informations)g(on)j -(the)g(standard)h(output:)153 2254 y Ft(#[)h(122398])h(is)i -(an)f(instance)f(of)i(class)e()153 2300 y(Slots)h(are:)252 -2345 y(r)h(=)g(10)252 2391 y(i)g(=)g(3)75 2556 y FG(3.3)56 -b(Slot)18 b(description)75 2634 y FD(When)c(sp)q(ecifying)f(a)g(slot,)g -(a)g(set)h(of)f(options)g(can)h(b)q(e)g(giv)o(en)f(to)g(the)h(system.)k -(Eac)o(h)c(option)f(is)g(sp)q(eci\014ed)i(with)75 2684 -y(a)f(k)o(eyw)o(ord.)k(The)c(list)f(of)h(authorised)g(k)o(eyw)o(ords)g -(is)g(giv)o(en)f(b)q(elo)o(w:)137 2769 y Fm(\017)21 b -Fu(:initform)12 b FD(p)q(ermits)i(to)g(supply)g(a)g(default)g(v)n(alue) -f(for)h(the)h(slot.)j(This)c(default)g(v)n(alue)g(is)g(obtained)g(b)o -(y)179 2819 y(ev)n(aluating)e(the)j(form)d(giv)o(en)h(after)h(the)h -Fu(:initform)d FD(in)h(the)i(global)d(en)o(vironmen)o(t.)p -eop -%%Page: 70 70 -70 69 bop 75 47 a FC(70)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 137 179 a Fm(\017)21 b Fu(:init-keyword)10 -b FD(p)q(ermits)i(to)h(sp)q(ecify)g(the)g(k)o(eyw)o(ord)g(for)f -(initializing)f(a)h(slot.)17 b(The)d(init-k)o(eyw)o(ord)d(ma)o(y)179 -229 y(b)q(e)k(pro)o(vided)g(during)g(instance)g(creation)g(\(i.e.)21 -b(in)14 b(the)i(mak)o(e)d(optional)h(parameter)g(list\).)21 -b(Sp)q(ecifying)179 278 y(suc)o(h)e(a)e(k)o(eyw)o(ord)h(during)g -(instance)h(initialization)d(will)g(sup)q(ersede)21 b(the)e(default)e -(slot)h(initialization)179 328 y(p)q(ossibly)13 b(giv)o(en)h(with)f -Fu(:initform)p FD(.)137 407 y Fm(\017)21 b Fu(:getter)14 -b FD(p)q(ermits)h(to)h(supply)f(the)i(name)d(for)h(the)i(slot)e -(getter.)25 b(The)16 b(name)e(binding)h(is)h(done)g(in)f(the)179 -457 y(global)d(en)o(vironmen)o(t.)137 535 y Fm(\017)21 -b Fu(:setter)14 b FD(p)q(ermits)i(to)f(supply)h(the)h(name)e(for)g(the) -i(slot)e(setter.)26 b(The)17 b(name)d(binding)h(is)h(done)g(in)g(the) -179 585 y(global)c(en)o(vironmen)o(t.)137 664 y Fm(\017)21 -b Fu(:accessor)13 b FD(p)q(ermits)i(to)g(supply)g(the)g(name)f(for)h -(the)h(slot)f(accessor.)23 b(The)16 b(name)d(binding)i(is)g(done)g(in) -179 714 y(the)g(global)d(en)o(vironmen)o(t.)19 b(An)14 -b(accessor)i(p)q(ermits)e(to)h(get)f(and)g(set)i(the)f(v)n(alue)e(of)h -(a)g(slot.)19 b(Setting)c(the)179 763 y(v)n(alue)e(of)g(a)h(slot)g(is)f -(done)h(with)g(the)g(extended)i(v)o(ersion)e(of)f Fu(set!)p -FD(.)137 842 y Fm(\017)21 b Fu(:allocation)11 b FD(p)q(ermits)i(to)g -(sp)q(ecify)h(ho)o(w)e(storage)i(for)f(the)h(slot)f(is)g(allo)q(cated.) -k(Three)e(kinds)e(of)g(allo)q(ca-)179 892 y(tion)g(are)h(pro)o(vided.)k -(They)d(are)f(describ)q(ed)i(b)q(elo)o(w:)225 970 y FC({)21 -b Fu(:instance)15 b FD(indicates)i(that)f(eac)o(h)h(instance)g(gets)h -(its)e(o)o(wn)g(storage)h(for)f(the)h(slot.)26 b(This)16 -b(is)h(the)270 1020 y(default.)225 1082 y FC({)k Fu(:class)14 -b FD(indicates)h(that)g(there)i(is)d(one)i(storage)f(lo)q(cation)f -(used)i(b)o(y)f(all)f(the)h(direct)h(and)f(indirect)270 -1132 y(instances)j(of)e(the)i(class.)27 b(This)17 b(p)q(ermits)f(to)g -(de\014ne)i(a)f(kind)f(of)g(global)f(v)n(ariable)h(whic)o(h)h(can)g(b)q -(e)270 1182 y(accessed)f(only)d(b)o(y)h(\(in\)direct)h(instances)g(of)e -(the)h(class)h(whic)o(h)f(de\014nes)h(this)f(slot.)225 -1244 y FC({)21 b Fu(:virtual)13 b FD(indicates)j(that)f(no)g(storage)g -(will)f(b)q(e)i(allo)q(cated)e(for)h(this)g(slot.)21 -b(It)16 b(is)f(up)g(to)g(the)g(user)270 1294 y(to)g(de\014ne)h(a)f -(getter)h(and)f(a)g(setter)h(function)f(for)g(this)g(slot.)21 -b(Those)16 b(functions)f(m)o(ust)f(b)q(e)h(de\014ned)270 -1344 y(with)f(the)g Fu(:slot-ref)e FD(and)i Fu(:slot-set!)i -FD(options.)i(See)d(the)f(example)f(b)q(elo)o(w.)75 1418 -y(T)m(o)e(illustrate)h(slot)f(description,)i(w)o(e)f(shall)f -(rede\014ne)j(the)e Fu()e FD(class)j(seen)g(b)q(efore.)18 -b(A)12 b(de\014nition)g(could)75 1464 y(b)q(e:)153 1534 -y Ft(\(define-cla)o(ss)k()g(\(\))212 -1580 y(\(\(r)j(:initform)d(0)j(:getter)e(get-r)h(:setter)f(set-r!)g -(:init-key)o(wor)o(d)g(:r\))232 1625 y(\(i)i(:initform)d(0)j(:getter)e -(get-i)h(:setter)f(set-i!)g(:init-key)o(wor)o(d)g(:i\)\)\))75 -1741 y FD(With)10 b(this)i(de\014nition,)e(the)i Fu(r)f -FD(and)g Fu(i)g FD(slot)f(are)i(set)g(to)f(0)g(b)o(y)f(default.)17 -b(V)m(alue)11 b(of)f(a)h(slot)g(can)g(also)f(b)q(e)i(sp)q(eci\014ed)h -(b)o(y)75 1787 y(calling)f Fu(make)h FD(with)g(the)h -Fu(:r)f FD(and)g Fu(:i)g FD(k)o(eyw)o(ords.)18 b(F)m(urthermore,)13 -b(the)h(generic)h(functions)e Fu(get-r)f FD(and)i Fu(set-r!)75 -1832 y FD(\(resp.)19 b Fu(get-i)12 b FD(and)i Fu(set-i!)p -FD(\))j(are)d(automatically)c(de\014ned)15 b(b)o(y)e(the)h(system)f(to) -g(read)h(and)g(write)f(the)h Fu(r)g FD(\(resp.)75 1878 -y Fu(i)p FD(\))g(slot.)153 1948 y Ft(\(define)j(c1)i(\(make)f -()e(:r)j(1)g(:i)g(2\)\))153 1994 y(\(get-r)f(c1\))350 -2039 y Fs(=)-6 b Fn(\))19 b Ft(1)153 2085 y(\(set-r!)e(c1)i(12\))153 -2131 y(\(get-r)f(c1\))350 2176 y Fs(=)-6 b Fn(\))19 b -Ft(12)153 2222 y(\(define)e(c2)i(\(make)f()e(:r)j(2\)\))153 -2268 y(\(get-r)f(c2\))350 2313 y Fs(=)-6 b Fn(\))19 b -Ft(2)153 2359 y(\(get-i)f(c2\))350 2405 y Fs(=)-6 b Fn(\))19 -b Ft(0)75 2520 y FD(Accessors)d(pro)o(vide)c(an)h(uniform)e(access)k -(for)e(reading)f(and)h(writing)f(an)h(ob)r(ject)h(slot.)j(W)m(riting)12 -b(a)h(slot)f(is)h(done)75 2566 y(with)18 b(an)f(extended)j(form)c(of)i -Fu(set!)29 b FD(whic)o(h)18 b(is)g(close)h(to)e(the)i(Common)c(Lisp)j -Fu(setf)f FD(macro.)29 b(So,)18 b(another)75 2612 y(de\014nition)13 -b(of)h(the)g(previous)g Fu()e FD(class,)i(using)g(the)g -Fu(:accessor)e FD(option,)h(could)h(b)q(e:)153 2682 y -Ft(\(define-cla)o(ss)i()g(\(\))212 2728 -y(\(\(r)j(:initform)d(0)j(:accessor)d(real-part)g(:init-keywo)o(rd)g -(:r\))232 2773 y(\(i)j(:initform)d(0)j(:accessor)d(imag-part)g -(:init-keywo)o(rd)g(:i\)\)\))p eop -%%Page: 71 71 -71 70 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(71)p 75 64 1763 2 v 270 160 a Fo(\(define-cla)o(ss)14 -b()h(\()o(\))323 200 y(\(;;)i(True)f(slots)g(use)g -(rectangular)e(coordinate)o(s)341 239 y(\(r)j(:initform)d(0)j -(:accessor)e(real-part)f(:init-keywo)o(rd)g(:r\))341 -279 y(\(i)j(:initform)d(0)j(:accessor)e(imag-part)f(:init-keywo)o(rd)g -(:i\))341 318 y(;;)j(Virtual)e(slots)h(access)f(do)i(the)g(conversio)o -(n)341 358 y(\(m)g(:accessor)d(magnitude)g(:init-keywor)o(d)g(:magn)394 -397 y(:allocati)o(on)g(:virtual)394 436 y(:slot-ref)g(\(lambda)h(\(o\)) -605 476 y(\(let)i(\(\(r)f(\(slot-ref)f(o)i('r\)\))f(\(i)h(\(slot-ref)d -(o)k('i\)\)\))641 515 y(\(sqrt)d(\(+)i(\(*)g(r)h(r\))f(\(*)f(i)i -(i\)\)\)\)\))394 555 y(:slot-set)o(!)d(\(lambda)g(\(o)i(m\))641 -594 y(\(let)f(\(\(a)g(\(slot-ref)f(o)i('a\)\)\))676 634 -y(\(slot-set!)d(o)j('r)g(\(*)g(m)g(\(cos)g(a\)\)\))676 -673 y(\(slot-set!)d(o)j('i)g(\(*)g(m)g(\(sin)g(a\)\)\)\)\)\))341 -712 y(\(a)g(:accessor)d(angle)i(:init-keyw)o(ord)e(:angle)394 -752 y(:allocati)o(on)g(:virtual)394 791 y(:slot-ref)g(\(lambda)h(\(o\)) -605 831 y(\(atan)h(\(slot-ref)f(o)i('i\))f(\(slot-ref)f(o)i('r\)\)\)) -394 870 y(:slot-set)o(!)e(\(lambda\(o)f(a\))623 910 y(\(let)i(\(\(m)h -(\(slot-ref)d(o)j('m\)\)\))676 949 y(\(slot-set!)d(o)j('r)g(\(*)g(m)g -(\(cos)g(a\)\)\))676 988 y(\(slot-set!)d(o)j('i)g(\(*)g(m)g(\(sin)g -(a\)\)\)\)\)\)\)\))339 1119 y FD(Figure)d(C.2:)j FB(A)e -Fu()e FB(numb)n(er)i(class)g(de\014nition)g(using)h(virtual)e -(slots)75 1275 y FD(Using)g(this)g(class)g(de\014nition,)f(reading)h -(the)g(real)g(part)g(of)f(the)i Fu(c)e FD(complex)g(can)h(b)q(e)h(done) -f(with:)153 1356 y Ft(\(real-part)i(c\))75 1483 y FD(and)f(setting)h -(it)f(to)h(the)g(v)n(alue)f(con)o(tained)g(in)h(the)g -Fu(new-value)d FD(v)n(ariable)i(can)h(b)q(e)g(done)g(using)f(the)h -(extended)75 1528 y(form)c(of)h Fu(set!)p FD(.)153 1610 -y Ft(\(set!)18 b(\(real-part)e(c\))j(new-value)o(\))75 -1740 y FD(Supp)q(ose)d(no)o(w)e(that)h(w)o(e)g(ha)o(v)o(e)g(to)g -(manipulate)e(complex)g(n)o(um)o(b)q(ers)i(with)f(rectangular)i(co)q -(ordinates)f(as)g(w)o(ell)75 1790 y(as)g(with)f(p)q(olar)g(co)q -(ordinates.)21 b(One)16 b(solution)d(could)i(b)q(e)g(to)g(ha)o(v)o(e)f -(a)h(de\014nition)f(of)g(complex)f(n)o(um)o(b)q(ers)i(whic)o(h)75 -1840 y(uses)g(one)f(particular)f(represen)o(tation)i(and)f(some)e(con)o -(v)o(ersion)i(functions)g(to)f(pass)h(from)e(one)i(represen)o(tation)75 -1890 y(to)i(the)g(other.)25 b(A)16 b(b)q(etter)i(solution)d(uses)i -(virtual)e(slots.)24 b(A)16 b(complete)g(de\014nition)f(of)g(the)i -Fu()d FD(class)75 1940 y(using)g(virtual)f(slots)h(is)f(giv)o -(en)h(in)f(Figure)h(2.)75 2038 y(This)h(class)g(de\014nition)g -(implemen)o(ts)e(t)o(w)o(o)h(real)h(slots)g(\()p Fu(r)g -FD(and)g Fu(i)p FD(\).)21 b(V)m(alues)15 b(of)g(the)g -Fu(m)g FD(and)g Fu(a)g FD(virtual)f(slots)h(are)75 2084 -y(calculated)i(from)e(real)i(slot)g(v)n(alues.)26 b(Reading)16 -b(a)h(virtual)f(slot)g(leads)h(to)g(the)h(application)d(of)h(the)i -(function)75 2129 y(de\014ned)i(in)d(the)i Fu(:slot-ref)e -FD(option.)31 b(W)m(riting)17 b(suc)o(h)i(a)f(slot)g(leads)h(to)f(the)h -(application)e(of)h(the)h(function)75 2175 y(de\014ned)c(in)e(the)i -Fu(:slot-set!)h FD(option.)i(F)m(or)13 b(instance,)h(the)h(follo)o -(wing)c(expression)153 2256 y Ft(\(slot-set!)16 b(c)j('a)g(3\))75 -2383 y FD(p)q(ermits)g(to)g(set)h(the)g(angle)f(of)g(the)h -Fu(c)f FD(complex)f(n)o(um)o(b)q(er.)34 b(This)19 b(expression)i -(conducts,)g(in)e(fact,)i(to)e(the)75 2428 y(ev)n(aluation)12 -b(of)i(the)g(follo)o(wing)e(expression)153 2510 y Ft(\(\(lambda)17 -b(o)i(m\))232 2555 y(\(let)f(\(\(m)g(\(slot-ref)f(o)i('m\)\)\))291 -2601 y(\(slot-set)o(!)e(o)i('r)g(\(*)f(m)i(\(cos)e(a\)\)\))291 -2647 y(\(slot-set)o(!)f(o)i('i)g(\(*)f(m)i(\(sin)e(a\)\)\)\))193 -2692 y(c)h(3\))75 2819 y FD(A)14 b(more)f(complete)g(example)g(is)g -(giv)o(en)h(b)q(elo)o(w:)p eop -%%Page: 72 72 -72 71 bop 75 47 a FC(72)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 153 179 a Ft(\(define)j(c)j(\(make)d()f(:r)j -(12)g(:i)g(20\)\))153 224 y(\(real-part)d(c\))350 270 -y Fs(=)-6 b Fn(\))19 b Ft(12)153 316 y(\(angle)f(c\))350 -361 y Fs(=)-6 b Fn(\))19 b Ft(1.03037682)o(65)o(243)o(1)153 -407 y(\(slot-set!)d(c)j('i)g(10\))153 453 y(\(set!)f(\(real-part)e(c\)) -j(1\))153 498 y(\(describe)e(c\))350 544 y Fs(=)-6 b -Fn(\))350 590 y Ft(#[)16 b(128bf8])h(is)i(an)g(instance)d -(of)j(class)f()350 635 y(Slots)f(are:)448 681 -y(r)i(=)g(1)448 727 y(i)g(=)g(10)448 772 y(m)g(=)g(10.0498756)o(21)o -(120)o(9)448 818 y(a)g(=)g(1.47112767)o(43)o(037)o(3)75 -946 y FD(Since)10 b(initialization)c(k)o(eyw)o(ords)k(ha)o(v)o(e)f(b)q -(een)h(de\014ned)h(for)e(the)h(four)f(slots,)g(w)o(e)h(can)f(no)o(w)g -(de\014ne)i(the)e Fu(make-rectangular)75 991 y FD(and)14 -b Fu(make-polar)d FD(standard)k(Sc)o(heme)f(primitiv)o(es.)153 -1074 y Ft(\(define)j(make-rectan)o(gu)o(lar)212 1120 -y(\(lambda)g(\(x)i(y\))g(\(make)f()f(:r)i(x)g(:i)g(y\)\)\)) -153 1211 y(\(define)e(make-polar)212 1257 y(\(lambda)g(\(x)i(y\))g -(\(make)f()f(:magn)g(x)j(:angle)d(y\)\)\))75 -1470 y FG(3.4)56 b(Class)19 b(precedence)e(list)75 1549 -y FD(A)e(class)g(ma)o(y)e(ha)o(v)o(e)h(more)g(than)g(one)h(sup)q -(erclass.)877 1534 y Fy(2)918 1549 y FD(With)f(single)g(inheritance)i -(\(one)f(sup)q(erclass\),)h(it)e(is)h(easy)75 1599 y(to)f(order)g(the)h -(sup)q(er)g(classes)g(from)d(most)h(to)h(least)g(sp)q(eci\014c.)19 -b(This)14 b(is)g(the)g(rule:)270 1694 y FC(Rule)g(1:)22 -b(Eac)o(h)16 b(class)f(is)g(more)g(sp)q(eci\014c)g(than)f(its)h(sup)q -(erclasses.)75 1786 y FD(With)e(m)o(ultiple)f(inheritance,)i(ordering)g -(is)g(harder.)k(Supp)q(ose)d(w)o(e)f(ha)o(v)o(e)153 1869 -y Ft(\(define-cla)o(ss)i(X)j(\(\))212 1914 y(\(\(x)g(:initform)d -(1\)\)\))153 2006 y(\(define-cla)o(ss)g(Y)j(\(\))212 -2051 y(\(\(x)g(:initform)d(2\)\)\))153 2143 y(\(define-cla)o(ss)g(Z)j -(\(X)g(Y\))212 2188 y(\(...\)\))75 2320 y FD(In)f(this)f(case,)i(the)f -Fu(Z)g FD(class)g(is)f(more)g(sp)q(eci\014c)i(than)e(the)h -Fu(X)g FD(or)f Fu(Y)h FD(class)g(for)f(instances)i(of)e -Fu(Z)p FD(.)f(Ho)o(w)o(ev)o(er,)j(the)75 2370 y Fu(:initform)14 -b FD(sp)q(eci\014ed)j(in)f Fu(X)g FD(and)f Fu(Y)h FD(leads)g(to)g(a)g -(problem:)k(whic)o(h)c(one)g(o)o(v)o(errides)h(the)f(other?)25 -b(The)17 b(rule)f(in)75 2420 y Fz(STklos)p FD(,)j(as)f(in)f(CLOS,)h(is) -f(that)h(the)g(sup)q(erclasses)j(listed)c(earlier)h(are)g(more)f(sp)q -(eci\014c)i(than)f(those)g(listed)75 2469 y(later.)g(So:)270 -2556 y FC(Rule)c(2:)21 b(F)l(or)15 b(a)h(giv)o(en)e(class,)h(sup)q -(erclasses)f(listed)f(earlier)g(are)i(more)g(sp)q(e-)270 -2605 y(ci\014c)g(than)g(those)g(listed)e(later.)75 2692 -y FD(These)20 b(rules)f(are)g(used)h(to)e(compute)g(a)g(linear)h(order) -g(for)f(a)g(class)h(and)g(all)e(its)i(sup)q(erclasses,)j(from)17 -b(most)75 2741 y(sp)q(eci\014c)f(to)e(least)h(sp)q(eci\014c.)21 -b(This)14 b(order)h(is)f(called)h(the)g(\\class)f(precedence)k(list")13 -b(of)h(the)h(class.)20 b(Giv)o(en)14 b(those)p 75 2780 -705 2 v 121 2807 a Fr(2)139 2819 y Fq(This)d(section)f(is)h(an)g -(adaptation)e(of)i(Je\013)g(Dalton's)f(\(J.Dalton@ed.ac.u)o(k\))e -(Brief)j(in)o(tro)q(duction)d(to)j(CLOS\))p eop -%%Page: 73 73 -73 72 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(73)p 75 64 1763 2 v 75 179 a FD(t)o(w)o(o)13 b(rules,)g(w)o(e)h(can)f -(claim)f(that)h(the)h(initial)d(form)h(for)h(the)g Fu(x)g -FD(slot)h(of)e(previous)i(example)e(is)h(2)g(since)h(the)g(class)75 -229 y Fu(X)g FD(is)f(placed)i(b)q(efore)f Fu(Y)g FD(in)f(class)i -(precedence)i(list)c(of)g Fu(Z)p FD(.)75 278 y(This)g(t)o(w)o(o)f -(rules)h(are)g(not)g(alw)o(a)o(ys)e(enough)i(to)g(determine)f(a)g -(unique)h(order,)g(ho)o(w)o(ev)o(er,)g(but)g(they)g(giv)o(e)f(an)h -(idea)75 328 y(of)g(ho)o(w)h(things)g(w)o(ork.)19 b Fz(STklos)c -FD(algorithm)c(for)j(calculating)f(the)i(precedence)i(list)c(is)h(a)g -(little)g(simpler)e(than)75 378 y(the)g(CLOS)f(one)h(describ)q(ed)h(in) -e([15)o(])g(for)g(breaking)g(ties.)18 b(Consequen)o(tly)11 -b(the)h(calculated)g(class)g(precedence)i(list)75 428 -y(could)f(b)q(e)i(di\013eren)o(t.)j(T)m(aking)12 b(the)j -Fu(F)e FD(class)h(sho)o(wn)f(in)g(Figure)h(1,)f(the)h -Fz(STklos)h FD(calculated)e(class)h(precedence)75 478 -y(list)f(is)179 566 y Fu(\(f)21 b(d)h(e)f(a)h(b)g(c)f()f -(\))75 654 y FD(whereas)15 b(it)f(w)o(ould)f(b)q(e)h(the)h(follo)o -(wing)c(list)i(with)h(a)g(CLOS-lik)o(e)f(algorithm:)179 -734 y Fu(\(f)21 b(d)h(e)f(a)h(c)g(b)f()f(\))75 -815 y FD(Ho)o(w)o(ev)o(er,)13 b(it)f(is)h(usually)f(considered)i(a)e -(bad)h(idea)f(for)g(programmers)f(to)i(rely)g(on)f(exactly)h(what)f -(the)i(order)f(is.)75 865 y(If)f(the)i(order)f(for)g(some)f(sup)q -(erclasses)j(is)e(imp)q(ortan)o(t,)d(it)j(can)g(b)q(e)g(expressed)i -(directly)e(in)g(the)g(class)g(de\014nition.)75 910 y(The)18 -b(precedence)j(list)c(of)g(a)g(class)h(can)g(b)q(e)g(obtained)f(b)o(y)h -(the)g(function)f Fu(class-precedence-)o(list)p FD(.)26 -b(This)75 956 y(function)14 b(returns)h(a)f(ordered)h(list)e(whose)i -(\014rst)f(elemen)o(t)g(is)f(the)i(most)e(sp)q(eci\014c)i(class.)j(F)m -(or)c(instance,)153 1032 y Ft(\(class-prec)o(ed)o(enc)o(e-l)o(is)o(t)j -(B\))350 1078 y Fs(=)-6 b Fn(\))19 b Ft(\(#[)d(12a248])h -(#[)f(1074e8])h(#[)f(107498]\))75 1200 -y FD(Ho)o(w)o(ev)o(er,)21 b(this)f(result)h(is)f(not)f(to)q(o)h(m)o(uc) -o(h)f(readable;)j(using)e(the)h(function)e(class-name)g(yields)h(a)f -(clearer)75 1246 y(result:)153 1322 y Ft(\(map)g(class-na)o(me)d -(\(class-pre)o(ced)o(en)o(ce-)o(lis)o(t)g(B\)\))350 1368 -y Fs(=)-6 b Fn(\))19 b Ft(\(b)g()d(\))75 -1550 y Fw(4)67 b(Generic)23 b(functions)75 1649 y FG(4.1)56 -b(Generic)17 b(functions)i(and)g(metho)r(ds)75 1726 y -FD(Neither)g Fz(STklos)g FD(nor)f(CLOS)h(use)f(the)h(message)f(mec)o -(hanism)e(for)h(metho)q(ds)h(as)g(most)f(Ob)r(ject)i(Orien)o(ted)75 -1776 y(language)d(do.)29 b(Instead,)18 b(they)g(use)h(the)f(notion)e -(of)h(generic)h(function.)29 b(A)17 b(generic)h(function)g(can)f(b)q(e) -h(seen)75 1826 y(as)f(a)g(metho)q(ds)g(\\tank)o(er".)28 -b(When)18 b(the)f(ev)n(aluator)g(requestd)i(the)f(application)e(of)g(a) -h(generic)h(function,)g(all)75 1875 y(the)f(metho)q(ds)f(of)f(this)i -(generic)g(function)f(will)e(b)q(e)j(grabb)q(ed)g(and)f(the)h(most)e -(sp)q(eci\014c)j(among)c(them)h(will)g(b)q(e)75 1925 -y(applied.)i(W)m(e)c(sa)o(y)g(that)g(a)f(metho)q(d)h -FB(M)g FD(is)g FB(mor)n(e)g(sp)n(e)n(ci\014c)h FD(than)f(a)g(metho)q(d) -f FB(M')h FD(if)f(the)h(class)h(of)e(its)h(parameters)75 -1975 y(are)h(more)g(sp)q(eci\014c)h(than)f(the)h FB(M')f -FD(ones.)19 b(T)m(o)13 b(b)q(e)i(more)e(precise,)i(when)g(a)e(generic)i -(fun)o(tion)f(m)o(ust)f(b)q(e)h(\\called")75 2025 y(the)g(system)g -(will)126 2113 y(1.)20 b(searc)o(h)15 b(among)d(all)g(the)j(generic)g -(function)e(those)i(whic)o(h)e(are)i(applicable)126 2195 -y(2.)20 b(sort)14 b(the)h(list)e(of)g(applicable)g(metho)q(ds)h(in)f -(the)i(\\most)d(sp)q(eci\014c")j(order)126 2277 y(3.)20 -b(call)13 b(the)h(most)f(sp)q(eci\014c)i(metho)q(d)e(of)h(this)g(list)f -(\(i.e.)18 b(the)c(\014rst)h(metho)q(d)e(of)g(the)i(sorted)g(metho)q -(ds)e(list\).)75 2365 y(The)19 b(de\014nition)g(of)f(a)h(generic)g -(function)g(is)g(done)g(with)f(the)i Fu(define-generic)c -FD(macro.)31 b(De\014nition)18 b(of)h(a)75 2415 y(new)f(metho)q(d)e(is) -i(done)f(with)g(the)i Fu(define-method)14 b FD(macro.)28 -b(Note)17 b(that)h Fu(define-method)d FD(automatically)75 -2464 y(de\014nes)g(the)f(generic)g(function)f(if)g(it)g(has)g(not)h(b)q -(een)g(de\014ned)h(b)q(efore.)j(Consequen)o(tly)m(,)13 -b(most)f(of)h(the)h(time,)e(the)75 2514 y Fu(define-generic)f -FD(needs)k(not)f(b)q(e)g(used.)75 2560 y(Consider)g(the)h(follo)o(wing) -c(de\014nitions:)153 2636 y Ft(\(define-gen)o(er)o(ic)16 -b(M\))153 2682 y(\(define-met)o(ho)o(d)h(M\(\(a)h()o(\))e(b\)) -j('integer\))153 2728 y(\(define-met)o(ho)o(d)e(M\(\(a)h(\))f -(b\))h('real\))153 2773 y(\(define-met)o(ho)o(d)f(M\(a)h(b\))h('top\))p -eop -%%Page: 74 74 -74 73 bop 75 47 a FC(74)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FD(The)h Fu(define-generic)d -FD(call)i(de\014nes)j Fu(M)d FD(as)h(a)g(generic)h(function.)21 -b(Note)15 b(that)g(the)g(signature)h(of)e(the)i(generic)75 -229 y(function)c(is)g(not)g(giv)o(en)g(up)q(on)h(de\014nition,)e(con)o -(trarily)h(to)g(CLOS.)g(This)g(will)f(p)q(ermit)h(metho)q(ds)g(with)f -(di\013eren)o(t)75 278 y(signatures)k(for)e(a)h(giv)o(en)g(generic)g -(function,)g(as)g(w)o(e)g(shall)f(see)i(later.)k(The)14 -b(three)h(next)g(lines)f(de\014ne)h(metho)q(ds)75 328 -y(for)i(the)h Fu(M)f FD(generic)h(function.)28 b(Eac)o(h)17 -b(metho)q(d)g(uses)h(a)f(sequence)i(of)e FB(p)n(ar)n(ameter)g(sp)n(e)n -(cializers)g FD(that)g(sp)q(ecify)75 378 y(when)c(the)f(giv)o(en)g -(metho)q(d)f(is)h(applicable.)17 b(A)12 b(sp)q(ecializer)h(p)q(ermits)f -(to)g(indicate)g(the)g(class)h(a)f(parameter)f(m)o(ust)75 -428 y(b)q(elong)i(to)g(\(directly)g(or)g(indirectly\))g(to)g(b)q(e)g -(applicable.)k(If)c(no)g(sp)q(eciliazer)g(is)g(giv)o(en,)f(the)i -(system)f(defaults)g(it)75 478 y(to)h Fu()p FD(.)j(Th)o(us,)c(the) -i(\014rst)g(metho)q(d)e(de\014nition)g(is)h(equiv)n(alen)o(t)f(to)153 -560 y Ft(\(define-met)o(ho)o(d)k(M\(\(a)h()o(\))e(\(b)j -(\)\))e('integer\))75 689 y FD(No)o(w,)c(let)h(us)g(lo)q(ok)f(at)h -(some)f(p)q(ossible)h(calls)g(to)f(generic)i(function)f -Fu(M)p FD(:)153 764 y Ft(\(M)19 b(2)h(3\))350 810 y Fs(=)-6 -b Fn(\))19 b Ft(integer)153 855 y(\(M)g(2)h(#t\))350 -901 y Fs(=)-6 b Fn(\))19 b Ft(integer)153 947 y(\(M)g(1.2)g('a\))350 -992 y Fs(=)-6 b Fn(\))19 b Ft(real)153 1038 y(\(M)g(#3)g('a\))350 -1084 y Fs(=)-6 b Fn(\))19 b Ft(real)153 1129 y(\(M)g(#t)g(#f\))350 -1175 y Fs(=)-6 b Fn(\))19 b Ft(top)153 1221 y(\(M)g(1)h(2)f(3\))350 -1266 y Fs(=)-6 b Fn(\))19 b Ft(error)f(\(since)f(no)i(method)e(exists)g -(for)i(3)g(parameters)o(\))75 1387 y FD(The)12 b(preceding)i(metho)q -(ds)d(use)i(only)e(one)h(sp)q(ecializer)h(p)q(er)g(parameter)f(list.)17 -b(Of)12 b(course,)h(eac)o(h)g(parameter)e(can)75 1433 -y(use)17 b(a)f(sp)q(ecializer.)26 b(In)16 b(this)h(case,)g(the)g -(parameter)f(list)g(is)g(scanned)h(from)e(left)h(to)g(righ)o(t)g(to)g -(determine)g(the)75 1478 y(applicabilit)o(y)c(of)h(a)g(metho)q(d.)18 -b(Supp)q(ose)c(w)o(e)h(declare)f(no)o(w)153 1554 y Ft(\(define-met)o -(ho)o(d)j(M)i(\(\(a)f(\))e(\(b)j(\))o(\))e('integer-)o -(nu)o(mbe)o(r\))153 1599 y(\(define-met)o(ho)o(d)g(M)i(\(\(a)f -(\))e(\(b)j(\)\))56 b('integer-)o(re)o(al\))153 -1645 y(\(define-met)o(ho)o(d)17 b(M)i(\(a)g(\(b)g()o(\)\))d -('top-numbe)o(r\))75 1766 y FD(In)e(this)g(case,)153 -1841 y Ft(\(M)19 b(1)h(2\))350 1887 y Fs(=)-6 b Fn(\))19 -b Ft(integer-in)o(te)o(ger)153 1933 y(\(M)g(1)h(1.0\))350 -1978 y Fs(=)-6 b Fn(\))19 b Ft(integer-re)o(al)153 2024 -y(\(M)g(1)h(#t\))350 2070 y Fs(=)-6 b Fn(\))19 b Ft(integer)153 -2115 y(\(M)g('a)g(1\))350 2161 y Fs(=)-6 b Fn(\))19 b -Ft('top-numbe)o(r)75 2322 y FG(4.2)56 b(Next-me)o(tho)r(d)75 -2394 y FD(When)16 b(a)g(generic)h(function)f(is)g(called,)g(the)h(list) -e(of)h(applicable)f(metho)q(ds)h(is)g(built.)24 b(As)16 -b(men)o(tioned)f(b)q(efore,)75 2440 y(the)g(most)f(sp)q(eci\014c)i -(metho)q(d)d(of)h(this)h(list)f(is)g(applied)g(\(see)i(4.1\).)j(This)c -(metho)q(d)f(ma)o(y)e(call)i(the)h(next)g(metho)q(d)75 -2486 y(in)f(the)h(list)f(of)g(applicable)f(metho)q(ds.)20 -b(This)14 b(is)g(done)h(b)o(y)f(using)g(the)h(sp)q(ecial)g(form)e -Fu(next-method)p FD(.)k(Consider)75 2531 y(the)d(follo)o(wing)e -(de\014nitions)153 2607 y Ft(\(define-met)o(ho)o(d)17 -b(Test\(\(a)g(\)\))36 b(\(cons)17 b('integer)g(\(next-met)o -(hod)o(\)\))o(\))153 2652 y(\(define-met)o(ho)o(d)g(Test\(\(a)g -()o(\)\))56 b(\(cons)17 b('number)37 b(\(next-met)o(hod)o(\)\)) -o(\))153 2698 y(\(define-met)o(ho)o(d)17 b(Test\(a\))95 -b(\(list)18 b('top\)\))75 2819 y FD(With)13 b(those)i(de\014nitions,)p -eop -%%Page: 75 75 -75 74 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(75)p 75 64 1763 2 v 270 160 a Fo(\(define-gen)o(er)o(ic)14 -b(new-+\))270 239 y(\(let)i(\(\(+)h(+\)\))305 318 y(\(define-met)o(hod) -d(new-+)i(\(\(a)g(\))g(\(b)h(\)\))d(\(+)j(a)h(b\)\))305 -397 y(\(define-met)o(hod)c(new-+)i(\(\(a)g(\))g(\(b)h()o -(\)\))341 436 y(\(make-rec)o(tan)o(gul)o(ar)d(\(+)j(a)g(\(real-part)e -(b\)\))h(\(imag-part)e(b\)\)\))305 515 y(\(define-met)o(hod)g(new-+)i -(\(\(a)g(\))f(\(b)h(\)\))341 555 y(\(make-rec)o(tan)o -(gul)o(ar)e(\(+)j(\(real-part)d(a\))j(b\))g(\(imag-part)d(a\)\)\))305 -634 y(\(define-met)o(hod)g(new-+)i(\(\(a)g(\))f(\(b)h -(\)\))341 673 y(\(make-rec)o(tan)o(gul)o(ar)e(\(+)j -(\(real-part)d(a\))j(\(real-part)d(b\)\))658 712 y(\(+)j(\(imag-part)d -(a\))j(\(imag-part)d(b\)\)\)\))305 791 y(\(define-met)o(hod)g(new-+)i -(\(\(a)g(\)\))32 b(a\))305 870 y(\(define-met)o(hod)14 -b(new-+)i(\(\))h(0\))305 949 y(\(define-met)o(hod)d(new-+)i(args)34 -b(\(new-+)15 b(\(car)h(args\))g(\(apply)g(new-+)g(\(cdr)g -(args\)\)\)\)\))270 1028 y(\(set!)g(+)h(new-+\))427 1119 -y FD(Figure)d(C.3:)j FB(Extending)f Fu(+)f FB(for)f(de)n(aling)h(with)f -(c)n(omplex)h(numb)n(ers)153 1273 y Ft(\(Test)j(1\))350 -1319 y Fs(=)-6 b Fn(\))19 b Ft(\(integer)e(number)g(top\))153 -1365 y(\(Test)h(1.0\))350 1410 y Fs(=)-6 b Fn(\))19 b -Ft(\(number)e(top\))153 1456 y(\(Test)h(#t\))350 1502 -y Fs(=)-6 b Fn(\))19 b Ft(\(top\))75 1666 y FG(4.3)56 -b(Example)75 1739 y FD(In)14 b(this)g(section)h(w)o(e)f(shall)g(con)o -(tin)o(ue)g(to)g(de\014ne)h(op)q(erations)f(on)g(the)h -Fu()d FD(class)i(de\014ned)h(in)f(Figure)g(2.)75 -1785 y(Supp)q(ose)c(that)g(w)o(e)f(w)o(an)o(t)g(to)h(use)g(it)f(to)g -(implemen)o(t)e(complex)h(n)o(um)o(b)q(ers)h(completely)m(.)15 -b(F)m(or)9 b(instance)h(a)f(de\014nition)75 1831 y(for)14 -b(the)g(addition)f(of)g(t)o(w)o(o)g(complexes)h(could)g(b)q(e)153 -1911 y Ft(\(define-met)o(ho)o(d)j(new-+)g(\(\(a)i()o(\))e(\(b) -h(\)\))193 1957 y(\(make-rec)o(ta)o(ngu)o(lar)e(\(+)j -(\(real-pa)o(rt)d(a\))j(\(real-part)d(b\)\))546 2003 -y(\(+)j(\(imag-pa)o(rt)d(a\))j(\(imag-part)d(b\)\)\)\))75 -2129 y FD(T)m(o)d(b)q(e)i(sure)g(that)f(the)g Fu(+)g -FD(used)g(in)g(the)g(metho)q(d)f Fu(new-+)g FD(is)h(the)g(standard)h -(addition)d(w)o(e)j(can)f(do:)153 2209 y Ft(\(define-gen)o(er)o(ic)i -(new-+\))153 2301 y(\(let)j(\(\(+)f(+\)\))193 2346 y(\(define-m)o(et)o -(hod)e(new-+)i(\(\(a)g(\))e(\(b)j()o(\)\))232 -2392 y(\(make-rec)o(tan)o(gul)o(ar)d(\(+)j(\(real-par)o(t)e(a\))h -(\(real-part)e(b\)\))585 2438 y(\(+)j(\(imag-par)o(t)e(a\))h -(\(imag-part)e(b\)\)\)\)\))75 2568 y FD(The)h Fu(define-generic)d -FD(ensures)19 b(here)e(that)g Fu(new-+)f FD(will)f(b)q(e)i(de\014ned)h -(in)e(the)i(global)d(en)o(vironmen)o(t.)25 b(Once)75 -2617 y(this)16 b(is)h(done,)f(w)o(e)h(can)f(add)g(metho)q(ds)g(to)g -(the)h(generic)g(function)f Fu(new-+)g FD(whic)o(h)g(mak)o(e)f(a)h -(closure)h(on)f(the)h Fu(+)75 2667 y FD(sym)o(b)q(ol.)f(A)e(complete)f -(writing)h(of)f(the)h Fu(new-+)f FD(metho)q(ds)h(is)f(sho)o(wn)h(in)g -(Figure)g(3.)75 2769 y(W)m(e)d(use)i(here)g(the)f(fact)g(that)g -(generic)g(function)g(are)g(not)g(obliged)e(to)i(ha)o(v)o(e)g(the)g -(same)f(n)o(um)o(b)q(er)g(of)g(parameters,)75 2819 y(con)o(trarily)18 -b(to)f(CLOS.)h(The)h(four)e(\014rst)i(metho)q(ds)f(implemen)o(t)d(the)k -(dy)o(adic)e(addition.)30 b(The)18 b(\014fth)g(metho)q(d)p -eop -%%Page: 76 76 -76 75 bop 75 47 a FC(76)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FD(sa)o(ys)g(that)f(the)h(addition)f(of)g(a)g -(single)g(elemen)o(t)g(is)g(this)h(elemen)o(t)f(itself.)k(The)d(sixth)g -(metho)q(d)e(sa)o(ys)i(that)g(using)75 229 y(the)i(addition)e(with)h -(no)g(parameter)g(alw)o(a)o(ys)g(return)h(0.)23 b(The)15 -b(last)h(metho)q(d)e(tak)o(es)i(an)f(arbitrary)g(n)o(um)o(b)q(er)g(of) -75 278 y(parameters)276 263 y Fy(3)295 278 y FD(.)27 -b(This)17 b(metho)q(d)f(acts)i(as)f(a)f(kind)h(of)f Fu(reduce)p -FD(:)23 b(it)17 b(calls)f(the)i(dy)o(adic)e(addition)g(on)h(the)g -FB(c)n(ar)g FD(of)75 328 y(the)e(list)f(and)g(on)h(the)g(result)g(of)f -(applying)f(it)h(on)g(its)h(rest.)21 b(T)m(o)13 b(\014nish,)i(the)g -Fu(set!)k FD(p)q(ermits)14 b(to)g(rede\014ne)j(the)e -Fu(+)75 378 y(symbol)e FD(to)g(our)h(extended)i(addition.)75 -474 y(T)m(o)g(terminate)f(our)i(implemen)o(tatio)o(n)d(\(in)o -(tegration?\))25 b(of)16 b(complex)f(n)o(um)o(b)q(ers,)h(w)o(e)h(can)g -(rede\014ne)h(standard)75 519 y(Sc)o(heme)c(predicates)h(in)f(the)g -(follo)o(wing)d(manner:)153 598 y Ft(\(define-met)o(ho)o(d)17 -b(complex?)f(\(c)j(\))d(#t\))153 644 y(\(define-met)o(ho)o(d)h -(complex?)f(\(c\))215 b(#f\))153 735 y(\(define-met)o(ho)o(d)17 -b(number?)g(\(n)h(\))f(#t\))153 781 y(\(define-met)o(ho)o(d)g -(number?)g(\(n\))195 b(#f\))153 826 y(...)153 872 y(...)75 -1001 y FD(Standard)15 b(primitiv)o(es)f(in)h(whic)o(h)g(complex)f(n)o -(um)o(b)q(ers)h(are)h(in)o(v)o(olv)o(ed)e(could)h(also)g(b)q(e)h -(rede\014ned)h(in)e(the)h(same)75 1051 y(manner.)75 1100 -y(This)e(ends)h(this)f(brief)f(presen)o(tation)i(of)e(the)i -Fz(STklos)g FD(extension.)p 75 2741 705 2 v 121 2768 -a Fr(3)139 2779 y Fq(The)h(third)f(parameter)e(of)j(a)g(de\014ne-meth)o -(o)q(d)d(is)j(a)g(parameter)e(list)h(whic)o(h)h(follo)o(w)f(the)h(con)o -(v)o(en)o(tions)d(used)i(for)h(lam)o(b)q(da)75 2819 y(expressions.)d -(In)e(particular)d(it)k(can)e(use)h(the)g(dot)g(notation)e(or)i(a)h -(sym)o(b)q(ol)d(to)i(denote)f(an)h(arbitrary)e(n)o(um)o(b)q(er)h(of)h -(parameters)p eop -%%Page: 77 77 -77 76 bop 75 490 a FH(App)s(endix)33 b(D)75 698 y FA(Mo)s(dules:)52 -b(Examples)75 914 y FD(This)12 b(app)q(endix)h(sho)o(ws)g(some)f -(usages)h(of)f(the)h Fz(STk)g FD(mo)q(dules.)j(Most)d(of)f(the)h -(examples)f(whic)o(h)g(are)h(exhibited)75 963 y(here)i(are)f(deriv)o -(ed)h(from)d(the)i(T)m(ung)g(and)f(Dyb)o(vig)g(pap)q(er)h([5].)75 -1079 y FG(In)n(teractiv)n(e)j(Rede\014nition)75 1151 -y FD(Consider)d(\014rst)h(the)f(de\014nitions,)153 1226 -y Ft(\(define-mod)o(ul)o(e)j(A)193 1271 y(\(export)g(square\))193 -1317 y(\(define)g(square)232 1363 y(\(lambda)g(\(x\))h(\(+)h(x)g -(x\)\)\)\))153 1454 y(\(define-mod)o(ul)o(e)e(B)193 1500 -y(\(import)g(A\))193 1545 y(\(define)g(distance)232 1591 -y(\(lambda)g(\(x)i(y\))271 1637 y(\(sqrt)f(\(+)h(\(square)e(x\))h -(\(square)f(y\)\)\)\)\)\))75 1757 y FD(Ob)o(viously)m(,)11 -b(the)j Fu(square)e FD(function)g(exp)q(orted)i(from)e -Fu(A)g FD(is)h(incorrect,)h(as)f(w)o(e)g(can)g(see)i(in)d(its)h(usage)g -(b)q(elo)o(w:)153 1831 y Ft(\(with-modul)o(e)j(B)k(\(round)d -(\(distance)f(3)j(4\)\)\))350 1877 y Fs(=)-6 b Fn(\))19 -b Ft(4.0)75 1997 y FD(The)14 b(function)g(can)g(b)q(e)h(rede\014ned)g -(\()p FB(c)n(orr)n(e)n(cte)n(d)t FD(\))f(b)o(y)f(the)i(follo)o(wing)c -(expression:)153 2071 y Ft(\(with-modul)o(e)16 b(A)193 -2117 y(\(set!)h(square)310 2163 y(\(lambda)g(\(x\))i(\(*)g(x)g -(x\)\)\)\))75 2283 y FD(And)14 b(no)o(w,)193 2357 y Ft(\(with-mod)o(ul) -o(e)j(B)i(\(round)e(\(distance)f(3)k(4\)\)\))350 2403 -y Fs(=)-6 b Fn(\))19 b Ft(5)75 2527 y FD(whic)o(h)14 -b(is)g(correct.)75 2643 y FG(Lexical)j(principle)75 2719 -y FD(This)g(example)e(reuses)j(the)g(mo)q(dules)d Fu(A)h -FD(and)h Fu(B)f FD(of)g(previous)h(section)h(and)e(adds)h(a)f -Fu(Compare)f FD(mo)q(dule)g(that)75 2769 y(exp)q(orts)i(the)g -Fu(less-than-4?)22 b FD(predicates,)c(whic)o(h)e(states)h(if)f(the)g -(distance)h(from)e(a)g(p)q(oin)o(t)h(to)g(the)h(origin)e(is)75 -2819 y(less)g(than)e(4.)935 2924 y(77)p eop + @endspecial 664 1147 a FF(Figure)16 b(C.1:)j(A)c(class)h(hierarc)o(h)o +(y)37 1280 y FI(3.2)56 b(Instance)19 b(creation)e(and)j(slot)e(access) +37 1366 y FF(Creation)g(of)f(an)g(instance)h(of)f(a)g(previously)i +(de\014ned)g(class)f(can)f(b)q(e)h(done)g(with)g(the)g +Fw(make)e FF(pro)q(cedure.)37 1422 y(This)f(pro)q(cedure)f(tak)o(es)f +(one)h(mandatory)f(parameter)g(whic)o(h)h(is)h(the)e(class)h(of)g(the)f +(instance)i(whic)o(h)g(m)o(ust)37 1479 y(b)q(e)d(created)e(and)h(a)f +(list)i(of)e(optional)h(argumen)o(ts.)17 b(Optional)12 +b(argumen)o(ts)e(are)g(generally)i(used)f(to)f(initialize)37 +1535 y(some)15 b(slots)g(of)g(the)g(newly)i(created)e(instance.)20 +b(F)l(or)15 b(instance,)h(the)f(follo)o(wing)h(form)125 +1628 y Fv(\(define)k(c)i(\(make)e(\)\))37 1778 +y FF(will)d(create)e(a)g(new)h Fw()e FF(ob)s(ject)g(and)i +(will)g(bind)h(it)e(to)g(the)g Fw(c)g FF(Sc)o(heme)h(v)m(ariable.)37 +1834 y(Accessing)23 b(the)e(slots)g(of)g(the)g(new)g(complex)h(n)o(um)o +(b)q(er)f(can)h(b)q(e)f(done)h(with)f(the)h Fw(slot-ref)e +FF(and)h(the)37 1891 y Fw(slot-set!)26 b FF(primitiv)o(es.)i +Fw(Slot-set!)e FF(primitiv)o(e)19 b(p)q(ermits)f(to)f(set)g(the)g(v)m +(alue)i(of)e(an)h(ob)s(ject)e(slot)i(and)37 1947 y Fw(slot-ref)d +FF(p)q(ermits)g(to)g(get)g(its)g(v)m(alue.)125 2040 y +Fv(\(slot-set!)k(c)j('r)f(10\))125 2090 y(\(slot-set!)e(c)j('i)f(3\)) +125 2140 y(\(slot-ref)f(c)h('r\))343 2190 y Fu(=)-7 b +Fp(\))21 b Fv(10)125 2239 y(\(slot-ref)f(c)h('i\))343 +2289 y Fu(=)-7 b Fp(\))21 b Fv(3)37 2439 y FF(Using)d(the)e +Fw(describe)g FF(generic)h(function)h(is)f(a)f(simple)i(w)o(a)o(y)e(to) +g(see)h(all)g(the)g(slots)f(of)g(an)h(ob)s(ject)f(at)g(one)37 +2495 y(time:)k(this)15 b(function)h(prin)o(ts)e(all)i(the)e(slots)g(of) +g(an)h(ob)s(ject)f(on)g(the)h(standard)f(output.)19 b(F)l(or)14 +b(instance,)h(the)37 2552 y(expression)125 2645 y Fv(\(describe)20 +b(c\))37 2787 y FF(will)d(prin)o(t)f(the)f(follo)o(wing)h(informations) +f(on)g(the)h(standard)f(output:)p eop %%Page: 78 78 -78 77 bop 75 47 a FC(78)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 153 179 a Ft(\(define-mod)o(ul)o(e)j(A)193 -224 y(\(export)g(square\))193 270 y(\(define)g(square)g(\(lambda)g -(\(x\))h(\(*)h(x)g(x\)\)\)\))153 361 y(\(define-mod)o(ul)o(e)e(B)193 -407 y(\(import)g(A\))193 453 y(\(export)g(distance\))193 -544 y(\(define)g(distance)232 590 y(\(lambda)g(\(x)i(y\))g(\(sqrt)e -(\(+)i(\(square)e(x\))i(\(square)e(y\)\)\)\)\)\))153 -681 y(\(define-mod)o(ul)o(e)g(Compare)193 727 y(\(import)g(B\))193 -772 y(\(define)g(less-than)o(-4)o(?)g(\(lambda)f(\(x)j(y\))g(\(<)g -(\(distance)d(x)j(y\))g(4\)\)\))193 818 y(\(define)e(square)135 -b(\(lambda)16 b(\(x\))58 b(\(+)19 b(x)g(x\)\)\)\))75 -951 y FD(Consider)14 b(no)o(w)g(the)g(call,)153 1030 -y Ft(\(with-modul)o(e)i(compare)h(\(less-than)o(-4?)f(3)j(4\)\))350 -1075 y Fs(=)-6 b Fn(\))19 b Ft(#f)75 1204 y FD(The)d(call)e(to)h -Fu(distance)e FD(done)i(from)f Fu(less-than-4?)19 b FD(indirectly)c -(calls)g(the)h Fu(square)d FD(pro)q(cedure)k(of)e(mo)q(dule)75 -1254 y Fu(A)f FD(rather)g(than)g(the)h(one)f(de\014ned)h(lo)q(cally)d -(in)i(mo)q(dule)e Fu(Compare)p FD(.)75 1370 y FG(Mutually)18 -b(Referen)n(tial)f(Mo)r(dules)75 1447 y FD(This)i(example)f(uses)j(t)o -(w)o(o)e(m)o(utually)d(referen)o(tial)k(mo)q(dules)e(tah)o(t)i(imp)q -(ort)d(and)j(exp)q(ort)g(to)f(eac)o(h)h(other)g(to)75 -1497 y(implemen)o(t)11 b(m)o(utually)g(recursiv)o(e)16 -b(ev)o(en?)j(and)13 b(o)q(dd?)18 b(pro)q(cedures)153 -1584 y Ft(\(define-mod)o(ul)o(e)f(Odd\))57 b(;;)19 b(Forward)e -(declarati)o(on)153 1675 y(\(define-mod)o(ul)o(e)g(Even)193 -1721 y(\(import)g(Odd\))193 1766 y(\(export)g(even?\))193 -1812 y(\(define)g(even?)g(\(lambda)g(\(x\))i(\(if)f(\(zero?)f(x\))i(#t) -g(\(odd?)f(\(-)h(x)g(1\)\)\)\)\)\))153 1903 y(\(define-mod)o(ul)o(e)e -(Odd)193 1949 y(\(import)g(Even\))193 1995 y(\(export)g(odd?\))193 -2040 y(\(define)g(odd?)h(\(lambda)f(\(x\))h(\(if)g(\(zero?)g(x\))h(#f)f -(\(even?)g(\(-)h(x)g(1\)\)\)\)\)\))75 2173 y FD(Hereafter)c(are)g(some) -e(usages)h(of)g(theses)h(pro)q(cedures:)153 2252 y Ft(\(with-modul)o(e) -h(Odd)j(\(odd?)f(3\)\))350 2298 y Fs(=)-6 b Fn(\))19 -b Ft(#t)153 2343 y(\(with-modul)o(e)d(Odd)j(\(odd?)f(10\)\))350 -2389 y Fs(=)-6 b Fn(\))19 b Ft(#f)153 2480 y(\(with-modul)o(e)d(Even)j -(\(even?)e(3\)\))350 2526 y Fs(=)-6 b Fn(\))19 b Ft(#f)153 -2572 y(\(with-modul)o(e)d(Even)j(\(even?)e(10\)\))350 -2617 y Fs(=)-6 b Fn(\))19 b Ft(#t)p eop +78 77 bop 37 45 a FE(78)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 125 190 a Fv(#[)i(122398])i(is)g(an)g(instance) +f(of)i(class)f()125 240 y(Slots)f(are:)234 290 +y(r)h(=)h(10)234 340 y(i)f(=)h(3)37 524 y FI(3.3)56 b(Slot)18 +b(description)37 615 y FF(When)e(sp)q(ecifying)h(a)e(slot,)g(a)g(set)h +(of)e(options)i(can)f(b)q(e)h(giv)o(en)g(to)f(the)g(system.)20 +b(Eac)o(h)15 b(option)h(is)g(sp)q(eci\014ed)37 671 y(with)g(a)f(k)o +(eyw)o(ord.)k(The)c(list)h(of)f(authorised)h(k)o(eyw)o(ords)e(is)i(giv) +o(en)g(b)q(elo)o(w:)106 774 y Fo(\017)22 b Fw(:initform)12 +b FF(p)q(ermits)i(to)f(supply)i(a)e(default)h(v)m(alue)g(for)f(the)h +(slot.)19 b(This)14 b(default)g(v)m(alue)g(is)g(obtained)151 +830 y(b)o(y)h(ev)m(aluating)i(the)e(form)f(giv)o(en)i(after)f(the)g +Fw(:initform)f FF(in)i(the)f(global)h(en)o(vironmen)o(t.)106 +933 y Fo(\017)22 b Fw(:init-keyword)13 b FF(p)q(ermits)i(to)f(sp)q +(ecify)h(the)g(k)o(eyw)o(ord)e(for)h(initializi)q(ng)j(a)d(slot.)20 +b(The)14 b(init-k)o(eyw)o(ord)151 990 y(ma)o(y)k(b)q(e)i(pro)o(vided)f +(during)h(instance)f(creation)g(\(i.e.)31 b(in)19 b(the)g(mak)o(e)g +(optional)g(parameter)f(list\).)151 1046 y(Sp)q(ecifying)g(suc)o(h)e(a) +f(k)o(eyw)o(ord)g(during)i(instance)f(initialization)j(will)e(sup)q +(ersede)g(the)f(default)g(slot)151 1103 y(initialization)i(p)q(ossibly) +f(giv)o(en)f(with)f Fw(:initform)p FF(.)106 1206 y Fo(\017)22 +b Fw(:getter)16 b FF(p)q(ermits)h(to)e(supply)j(the)f(name)f(for)g(the) +h(slot)f(getter.)23 b(The)16 b(name)h(binding)h(is)f(done)g(in)151 +1262 y(the)e(global)h(en)o(vironmen)o(t.)106 1365 y Fo(\017)22 +b Fw(:setter)16 b FF(p)q(ermits)h(to)f(supply)i(the)f(name)g(for)f(the) +h(slot)f(setter.)24 b(The)17 b(name)g(binding)i(is)e(done)g(in)151 +1421 y(the)e(global)h(en)o(vironmen)o(t.)106 1524 y Fo(\017)22 +b Fw(:accessor)13 b FF(p)q(ermits)h(to)g(supply)h(the)f(name)g(for)f +(the)h(slot)g(accessor.)19 b(The)14 b(name)g(binding)i(is)f(done)151 +1581 y(in)d(the)g(global)g(en)o(vironmen)o(t.)19 b(An)11 +b(accessor)g(p)q(ermits)h(to)f(get)g(and)g(set)g(the)h(v)m(alue)g(of)f +(a)g(slot.)19 b(Setting)151 1637 y(the)c(v)m(alue)i(of)e(a)f(slot)i(is) +f(done)h(with)f(the)h(extended)g(v)o(ersion)f(of)g Fw(set!)p +FF(.)106 1740 y Fo(\017)22 b Fw(:allocation)17 b FF(p)q(ermits)h(to)g +(sp)q(ecify)h(ho)o(w)f(storage)f(for)g(the)i(slot)f(is)g(allo)q(cated.) +30 b(Three)18 b(kinds)h(of)151 1797 y(allo)q(cation)d(are)f(pro)o +(vided.)21 b(They)15 b(are)g(describ)q(ed)i(b)q(elo)o(w:)202 +1899 y FE({)23 b Fw(:instance)16 b FF(indicates)j(that)e(eac)o(h)g +(instance)h(gets)f(its)g(o)o(wn)g(storage)f(for)h(the)g(slot.)27 +b(This)17 b(is)251 1956 y(the)e(default.)202 2033 y FE({)23 +b Fw(:class)f FF(indicates)h(that)f(there)g(is)h(one)f(storage)f(lo)q +(cation)i(used)g(b)o(y)f(all)h(the)g(direct)g(and)251 +2090 y(indirect)f(instances)e(of)g(the)g(class.)34 b(This)20 +b(p)q(ermits)h(to)e(de\014ne)i(a)f(kind)h(of)e(global)i(v)m(ariable)251 +2146 y(whic)o(h)d(can)f(b)q(e)g(accessed)g(only)g(b)o(y)g(\(in\)direct) +h(instances)f(of)f(the)h(class)g(whic)o(h)h(de\014nes)g(this)251 +2203 y(slot.)202 2280 y FE({)23 b Fw(:virtual)16 b FF(indicates)i(that) +e(no)h(storage)e(will)k(b)q(e)e(allo)q(cated)h(for)e(this)i(slot.)24 +b(It)17 b(is)g(up)h(to)e(the)251 2337 y(user)f(to)e(de\014ne)j(a)e +(getter)g(and)g(a)h(setter)e(function)j(for)e(this)g(slot.)20 +b(Those)14 b(functions)h(m)o(ust)f(b)q(e)251 2393 y(de\014ned)j(with)e +(the)h Fw(:slot-ref)d FF(and)j Fw(:slot-set!)j FF(options.)h(See)15 +b(the)h(example)g(b)q(elo)o(w.)37 2490 y(T)l(o)f(illustrate)i(slot)e +(description,)h(w)o(e)f(shall)i(rede\014ne)f(the)f Fw()f +FF(class)i(seen)g(b)q(efore.)k(A)15 b(de\014nition)37 +2539 y(could)i(b)q(e:)125 2638 y Fv(\(define-class)i()h +(\(\))190 2688 y(\(\(r)h(:initform)f(0)i(:getter)e(get-r)h +(:setter)f(set-r!)h(:init-keyword)e(:r\))212 2738 y(\(i)i(:initform)f +(0)i(:getter)e(get-i)h(:setter)f(set-i!)h(:init-keyword)e(:i\)\)\))p +eop %%Page: 79 79 -79 78 bop 75 491 a FH(App)s(endix)33 b(E)75 698 y FA(Changes)75 -940 y Fw(In)n(tro)r(duction)75 1031 y FD(This)16 b(app)q(endix)g(lists) -g(the)h(main)d(di\013erences)808 1016 y Fy(1)829 1031 -y FD(.among)f(the)k(v)n(arious)e(recen)o(t)j(v)o(ersions)f(of)e(STk.)25 -b(Di\013erences)75 1081 y(with)12 b(older)h(v)o(ersions)f(as)h(w)o(ell) -f(as)g(implemen)o(tation)d(c)o(hanges)k(are)g(describ)q(ed)h(in)e(the)h -(CHANGES)g(\014le)f(lo)q(cated)75 1131 y(in)h(the)i(main)d(directory)i -(of)g(the)g(STk)g(distribution.)75 1270 y Fw(Release)22 -b(3.1.1)75 1358 y Fl(R)n(ele)n(ase)12 b(date:)k(09/26/96)75 -1404 y Fs(This)e(release)g(is)g(a)g(bug)f(correction)i(release.)k(It)13 -b(corrects)h(a)f(lot)h(of)f(bugs.)18 b(A)13 b(lot)h(of)f(these)h(bugs)g -(prev)o(en)o(t)g(to)f(install)j(it)75 1450 y(on)d(some)h(arc)o -(hitectures.)75 1583 y Fw(Release)22 b(3.1)75 1666 y -Fl(R)n(ele)n(ase)12 b(date:)k(07/24/96)139 1738 y Fn(\017)21 -b Fs(V)m(ersion)14 b(of)e(Tk)h(is)h(no)o(w)f(at)g(Tk4.1)g(lev)o(el.)139 -1801 y Fn(\017)21 b Fs(STk)13 b(has)g(b)q(een)h(p)q(orted)g(on)f(Windo) -o(ws)i(95)e(and)h(Windo)o(ws)g(NT.)139 1864 y Fn(\017)21 -b Fs(P)o(orts)12 b(can)h(ha)o(v)o(e)g(a)f(handler)i(whic)o(h)f(is)g -(executed)g(when)f(p)q(ort)h(b)q(ecomes)g(readable)h(or)e(writable)i -(\(see)e(primitiv)o(es)179 1910 y Ft(when-port)o(-re)o(ad)o(abl)o(e)e -Fs(and)j Ft(when-port-)o(wri)o(ta)o(ble)o Fs(.)139 1973 -y Fn(\017)21 b Fs(So)q(c)o(k)o(ets)14 b(in)f(serv)o(er)h(mo)q(de)f -(allo)o(w)h(m)o(ultiple)i(concurren)o(t)e(connection.)139 -2036 y Fn(\017)21 b Fj(STklos)p Fs(:)i(Tw)o(o)15 b(new)h(metho)q(ds:)24 -b Ft(object-eqv?)f Fs(and)16 b Ft(object-equa)o(l?)23 -b Fs(whic)o(h)17 b(are)f(called)i(when)f(applying)179 -2082 y Ft(eqv?)e Fs(or)e Ft(equal?)i Fs(to)e(instances.)139 -2145 y Fn(\017)21 b Fs(New)12 b(primitiv)o(e:)p Ft(setenv!)75 -2278 y Fw(Release)22 b(3.0)75 2361 y Fl(R)n(ele)n(ase)12 -b(date:)k(01/22/96)139 2425 y Fn(\017)21 b Fs(V)m(ersion)14 -b(of)e(Tk)h(is)h(at)f(Tk4.0p2)g(lev)o(el.)139 2488 y -Fn(\017)21 b Fs(Closures)13 b(are)g(fully)h(supp)q(orted)g(b)o(y)f(Tk.) -k(That)12 b(means)h(that)g(a)f(callbac)o(k)j(can)e(b)q(e)g(no)o(w)f(a)h -(Sc)o(heme)g(closure)h(with)179 2534 y(its)j(en)o(vironmen)o(t.)32 -b(GC)16 b(problems)j(with)f(closures)g(and)g(usage)g(of)f(the)g(dirt)o -(y)i Ft(address-o)o(f)14 b Fs(are)j(de\014nitiv)o(ely)179 -2579 y(gone.)139 2642 y Fn(\017)k Fs(Strings)14 b(can)g(con)o(tain)g(n) -o(ull)h(c)o(harters)e(\(prin)o(ting)i(of)e(strings)h(is)g(more)f -(friendly)i(in)f(write)f(mo)q(de\).)139 2705 y Fn(\017)21 -b Fs(Signals)15 b(can)f(b)q(e)f(redirected)h(to)f(Sc)o(heme)h -(closures.)k(The)13 b(end)h(of)e(a)h(GC)g(is)h(seen)f(as)g(a)g(signal.) -p 75 2741 705 2 v 121 2768 a Fr(1)139 2779 y Fq(Only)e(the)g -(di\013erences)e(whic)o(h)i(a\013ect)f(the)h(language)e(or)i(new)h(p)q -(orts)e(are)h(rep)q(orted)e(here.)15 b(In)c(particular,)d(in)o(ternal)i -(c)o(hanges,)75 2819 y(pac)o(k)n(ages)f(written)i(in)g(Sc)o(heme)e(or)j -(p)q(erforman)o(ce)d(enhancem)o(en)o(t)f(are)j(not)g(discussed)e(here.) -935 2924 y FD(79)p eop +79 78 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(79)p 37 64 1838 2 v 37 190 a FF(With)20 b(this)g(de\014nition,)h(the) +e Fw(r)g FF(and)h Fw(i)f FF(slot)g(are)g(set)g(to)f(0)h(b)o(y)g +(default.)33 b(V)l(alue)20 b(of)f(a)g(slot)g(can)g(also)g(b)q(e)37 +240 y(sp)q(eci\014ed)h(b)o(y)e(calling)h Fw(make)e FF(with)h(the)f +Fw(:r)h FF(and)f Fw(:i)h FF(k)o(eyw)o(ords.)26 b(F)l(urthermore,)17 +b(the)h(generic)g(functions)37 290 y Fw(get-r)g FF(and)h +Fw(set-r!)30 b FF(\(resp.)f Fw(get-i)18 b FF(and)h Fw(set-i!)p +FF(\))29 b(are)18 b(automatically)h(de\014ned)h(b)o(y)f(the)f(system)h +(to)37 340 y(read)d(and)f(write)g(the)h Fw(r)f FF(\(resp.)k +Fw(i)p FF(\))c(slot.)125 432 y Fv(\(define)20 b(c1)h(\(make)g +()f(:r)h(1)h(:i)f(2\)\))125 482 y(\(get-r)f(c1\))343 +531 y Fu(=)-7 b Fp(\))21 b Fv(1)125 581 y(\(set-r!)f(c1)h(12\))125 +631 y(\(get-r)f(c1\))343 681 y Fu(=)-7 b Fp(\))21 b Fv(12)125 +731 y(\(define)f(c2)h(\(make)g()f(:r)h(2\)\))125 +781 y(\(get-r)f(c2\))343 830 y Fu(=)-7 b Fp(\))21 b Fv(2)125 +880 y(\(get-i)f(c2\))343 930 y Fu(=)-7 b Fp(\))21 b Fv(0)37 +1071 y FF(Accessors)16 b(pro)o(vide)g(an)f(uniform)g(access)h(for)e +(reading)i(and)g(writing)g(an)f(ob)s(ject)f(slot.)20 +b(W)l(riting)c(a)f(slot)g(is)37 1121 y(done)k(with)f(an)g(extended)h +(form)f(of)f Fw(set!)28 b FF(whic)o(h)19 b(is)g(close)f(to)g(the)g +(Common)f(Lisp)i Fw(setf)f FF(macro.)27 b(So,)37 1170 +y(another)13 b(de\014nition)h(of)f(the)f(previous)i Fw()d +FF(class,)i(using)h(the)f Fw(:accessor)e FF(option,)i(could)h(b)q(e:) +125 1262 y Fv(\(define-class)19 b()h(\(\))190 +1312 y(\(\(r)h(:initform)f(0)i(:accessor)e(real-part)g(:init-keyword)f +(:r\))212 1362 y(\(i)i(:initform)f(0)i(:accessor)e(imag-part)g +(:init-keyword)f(:i\)\)\))37 1503 y FF(Using)d(this)g(class)f +(de\014nition,)i(reading)f(the)f(real)h(part)e(of)h(the)g +Fw(c)g FF(complex)h(can)g(b)q(e)g(done)f(with:)125 1595 +y Fv(\(real-part)k(c\))37 1736 y FF(and)12 b(setting)f(it)h(to)e(the)i +(v)m(alue)g(con)o(tained)g(in)g(the)f Fw(new-value)f +FF(v)m(ariable)j(can)e(b)q(e)h(done)g(using)g(the)f(extended)37 +1786 y(form)k(of)g Fw(set!)p FF(.)125 1878 y Fv(\(set!)20 +b(\(real-part)g(c\))i(new-value\))37 2025 y FF(Supp)q(ose)h(no)o(w)e +(that)g(w)o(e)g(ha)o(v)o(e)g(to)g(manipulate)i(complex)f(n)o(um)o(b)q +(ers)g(with)g(rectangular)g(co)q(ordinates)37 2081 y(as)e(w)o(ell)i(as) +e(with)g(p)q(olar)h(co)q(ordinates.)36 b(One)21 b(solution)g(could)g(b) +q(e)g(to)f(ha)o(v)o(e)g(a)g(de\014nition)i(of)e(complex)37 +2138 y(n)o(um)o(b)q(ers)14 b(whic)o(h)f(uses)g(one)g(particular)g +(represen)o(tation)g(and)g(some)g(con)o(v)o(ersion)g(functions)g(to)f +(pass)h(from)37 2194 y(one)i(represen)o(tation)f(to)f(the)h(other.)19 +b(A)14 b(b)q(etter)g(solution)h(uses)f(virtual)h(slots.)k(A)14 +b(complete)h(de\014nition)g(of)37 2251 y(the)h Fw()e +FF(class)h(using)h(virtual)g(slots)f(is)h(giv)o(en)f(in)i(Figure)e(2.) +37 2355 y(This)i(class)f(de\014nition)h(implemen)o(ts)g(t)o(w)o(o)d +(real)i(slots)g(\()p Fw(r)f FF(and)h Fw(i)p FF(\).)k(V)l(alues)d(of)e +(the)h Fw(m)g FF(and)f Fw(a)h FF(virtual)g(slots)37 2405 +y(are)j(calculated)i(from)d(real)h(slot)g(v)m(alues.)33 +b(Reading)20 b(a)f(virtual)g(slot)g(leads)h(to)e(the)i(application)g +(of)f(the)37 2455 y(function)d(de\014ned)g(in)f(the)g +Fw(:slot-ref)e FF(option.)20 b(W)l(riting)c(suc)o(h)f(a)f(slot)g(leads) +i(to)e(the)g(application)j(of)d(the)37 2505 y(function)j(de\014ned)f +(in)g(the)f Fw(:slot-set!)k FF(option.)h(F)l(or)15 b(instance,)h(the)f +(follo)o(wing)h(expression)125 2597 y Fv(\(slot-set!)j(c)j('a)f(3\))37 +2738 y FF(p)q(ermits)c(to)f(set)g(the)g(angle)h(of)f(the)g +Fw(c)g FF(complex)h(n)o(um)o(b)q(er.)23 b(This)17 b(expression)g +(conducts,)g(in)g(fact,)e(to)h(the)37 2787 y(ev)m(aluation)h(of)e(the)g +(follo)o(wing)h(expression)p eop %%Page: 80 80 -80 79 bop 75 47 a FC(80)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 139 179 a Fn(\017)21 b Fs(T)m(races)13 -b(on)g(v)n(ariables)i(are)e(c)o(hanged)i(\(and)e(re-w)o(ork)g(no)o -(w\):)k(the)c(asso)q(ciated)i(trace)e(m)o(ust)g(b)q(e)g(a)g(th)o(unk.) -139 241 y Fn(\017)21 b Fs(New)12 b(options)j(for)e(some)g(widgets)h(to) -f(b)q(e)g(more)g(friendly)i(with)e(Sc)o(heme)h(w)o(orld)139 -303 y Fn(\017)21 b Fj(STklos)p Fs(:)e(if)c(a)f(metho)q(d)h(M)f(is)h -(de\014ned)h(and)f(if)f(it)h(is)g(already)h(b)q(ound)f(to)f(a)h(pro)q -(cedure,)g(the)g(old)g(pro)q(cedure)h(is)179 349 y(called)f(when)e(no)g -(metho)q(d)h(is)g(applicable.)257 420 y Ft(\(define-me)o(tho)o(d)i(car) -j(\(\(x)f(\))o(\))f(\(-)i(x)g(1\)\))257 465 -y(\(car)f(10\))453 511 y Fs(=)-6 b Fn(\))20 b Ft(9)257 -557 y(\(car)e(\(cons)g('a)h('b\)\))453 602 y Fs(=)-6 -b Fn(\))20 b Ft(a)139 718 y Fn(\017)h Fs(Small)c(c)o(hange)g(in)g(the)g -(STklos)g(hierarc)o(h)o(y)m(.)27 b Ft()13 b Fs(is)k(no)o(w)f(a) -g(sub)q(class)i(of)g Ft()12 b Fs(and)17 b(its)f(meta)179 -764 y(class)e(is)f Ft()o -Fs(.)p eop +80 79 bop 37 45 a FE(80)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 251 171 a Fq(\(define-cl)o(ass)f()g(\() +o(\))310 216 y(\(;;)i(True)h(slots)e(use)i(rectangul)o(ar)d(coordinate) +o(s)330 262 y(\(r)i(:initform)f(0)i(:accessor)d(real-part)g(:init-keyw) +o(or)o(d)h(:r\))330 308 y(\(i)h(:initform)f(0)i(:accessor)d(imag-part)g +(:init-keyw)o(or)o(d)h(:i\))330 353 y(;;)h(Virtual)f(slots)h(access)f +(do)i(the)g(conversio)o(n)330 399 y(\(m)f(:accessor)f(magnitud)o(e)g +(:init-key)o(wo)o(rd)f(:magn)388 445 y(:allocation)g(:virtual)388 +490 y(:slot-ref)h(\(lambda)f(\(o\))624 536 y(\(let)i(\(\(r)g +(\(slot-ref)e(o)k('r\)\))e(\(i)h(\(slot-ref)d(o)j('i\)\)\))663 +582 y(\(sqrt)f(\(+)h(\(*)f(r)i(r\))e(\(*)h(i)h(i\)\)\)\)\))388 +627 y(:slot-set!)c(\(lambda)h(\(o)i(m\))663 673 y(\(let)f(\(\(a)h +(\(slot-re)o(f)e(o)i('a\)\)\))702 719 y(\(slot-set!)d(o)j('r)g(\(*)g(m) +g(\(cos)f(a\)\)\))702 764 y(\(slot-set!)e(o)j('i)g(\(*)g(m)g(\(sin)f +(a\)\)\)\)\)\))330 810 y(\(a)g(:accessor)f(angle)g(:init-keyw)o(ord)f +(:angle)388 856 y(:allocation)g(:virtual)388 901 y(:slot-ref)h +(\(lambda)f(\(o\))624 947 y(\(atan)h(\(slot-ref)g(o)i('i\))f +(\(slot-ref)e(o)k('r\)\)\))388 993 y(:slot-set!)c(\(lambda\(o)g(a\))643 +1038 y(\(let)i(\(\(m)h(\(slot-ref)d(o)j('m\)\)\))702 +1084 y(\(slot-set!)d(o)j('r)g(\(*)g(m)g(\(cos)f(a\)\)\))702 +1130 y(\(slot-set!)e(o)j('i)g(\(*)g(m)g(\(sin)f(a\)\)\)\)\)\)\)\))281 +1273 y FF(Figure)d(C.2:)k FD(A)d Fw()f FD(numb)n(er)h(class)f +(de\014nition)h(using)f(virtual)i(slots)125 1446 y Fv(\(\(lambda)j(o)h +(m\))212 1496 y(\(let)g(\(\(m)g(\(slot-ref)f(o)h('m\)\)\))277 +1546 y(\(slot-set!)f(o)i('r)f(\(*)g(m)h(\(cos)f(a\)\)\))277 +1596 y(\(slot-set!)f(o)i('i)f(\(*)g(m)h(\(sin)f(a\)\)\)\))168 +1645 y(c)h(3\))37 1793 y FF(A)16 b(more)f(complete)g(example)h(is)g +(giv)o(en)g(b)q(elo)o(w:)125 1893 y Fv(\(define)k(c)i(\(make)e +()g(:r)i(12)f(:i)g(20\)\))125 1943 y(\(real-part)e(c\))343 +1992 y Fu(=)-7 b Fp(\))21 b Fv(12)125 2042 y(\(angle)f(c\))343 +2092 y Fu(=)-7 b Fp(\))21 b Fv(1.03037682652431)125 2142 +y(\(slot-set!)e(c)j('i)f(10\))125 2192 y(\(set!)f(\(real-part)g(c\))i +(1\))125 2242 y(\(describe)e(c\))343 2291 y Fu(=)-7 b +Fp(\))343 2341 y Fv(#[)19 b(128bf8])h(is)i(an)f(instance)f(of) +i(class)e()343 2391 y(Slots)g(are:)452 2441 +y(r)h(=)h(1)452 2491 y(i)f(=)h(10)452 2540 y(m)f(=)h(10.0498756211209) +452 2590 y(a)f(=)h(1.47112767430373)37 2738 y FF(Since)h +(initialization)i(k)o(eyw)o(ords)20 b(ha)o(v)o(e)h(b)q(een)i(de\014ned) +g(for)e(the)g(four)g(slots,)i(w)o(e)e(can)g(no)o(w)g(de\014ne)i(the)37 +2787 y Fw(make-rectangular)13 b FF(and)j Fw(make-polar)e +FF(standard)g(Sc)o(heme)i(primitiv)o(es.)p eop %%Page: 81 81 -81 80 bop 75 493 a FH(App)s(endix)33 b(F)75 703 y FA(Miscellaneous)39 -b(Informations)75 947 y Fw(1)67 b(In)n(tro)r(duction)75 -1035 y Fs(This)11 b(app)q(endix)h(lists)g(a)e(n)o(um)o(b)q(er)h(of)f -(things)i(whic)o(h)f(cannot)g(go)f(elsewhere)h(in)g(this)g(do)q(cumen)o -(t.)18 b(The)10 b(only)h(link)h(b)q(et)o(w)o(een)75 1080 -y(the)h(items)h(listed)g(her)g(is)f(that)g(they)h(should)h(ease)e(y)o -(our)g(life)h(when)g(using)g Fj(STk)p Fs(.)75 1225 y -Fw(2)67 b(Ab)r(out)22 b Fv(STk)75 1325 y FG(2.1)56 b(Latest)17 -b(release)75 1400 y Fj(STk)8 b Fs(distributio)q(n)k(is)d(a)o(v)n -(ailable)j(on)d(v)n(arious)h(sites.)16 b(The)9 b(original)i -(distribution)h(site)e(is)f Ft(kaolin.uni)o(ce)o(.fr)c(\(134.59.1)o -(32.)o(7\))o Fs(.)75 1446 y(Files)17 b(are)g(a)o(v)n(ailable)h(through) -g(anon)o(ymous)f(ftp)f(and)h(are)f(lo)q(cated)h(in)g(the)f -Ft(/pub/STk)d Fs(directory)m(.)27 b(Distribution)19 b(\014le)75 -1492 y(names)14 b(ha)o(v)o(e)f(the)h(form)f Ft(STk-x.y.z)o(.t)o(ar.)o -(gz)o Fs(,)d(where)j Ft(x)g Fs(and)h Ft(y)e Fs(represen)o(t)i(the)g(v)o -(ersion)g(the)g(release)g(and)g(sub-release)75 1537 y(n)o(um)o(b)q(ers) -g(of)f(the)g(pac)o(k)n(age.)75 1661 y FG(2.2)56 b(Sharing)18 -b(Co)r(de)75 1736 y Fs(If)13 b(y)o(ou)i(ha)o(v)o(e)f(written)g(co)q(de) -h(that)f(y)o(ou)g(w)o(an)o(t)g(to)g(share)g(with)g(the)g(\(small\))i -Fj(STk)d Fs(comm)o(unit)o(y)m(,)i(y)o(ou)g(can)f(dep)q(osit)h(it)g(in) -75 1782 y(the)f(directory)i Ft(/pub/STk/)o(Inc)o(omi)o(ng)10 -b Fs(of)k Ft(kaolin.uni)o(ce.)o(fr)p Fs(.)j(Mail)f(me)e(a)g(small)i -(note)e(when)h(y)o(ou)f(dep)q(osit)i(a)e(\014le)i(in)75 -1828 y(this)d(directory)h(so)e(I)g(can)g(put)h(in)g(in)g(its)f -(de\014nitiv)o(e)j(place)e(\()p Ft(/pub/STk/C)o(on)o(tri)o(b)c -Fs(directory)k(con)o(tains)h(the)e(con)o(tributed)75 -1873 y(co)q(de\).)75 1997 y FG(2.3)56 b Fd(STk)19 b FG(Mailing)f(list) -75 2072 y Fs(There)c(is)g(a)g(mailing)j(list)e(for)e -Fj(STk)h Fs(lo)q(cated)h(on)f Ft(kaolin.uni)o(ce.)o(fr)o -Fs(.)j(The)d(in)o(ten)o(t)g(of)g(this)h(mailing)h(list)f(is)g(to)e(p)q -(ermit)75 2118 y(to)19 b Fj(STk)f Fs(users)i(to)e(share)i(exp)q -(eriences,)i(exp)q(ose)e(problems,)h(submit)f(ideas)g(and)g(.)6 -b(.)g(.)g(ev)o(erything)20 b(whic)o(h)g(y)o(ou)g(\014nd)75 -2164 y(in)o(teresting)15 b(\(and)f(whic)o(h)g(is)f(related)h(to)f -Fj(STk)p Fs(\).)75 2212 y(T)m(o)f(subscrib)q(e)i(to)e(the)g(mailing)j -(list,)e(simply)h(send)f(a)g(message)f(with)h(the)f(w)o(ord)h -Ft(subscribe)8 b Fs(in)13 b(the)g Ft(Subject:)g Fs(\014eld)h(of)75 -2258 y(y)o(ou)g(mail.)k(Mail)c(m)o(ust)f(b)q(e)h(sen)o(t)f(to)g(the)g -(follo)o(wing)i(address:)j Ft(stk-reques)o(t@)o(kao)o(lin)o(.u)o(nic)o -(e.)o(fr)75 2306 y Fs(T)m(o)c(unsubscrib)q(e)i(from)e(the)h(mailing)h -(list,)g(send)e(a)h(mail)g(at)f(previous)i(email)g(address)f(with)f -(the)h(w)o(ord)f Ft(unsubscri)o(be)75 2352 y Fs(in)g(the)f -Ft(Subject:)h Fs(\014eld.)75 2400 y(F)m(or)d(more)g(information)j(on)d -(the)g(mailing)j(list)f(managemen)o(t)f(send)g(a)f(message)h(with)f -(the)h(w)o(ord)f Ft(help)e Fs(in)j(the)g Ft(Subject:)75 -2446 y Fs(\014eld)k(of)f(y)o(our)g(mail.)24 b(In)15 b(particular,)i(it) -e(is)g(p)q(ossible)j(to)d(\014nd)g(all)h(the)f(messages)h(whic)o(h)g -(ha)o(v)o(e)f(already)h(b)q(een)g(sen)o(t)f(on)75 2492 -y(the)e Fj(STk)g Fs(mailing)i(list.)75 2540 y(Subscription/)q(un-sub)q -(scri)q(pti)q(on/i)q(nforma)q(tion)i(requests)d(are)f(pro)q(cessed)i -(automatically)i(without)d(h)o(uman)g(in)o(terv)o(en-)75 -2586 y(tion.)k(If)12 b(y)o(ou)i(something)g(go)q(es)g(wrong,)f(send)h -(a)f(mail)h(to)f Ft(eg@unice.)o(fr)p Fs(.)75 2634 y(Once)g(y)o(ou)h(ha) -o(v)o(e)f(prop)q(erly)i(subscrib)q(e)g(to)e(the)g(mailing)j(list,)139 -2705 y Fn(\017)21 b Fs(y)o(ou)13 b(can)h(send)f(y)o(our)h(messages)g -(ab)q(out)g Fj(STk)e Fs(to)h Ft(stk@kaolin)o(.un)o(ic)o(e.f)o(r)p -Fs(,)139 2773 y Fn(\017)21 b Fs(y)o(ou)10 b(will)g(receiv)o(e)h(all)f -(the)g(messages)g(of)f(the)g(mailing)j(list)e(to)g(the)f(email)i -(address)f(y)o(ou)g(used)g(when)f(y)o(ou)h(subscrib)q(ed)179 -2819 y(to)j(the)g(list.)935 2924 y FD(81)p eop +81 80 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(81)p 37 64 1838 2 v 125 190 a Fv(\(define)20 b(make-rectangular)190 +240 y(\(lambda)g(\(x)i(y\))f(\(make)g()f(:r)h(x)h(:i)f +(y\)\)\))125 340 y(\(define)f(make-polar)190 390 y(\(lambda)g(\(x)i +(y\))f(\(make)g()f(:magn)h(x)g(:angle)g(y\)\)\))37 +611 y FI(3.4)56 b(Class)19 b(precedence)e(list)37 697 +y FF(A)g(class)g(ma)o(y)f(ha)o(v)o(e)g(more)g(than)h(one)g(sup)q +(erclass.)921 680 y FA(2)966 697 y FF(With)f(single)i(inheritance)h +(\(one)d(sup)q(erclass\),)i(it)e(is)37 753 y(easy)g(to)e(order)h(the)g +(sup)q(er)h(classes)g(from)e(most)h(to)f(least)i(sp)q(eci\014c.)21 +b(This)16 b(is)g(the)f(rule:)251 859 y FE(Rule)j(1:)23 +b(Eac)o(h)18 b(class)g(is)g(more)e(sp)q(eci\014c)j(than)f(its)g(sup)q +(erclasses.)37 958 y FF(With)e(m)o(ultiple)h(inheritance,)g(ordering)e +(is)h(harder.)k(Supp)q(ose)c(w)o(e)f(ha)o(v)o(e)125 1044 +y Fv(\(define-class)k(X)i(\(\))190 1094 y(\(\(x)g(:initform)f(1\)\)\)) +125 1194 y(\(define-class)f(Y)i(\(\))190 1243 y(\(\(x)g(:initform)f +(2\)\)\))125 1343 y(\(define-class)f(Z)i(\(X)h(Y\))190 +1393 y(\(...\)\))37 1536 y FF(In)16 b(this)f(case,)f(the)h +Fw(Z)g FF(class)g(is)g(more)f(sp)q(eci\014c)j(than)d(the)h +Fw(X)g FF(or)f Fw(Y)g FF(class)h(for)g(instances)g(of)f +Fw(Z)p FF(.)g(Ho)o(w)o(ev)o(er,)g(the)37 1592 y Fw(:initform)h +FF(sp)q(eci\014ed)i(in)g Fw(X)e FF(and)h Fw(Y)f FF(leads)h(to)f(a)g +(problem:)21 b(whic)o(h)c(one)e(o)o(v)o(errides)h(the)f(other?)21 +b(The)16 b(rule)37 1649 y(in)j FB(STklos)p FF(,)f(as)f(in)i(CLOS,)f(is) +g(that)f(the)h(sup)q(erclasses)h(listed)g(earlier)g(are)e(more)h(sp)q +(eci\014c)i(than)d(those)37 1705 y(listed)g(later.)j(So:)251 +1798 y FE(Rule)f(2:)26 b(F)l(or)18 b(a)h(giv)o(en)f(class,)h(sup)q +(erclasses)f(listed)i(earlier)f(are)f(more)251 1855 y(sp)q(eci\014c)h +(than)f(those)f(listed)i(later.)37 1948 y FF(These)d(rules)g(are)e +(used)i(to)e(compute)h(a)g(linear)h(order)f(for)f(a)h(class)g(and)h +(all)f(its)h(sup)q(erclasses,)g(from)e(most)37 2005 y(sp)q(eci\014c)20 +b(to)c(least)h(sp)q(eci\014c.)28 b(This)18 b(order)f(is)g(called)i(the) +e(\\class)h(precedence)h(list")e(of)g(the)g(class.)27 +b(Giv)o(en)37 2061 y(those)13 b(t)o(w)o(o)f(rules,)i(w)o(e)f(can)g +(claim)h(that)f(the)g(initial)i(form)d(for)h(the)g Fw(x)g +FF(slot)g(of)g(previous)g(example)h(is)g(2)f(since)37 +2117 y(the)j(class)f Fw(X)g FF(is)h(placed)g(b)q(efore)g +Fw(Y)f FF(in)h(class)g(precedence)h(list)f(of)e Fw(Z)p +FF(.)37 2174 y(This)19 b(t)o(w)o(o)e(rules)i(are)e(not)h(alw)o(a)o(ys)f +(enough)i(to)e(determine)i(a)f(unique)i(order,)e(ho)o(w)o(ev)o(er,)f +(but)i(they)f(giv)o(e)37 2230 y(an)f(idea)g(of)f(ho)o(w)f(things)i(w)o +(ork.)22 b FB(STklos)16 b FF(algorithm)g(for)g(calculating)h(the)g +(precedence)h(list)f(is)g(a)f(little)37 2287 y(simpler)i(than)e(the)h +(CLOS)g(one)f(describ)q(ed)j(in)e([15)o(])f(for)g(breaking)g(ties.)24 +b(Consequen)o(tly)17 b(the)g(calculated)37 2343 y(class)h(precedence)i +(list)e(could)h(b)q(e)f(di\013eren)o(t.)27 b(T)l(aking)18 +b(the)g Fw(F)f FF(class)h(sho)o(wn)f(in)i(Figure)e(1,)h(the)g +FB(STklos)37 2400 y FF(calculated)f(class)f(precedence)h(list)f(is)151 +2505 y Fw(\(f)24 b(d)f(e)h(a)g(b)g(c)f()g(\))37 +2611 y FF(whereas)16 b(it)f(w)o(ould)h(b)q(e)f(the)h(follo)o(wing)g +(list)g(with)f(a)g(CLOS-lik)o(e)i(algorithm:)151 2704 +y Fw(\(f)24 b(d)f(e)h(a)g(c)g(b)f()g(\))p +37 2745 735 2 v 89 2771 a Ft(2)107 2787 y Fs(This)13 +b(section)i(is)e(an)g(adaptation)j(of)c(Je\013)h(Dalton's)i +(\(J.Dalton@ed.ac.uk\))f(Brief)f(in)o(tro)q(duction)j(to)d(CLOS\))p +eop %%Page: 82 82 -82 81 bop 75 47 a FC(82)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a FG(2.4)56 b Fd(STk)19 b FG(F)-6 -b(A)n(Q)75 251 y Fs(Marc)15 b(F)m(urrer)h(has)f(set)g(up)h(a)f(F)l(A)o -(Q)f(for)h Fj(STk)p Fs(.)23 b(This)16 b(F)l(A)o(Q)e(is)i(regularly)h(p) -q(osted)f(on)g(the)f Fj(STk)g Fs(mailing)j(list.)24 b(It)15 -b(can)75 296 y(also)g(b)q(e)f(accessed)g(through)h Ft(http://lt)o(iww)o -(w.e)o(pf)o(l.c)o(h/)h(furrer/STk)o(/F)o(AQ.)o(htm)o(l)p -Fs(.)f(ASCI)q(I)f(v)o(ersion)h(of)e(the)h(F)l(A)o(Q)f(is)75 -342 y(a)o(v)n(ailable)j(from)d Ft(http://lt)o(iw)o(ww.)o(ep)o(fl.)o -(ch/)j(furrer/ST)o(k/)o(FAQ)o(.tx)o(t)p Fs(.)75 458 y -FG(2.5)56 b(Rep)r(orting)17 b(a)i(bug)75 530 y Fs(When)10 -b(y)o(ou)f(\014nd)h(a)e(bug)i(in)f Fj(STk)p Fs(,)g(please)h(send)g(its) -f(description)i(to)e(the)g(follo)o(wing)i(address)e Ft(stk-bugs@ka)o -(ol)o(in.)o(un)o(ice)o(.fr)o Fs(.)75 576 y(Don't)k(forget)g(to)f -(indicate)j(the)e(v)o(ersion)h(y)o(ou)f(use)g(and)g(the)g(arc)o -(hitecture)h(the)f(system)g(is)g(compiled)i(on.)i Fj(STk)c -Fs(v)o(ersion)75 622 y(and)f(arc)o(hitecture)h(can)e(b)q(e)h(found)g(b) -o(y)g(using)h(the)e Ft(version)e Fs(and)i Ft(machine-typ)o(e)d -Fs(Sc)o(heme)k(primitiv)o(es.)19 b(If)11 b(p)q(ossible,)i(try)75 -667 y(to)g(\014nd)h(a)f(small)h(program)g(whic)o(h)g(exhibit)h(the)e -(bug.)75 804 y Fw(3)67 b Fv(STk)22 b Fw(and)h(Emacs)75 -889 y Fs(The)15 b(Emacs)g(family)h(editors)g(can)f(b)q(e)g(customized)i -(to)d(ease)i(viewing)g(and)g(editing)g(programs)g(of)f(a)g(particular)i -(sort.)75 935 y(Hin)o(ts)d(giv)o(en)g(b)q(elo)o(w)g(enable)g(a)f -(\014ne)h(\\in)o(tegration")h(of)e Fj(STk)g Fs(in)h(Emacs.)75 -1051 y FG(Automatic)j(sc)n(heme-mo)r(de)e(setting)75 -1123 y Fs(Emacs)g(mo)q(de)h(can)f(b)q(e)g(c)o(hosen)h(automatically)i -(on)e(the)f(\014le's)h(name.)23 b(T)m(o)14 b(edit)i(\014le)g(ended)g(b) -o(y)f Ft(.stk)j Fs(or)d Ft(.stklos)e Fs(in)75 1169 y(Sc)o(heme)f(mo)q -(de,)h(y)o(ou)f(ha)o(v)o(e)g(to)g(set)g(the)f(Elisp)j(v)n(ariable)g -Ft(auto-mode)o(-al)o(is)o(t)9 b Fs(to)i(con)o(trol)i(the)f(corresp)q -(ondence)i(b)q(et)o(w)o(een)75 1214 y(those)i(su\016xes)g(and)g(the)f -(sc)o(heme)g(mo)q(de.)24 b(The)16 b(simpler)h(w)o(a)o(y)e(to)g(set)g -(this)h(v)n(ariable)h(consists)g(to)e(add)h(the)f(follo)o(wing)75 -1260 y(lines)g(in)e(y)o(our)h(.)p Ft(emacs)d Fs(startup)i(\014le.)179 -1335 y Ft(;;)19 b(Add)f(the)h('.stk')e(and)h('.stklos')e(suffix)i(in)h -(the)f(auto-mode-)o(al)o(ist)e(Emacs)179 1381 y(;;)j(variable.)d -(Setting)h(this)h(variable)e(permits)h(to)i(automagica)o(ll)o(y)e -(place)g(the)179 1427 y(;;)i(buffer)e(in)i(scheme-mo)o(de.)179 -1472 y(\(setq-def)o(aul)o(t)d(auto-mode-a)o(li)o(st)g(\(append)h -(auto-mode-)o(al)o(ist)924 1518 y(\("\\\\.stk$")75 b(.)19 -b(scheme-mo)o(de\))924 1564 y(\("\\\\.stklo)o(s$)o(")e(.)i(scheme-mo)o -(de\))o(\)\))75 1680 y FG(Using)g(Emacs)e(and)i Fc(CMU)i(Scheme)75 -1752 y Fl(CMU)12 b(Scheme)c Fs(pac)o(k)n(age)k(pac)o(k)n(age)f(p)q -(ermits)h(to)e(run)h(the)g Fj(STk)f Fs(in)o(terpreter)i(in)f(an)g -(Emacs)f(windo)o(w.)17 b(Once)11 b(the)f(pac)o(k)n(age)75 -1798 y(is)k(loaded,)g(y)o(ou)f(can)g(send)h(text)f(to)g(the)g(inferior) -h Fj(STk)f Fs(in)o(terpreter)h(from)f(other)g(bu\013ers)h(con)o -(taining)h(Sc)o(heme)f(source.)75 1843 y(The)d Fl(CMU)g(Scheme)e -Fs(pac)o(k)n(age)j(is)f(distributed)i(with)e(Emacs)g(\(b)q(oth)h -(FSF-Emacs)f(and)g(Xemacs\))g(and)g(y)o(ou)g(should)i(ha)o(v)o(e)75 -1889 y(it)g(if)h(y)o(ou)f(are)g(running)i(this)f(editor.)75 -1936 y(T)m(o)f(use)g(the)g Fl(CMU)h(Scheme)d Fs(pac)o(k)n(age)j(with)g -Fj(STk)p Fs(,)e(place)i(the)f(follo)o(wing)j(lines)e(in)g(y)o(our)g -Ft(.emacs)c Fs(startup)k(\014le.)179 2011 y Ft(;;)19 -b(Use)f(cmu-scheme)e(rather)h(than)h(xscheme)f(which)h(is)h(launched)d -(by)j(default)179 2057 y(;;)g(whence)e(running)g('run-sche)o(me')f -(\(xscheme)g(is)j(wired)f(with)g(CScheme\))179 2103 y(\(autoload)e -('run-sche)o(me)g("cmuscheme)o(")h("Run)h(an)h(inferior)d(Scheme")h -(t\))179 2148 y(\(setq)g(scheme-prog)o(ra)o(m-n)o(ame)f("stk"\))179 -2194 y(\(setq)h(inferior-sc)o(he)o(me-)o(mod)o(e-)o(hoo)o(k)f -('\(lambda\(\))g(\(split-win)o(dow)o(\)\))o(\))75 2269 -y Fs(After)c(ha)o(ving)j(en)o(tered)f(those)f(lines)i(in)f(y)o(our)f -Ft(.emacs)e Fs(\014le,)i(y)o(ou)h(can)f(simply)i(run)e(the)h -Fj(STk)e Fs(in)o(terpreter)j(b)o(y)e(t)o(yping)179 2335 -y Ft(M-x)18 b(run-scheme)75 2401 y Fs(Read)12 b(the)f -Fl(CMU)i(Scheme)d Fs(do)q(cumen)o(tation)j(\(or)e(use)h(the)g(describ)q -(e-mo)q(de)h(Elisp)g(command\))f(for)f(a)h(complete)g(descrip-)75 -2447 y(tion)i(of)f(this)h(pac)o(k)n(age.)75 2563 y FG(Using)19 -b(Emacs)e(and)i(the)f Fc(Ilisp)i FG(pac)n(k)m(age)75 -2635 y Fl(Ilisp)12 b Fs(is)j(another)f(sc)o(heme)h(pac)o(k)n(age)f -(whic)o(h)h(allo)o(ws)g(to)f(run)g(the)g Fj(STk)g Fs(in)o(terpreter)h -(in)f(an)g(Emacs)g(windo)o(w.)20 b(This)15 b(is)f(a)75 -2681 y(ric)o(h)f(pac)o(k)n(age)h(with)f(a)f(lot)i(of)e(nice)h -(features.)k Fl(Ilisp)11 b Fs(comes)i(pre-installed)j(with)d(Xemacs;)f -(it)h(has)g(to)g(b)q(e)f(installed)k(with)75 2726 y(FSF)d(Emacs)h -(\(the)f(last)h(v)o(ersion)h(of)e Fl(Ilisp)e Fs(can)j(b)q(e)f(ftp'ed)g -(anon)o(ymously)j(from)d Ft(ftp.cs.cmu)o(.e)o(du)d Fs -(\(128.2.206.173\))k(in)75 2772 y(the)f Ft(/user/ai/l)o(ang)o(/l)o(isp) -o(/u)o(til)o(/e)o(mac)o(s/i)o(li)o(sp)c Fs(directory\).)75 -2819 y(T)m(o)k(use)g(the)g Fl(Ilisp)e Fs(pac)o(k)n(age)j(with)g -Fj(STk)p Fs(,)e(place)i(the)g(follo)o(wing)h(lines)f(in)g(y)o(our)g -Ft(.emacs)c Fs(startup)k(\014le.)p eop +82 81 bop 37 45 a FE(82)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FF(Ho)o(w)o(ev)o(er,)i(it)h(is)g(usually)h +(considered)f(a)f(bad)h(idea)g(for)f(programmers)f(to)g(rely)i(on)f +(exactly)h(what)f(the)37 247 y(order)e(is.)25 b(If)17 +b(the)g(order)f(for)g(some)g(sup)q(erclasses)i(is)g(imp)q(ortan)o(t,)e +(it)h(can)g(b)q(e)g(expressed)g(directly)h(in)g(the)37 +303 y(class)e(de\014nition.)37 353 y(The)d(precedence)i(list)e(of)f(a)g +(class)h(can)g(b)q(e)g(obtained)h(b)o(y)e(the)h(function)g +Fw(class-precedence-list)p FF(.)j(This)37 403 y(function)g(returns)f(a) +f(ordered)h(list)h(whose)f(\014rst)f(elemen)o(t)i(is)f(the)g(most)f(sp) +q(eci\014c)j(class.)j(F)l(or)14 b(instance,)125 487 y +Fv(\(class-precedenc)o(e-lis)o(t)19 b(B\))343 537 y Fu(=)-7 +b Fp(\))21 b Fv(\(#[)f(12a248])g(#[)g(1074e8])h +(#[)f(107498]\))37 672 y FF(Ho)o(w)o(ev)o(er,)15 +b(this)h(result)g(is)g(not)f(to)q(o)f(m)o(uc)o(h)i(readable;)g(using)g +(the)g(function)g(class-name)g(yields)h(a)e(clearer)37 +721 y(result:)125 806 y Fv(\(map)21 b(class-name)e +(\(class-precedence-l)o(ist)g(B\)\))343 856 y Fu(=)-7 +b Fp(\))21 b Fv(\(b)h()e(\))37 1048 y Fy(4)67 +b(Generic)23 b(functions)37 1151 y FI(4.1)56 b(Generic)18 +b(functions)g(and)h(metho)r(ds)37 1237 y FF(Neither)14 +b FB(STklos)e FF(nor)g(CLOS)i(use)f(the)g(message)f(mec)o(hanism)h(for) +f(metho)q(ds)h(as)f(most)g(Ob)s(ject)h(Orien)o(ted)37 +1294 y(language)i(do.)k(Instead,)14 b(they)g(use)g(the)g(notion)g(of)g +(generic)g(function.)21 b(A)13 b(generic)i(function)g(can)f(b)q(e)g +(seen)37 1350 y(as)j(a)g(metho)q(ds)h(\\tank)o(er".)24 +b(When)18 b(the)f(ev)m(aluator)h(requestd)f(the)h(application)h(of)d(a) +h(generic)h(function,)37 1407 y(all)h(the)e(metho)q(ds)h(of)f(this)h +(generic)g(function)g(will)h(b)q(e)f(grabb)q(ed)g(and)g(the)f(most)g +(sp)q(eci\014c)i(among)e(them)37 1463 y(will)f(b)q(e)f(applied.)21 +b(W)l(e)14 b(sa)o(y)g(that)f(a)h(metho)q(d)g FD(M)g FF(is)h +FD(mor)n(e)g(sp)n(e)n(ci\014c)d FF(than)i(a)g(metho)q(d)g +FD(M')g FF(if)h(the)f(class)g(of)g(its)37 1519 y(parameters)i(are)h +(more)f(sp)q(eci\014c)i(than)f(the)f FD(M')h FF(ones.)24 +b(T)l(o)16 b(b)q(e)i(more)e(precise,)i(when)f(a)f(generic)i(fun)o(tion) +37 1576 y(m)o(ust)d(b)q(e)h(\\called")g(the)g(system)e(will)93 +1679 y(1.)22 b(searc)o(h)15 b(among)g(all)h(the)f(generic)h(function)g +(those)f(whic)o(h)h(are)f(applicable)93 1772 y(2.)22 +b(sort)14 b(the)i(list)g(of)e(applicable)k(metho)q(ds)d(in)h(the)g +(\\most)e(sp)q(eci\014c")j(order)93 1864 y(3.)22 b(call)d(the)f(most)f +(sp)q(eci\014c)i(metho)q(d)f(of)f(this)i(list)f(\(i.e.)28 +b(the)17 b(\014rst)h(metho)q(d)g(of)f(the)h(sorted)f(metho)q(ds)151 +1921 y(list\).)37 2024 y(The)f(de\014nition)g(of)f(a)f(generic)i +(function)f(is)h(done)f(with)g(the)g Fw(define-generic)e +FF(macro.)19 b(De\014nition)d(of)e(a)37 2080 y(new)e(metho)q(d)f(is)h +(done)f(with)h(the)f Fw(define-method)e FF(macro.)18 +b(Note)11 b(that)f Fw(define-method)g FF(automatically)37 +2137 y(de\014nes)15 b(the)f(generic)g(function)h(if)f(it)g(has)f(not)h +(b)q(een)g(de\014ned)h(b)q(efore.)20 b(Consequen)o(tly)l(,)14 +b(most)f(of)g(the)h(time,)37 2193 y(the)i Fw(define-generic)d +FF(needs)j(not)f(b)q(e)h(used.)37 2243 y(Consider)g(the)g(follo)o(wing) +f(de\014nitions:)125 2328 y Fv(\(define-generic)j(M\))125 +2377 y(\(define-method)h(M\(\(a)i(\))e(b\))j('integer\))125 +2427 y(\(define-method)d(M\(\(a)i(\))f(b\))h('real\))125 +2477 y(\(define-method)e(M\(a)i(b\))g('top\))37 2618 +y FF(The)g Fw(define-generic)d FF(call)k(de\014nes)f +Fw(M)f FF(as)g(a)g(generic)h(function.)36 b(Note)20 b(that)f(the)i +(signature)f(of)g(the)37 2674 y(generic)e(function)f(is)f(not)g(giv)o +(en)h(up)q(on)f(de\014nition,)i(con)o(trarily)e(to)g(CLOS.)h(This)f +(will)i(p)q(ermit)f(metho)q(ds)37 2731 y(with)i(di\013eren)o(t)f +(signatures)g(for)f(a)g(giv)o(en)i(generic)f(function,)h(as)f(w)o(e)f +(shall)i(see)f(later.)28 b(The)18 b(three)g(next)37 2787 +y(lines)h(de\014ne)g(metho)q(ds)e(for)f(the)i Fw(M)f +FF(generic)h(function.)27 b(Eac)o(h)17 b(metho)q(d)g(uses)h(a)e +(sequence)j(of)e FD(p)n(ar)n(ameter)p eop %%Page: 83 83 -83 82 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(83)p 75 64 1763 2 v 179 179 a Ft(\(autoload)16 b('run-ilis)o(p)272 -b("ilisp")17 b("Select)f(a)k(new)e(inferior)f(LISP.")g(t\))179 -224 y(\(autoload)f('stk)391 b("ilisp")17 b("Run)h(stk)g(in)h(ILISP.")e -(t\))179 270 y(\(add-hook)f('ilisp-lo)o(ad-)o(hoo)o(k)375 -316 y('\(lambda)g(\(\))434 361 y(\(require)g('completer)o(\))434 -453 y(;;)j(Define)e(STk)h(dialect)f(characteri)o(sti)o(cs)434 -498 y(\(defdiale)o(ct)f(stk)j("STk)f(Scheme")473 544 -y(scheme)473 590 y(\(setq)g(comint-pr)o(om)o(pt-)o(re)o(gex)o(p)f -("^STk>)g("\))473 635 y(\(setq)h(ilisp-pro)o(gr)o(am)e("stk)i -(-interacti)o(ve")o(\))473 681 y(\(setq)g(comint-pt)o(yp)e(t\))473 -727 y(\(setq)i(comint-al)o(wa)o(ys-)o(sc)o(rol)o(l)f(t\))473 -772 y(\(setq)h(ilisp-las)o(t-)o(com)o(ma)o(nd)e("*"\)\)\)\))75 -843 y Fs(After)c(ha)o(ving)j(en)o(tered)f(those)f(lines)i(in)f(y)o(our) -f Ft(.emacs)e Fs(\014le,)i(y)o(ou)h(can)f(simply)i(run)e(the)h -Fj(STk)e Fs(in)o(terpreter)j(b)o(y)e(t)o(yping)179 905 -y Ft(M-x)18 b(stk)75 967 y Fs(The)13 b(Ilisp)h(pac)o(k)n(age)g(comes)g -(with)f(a)g(ric)o(h)h(do)q(cumen)o(tation)h(whic)o(h)f(describ)q(e)h -(ho)o(w)e(to)g(customize)h(the)f(pac)o(k)n(age.)75 1077 -y FG(Other)18 b(pac)n(k)m(ages)75 1147 y Fs(Another)13 -b(w)o(a)o(y)g(to)g(use)h Fj(STk)e Fs(and)i(Emacs)f(consists)i(to)d(use) -i(a)f(sp)q(ecial)i(purp)q(ose)f Fj(STk)f Fs(mo)q(de.)k(Y)m(ou)c(can)g -(\014nd)h(t)o(w)o(o)f(suc)o(h)75 1193 y(mo)q(des)h(in)f(the)h -Ft(/pub/Con)o(tri)o(b)c Fs(directory)k(of)f Ft(kaolin.un)o(ice)o(.f)o -(r)p Fs(.)75 1303 y FG(3.1)56 b(Using)18 b(the)g(SLIB)h(pac)n(k)m(age)f -(with)h Fd(STk)75 1373 y Fs(Aubrey)c(Ja\013er)g(main)o(tains)h(a)f(pac) -o(k)n(age)g(called)h Fl(SLIB)e Fs(whic)o(h)h(is)g(a)g(p)q(ortable)h(Sc) -o(heme)f(library)h(whic)o(h)f(pro)o(vides)h(com-)75 1419 -y(patibilit)o(y)i(and)d(utilit)o(y)i(functions)f(for)f(all)h(standard)g -(Sc)o(heme)f(implemen)o(tations.)25 b(T)m(o)14 b(use)h(this)h(pac)o(k)n -(age,)g(y)o(ou)f(ha)o(v)o(e)75 1464 y(just)e(to)g(t)o(yp)q(e)179 -1526 y Ft(\(require)j("slib"\))75 1588 y Fs(and)i(follo)o(w)g(the)g -(instructions)i(giv)o(en)e(in)g(the)g Fl(SLIB)e Fs(library)k(to)d(use)h -(a)f(particular)j(pac)o(k)n(age.)31 b Fl(Note:)49 b(SLIB)17 -b Fs(uses)75 1634 y(also)f(the)e Fl(r)n(e)n(quir)n(e/pr)n(ovide)d -Fs(mec)o(hanism)16 b(to)e(load)i(comp)q(onen)o(ts)g(of)e(the)h(library) -m(.)23 b(Once)15 b Fl(SLIB)f Fs(has)h(b)q(een)g(loaded,)h(the)75 -1680 y(standard)g Fj(STk)e Ft(require)e Fs(and)j Ft(provide)d -Fs(are)i(o)o(v)o(erloaded)j(suc)o(h)e(as)g(if)g(their)g(parameter)g(is) -h(a)e(string)i(this)f(is)h(the)e(old)75 1725 y Fj(STk)f -Fs(pro)q(cedure)h(whic)o(h)g(is)g(called,)g(and)g(if)f(their)h -(parameter)f(is)h(a)f(sym)o(b)q(ol,)h(this)g(is)g(the)f -Fl(SLIB)f Fs(one)h(whic)o(h)h(is)g(called.)75 1856 y -Fw(4)67 b(Getting)23 b(information)g(ab)r(out)g(Sc)n(heme)75 -1951 y FG(4.1)56 b(The)18 b Fc(R)360 1933 y Fq(4)371 -1951 y Fb(RS)k FG(do)r(cumen)n(t)75 2021 y Fl(R)103 2005 -y Fr(4)114 2021 y Fk(RS)c Fs(is)d(the)g(do)q(cumen)o(t)h(whic)o(h)g -(fully)g(describ)q(e)h(the)e(Sc)o(heme)h(Programming)g(Language,)h(it)e -(can)g(b)q(e)h(found)f(in)h(the)75 2067 y(Sc)o(heme)e(rep)q(ository)g -(\(see)f Ff(??)p Fs(\))g(in)h(the)f(directory:)179 2129 -y Ft(ftp.cs.in)o(dia)o(na)o(.ed)o(u:)o(/pu)o(b/s)o(ch)o(eme)o(-r)o(epo) -o(si)o(tor)o(y/d)o(oc)75 2191 y Fs(Aubrey)h(Ja\013er)f(has)g(also)h -(translated)h(this)f(do)q(cumen)o(t)g(in)g(HTML.)e(A)g(v)o(ersion)j(of) -e(this)h(do)q(cumen)o(t)g(is)f(a)o(v)n(ailable)j(at)179 -2253 y Ft(file://sw)o(iss)o(-f)o(tp.)o(ai)o(.mi)o(t.e)o(du)o(/pu)o(b/)o -(scm)o(/H)o(TML)o(/r4)o(rs)p 1066 2253 12 2 v 11 w(toc.html)75 -2364 y FG(4.2)56 b(The)18 b(Sc)n(heme)f(Rep)r(ository)75 -2433 y Fs(The)h(main)h(site)g(where)f(y)o(ou)h(can)f(\014nd)h(\(man)o -(y\))g(informations)h(ab)q(out)f(Sc)o(heme)g(is)g(lo)q(cated)g(in)g -(the)g(Univ)o(ersit)o(y)h(of)75 2479 y(Indiana.)27 b(The)16 -b(Sc)o(heme)g(rep)q(ository)i(is)e(main)o(tained)j(b)o(y)d(Da)o(vid)h -(Eb)o(y)m(.)26 b(The)16 b(rep)q(ository)h(curren)o(tly)g(consists)h(of) -d(the)75 2525 y(follo)o(wing)g(areas:)139 2587 y Fn(\017)21 -b Fs(Lots)13 b(of)g(sc)o(heme)g(co)q(de)h(mean)o(t)f(for)g(b)q(enc)o -(hmarking,)i(library/supp)q(o)q(rt,)g(researc)o(h,)e(education,)i(and)f -(fun.)139 2649 y Fn(\017)21 b Fs(On-line)15 b(do)q(cumen)o(ts:)k(Mac)o -(hine)c(readable)g(standards)g(do)q(cumen)o(ts,)f(standards)h(prop)q -(osals,)g(v)n(arious)g(Sc)o(heme-)179 2695 y(related)f(tec)o(h)f(rep)q -(orts,)g(conference)h(pap)q(ers,)g(mail)g(arc)o(hiv)o(es,)g(etc.)139 -2757 y Fn(\017)21 b Fs(Most)13 b(of)g(the)g(publicly)j(distributabl)q -(e)f(Sc)o(heme)f(Implemen)o(tations.)139 2819 y Fn(\017)21 -b Fs(Material)15 b(designed)f(primarily)i(for)d(instruction.)p +83 82 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(83)p 37 64 1838 2 v 37 190 a FD(sp)n(e)n(cializers)10 +b FF(that)g(sp)q(ecify)i(when)g(the)f(giv)o(en)h(metho)q(d)f(is)h +(applicable.)20 b(A)12 b(sp)q(ecializer)h(p)q(ermits)f(to)e(indicate)37 +247 y(the)j(class)g(a)f(parameter)g(m)o(ust)g(b)q(elong)i(to)d +(\(directly)j(or)e(indirectly\))i(to)e(b)q(e)i(applicable.)21 +b(If)13 b(no)f(sp)q(eciliazer)37 303 y(is)k(giv)o(en,)g(the)f(system)g +(defaults)g(it)h(to)e Fw()p FF(.)19 b(Th)o(us,)c(the)g(\014rst)g +(metho)q(d)h(de\014nition)h(is)e(equiv)m(alen)o(t)i(to)125 +398 y Fv(\(define-method)i(M\(\(a)i(\))e(\(b)j(\)\))e +('integer\))37 543 y FF(No)o(w,)15 b(let)g(us)h(lo)q(ok)f(at)g(some)g +(p)q(ossible)i(calls)f(to)e(generic)j(function)f Fw(M)p +FF(:)125 626 y Fv(\(M)21 b(2)h(3\))343 676 y Fu(=)-7 +b Fp(\))21 b Fv(integer)125 726 y(\(M)g(2)h(#t\))343 +776 y Fu(=)-7 b Fp(\))21 b Fv(integer)125 826 y(\(M)g(1.2)g('a\))343 +876 y Fu(=)-7 b Fp(\))21 b Fv(real)125 925 y(\(M)g(#3)g('a\))343 +975 y Fu(=)-7 b Fp(\))21 b Fv(real)125 1025 y(\(M)g(#t)g(#f\))343 +1075 y Fu(=)-7 b Fp(\))21 b Fv(top)125 1125 y(\(M)g(1)h(2)f(3\))343 +1174 y Fu(=)-7 b Fp(\))21 b Fv(error)g(\(since)g(no)g(method)g(exists)f +(for)h(3)h(parameters\))37 1308 y FF(The)13 b(preceding)h(metho)q(ds)e +(use)h(only)f(one)h(sp)q(ecializer)i(p)q(er)d(parameter)g(list.)19 +b(Of)13 b(course,)f(eac)o(h)h(parameter)37 1357 y(can)g(use)f(a)g(sp)q +(ecializer.)22 b(In)13 b(this)f(case,)h(the)f(parameter)g(list)h(is)g +(scanned)g(from)e(left)i(to)e(righ)o(t)h(to)g(determine)37 +1407 y(the)k(applicabilit)o(y)i(of)d(a)g(metho)q(d.)20 +b(Supp)q(ose)c(w)o(e)f(declare)h(no)o(w)125 1490 y Fv(\(define-method)j +(M)i(\(\(a)g(\))f(\(b)h(\)\))f('integer-number\))125 +1540 y(\(define-method)f(M)i(\(\(a)g(\))f(\(b)h(\)\))64 +b('integer-real\))125 1590 y(\(define-method)19 b(M)i(\(a)h(\(b)f +(\)\))f('top-number\))37 1723 y FF(In)c(this)g(case,)125 +1807 y Fv(\(M)21 b(1)h(2\))343 1856 y Fu(=)-7 b Fp(\))21 +b Fv(integer-integer)125 1906 y(\(M)g(1)h(1.0\))343 1956 +y Fu(=)-7 b Fp(\))21 b Fv(integer-real)125 2006 y(\(M)g(1)h(#t\))343 +2056 y Fu(=)-7 b Fp(\))21 b Fv(integer)125 2105 y(\(M)g('a)g(1\))343 +2155 y Fu(=)-7 b Fp(\))21 b Fv('top-number)37 2326 y +FI(4.2)56 b(Next-metho)q(d)37 2405 y FF(When)22 b(a)f(generic)h +(function)g(is)g(called,)i(the)e(list)g(of)f(applicable)i(metho)q(ds)f +(is)f(built.)40 b(As)21 b(men)o(tioned)37 2455 y(b)q(efore,)j(the)e +(most)g(sp)q(eci\014c)i(metho)q(d)e(of)f(this)i(list)g(is)f(applied)i +(\(see)e(4.1\).)40 b(This)22 b(metho)q(d)g(ma)o(y)g(call)37 +2505 y(the)d(next)g(metho)q(d)f(in)h(the)g(list)g(of)f(applicable)j +(metho)q(ds.)30 b(This)19 b(is)g(done)f(b)o(y)h(using)g(the)f(sp)q +(ecial)j(form)37 2555 y Fw(next-method)p FF(.)e(Consider)d(the)f(follo) +o(wing)h(de\014nitions)125 2638 y Fv(\(define-method)j(Test\(\(a)h +(\)\))41 b(\(cons)21 b('integer)f(\(next-method\)\)\))125 +2688 y(\(define-method)f(Test\(\(a)h(\)\))63 +b(\(cons)21 b('number)42 b(\(next-method\)\)\))125 2738 +y(\(define-method)19 b(Test\(a\))107 b(\(list)21 b('top\)\))p eop %%Page: 84 84 -84 83 bop 75 47 a FC(84)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 139 179 a Fn(\017)21 b Fs(F)m(reely-distributabl)q(e)16 -b(promotional)g(or)d(demonstration)i(material)f(for)f(Sc)o -(heme-related)i(pro)q(ducts.)139 241 y Fn(\017)21 b Fs(Utilities)15 -b(\(e.g.,)d(Sc)o(hemew)o(eb,)h(SLaT)m(eX\).)139 303 y -Fn(\017)21 b Fs(Extraneous)14 b(stu\013,)f(extensions,)i(etc.)75 -366 y(Y)m(ou)e(can)g(access)h(the)f(Sc)o(heme)h(rep)q(ository)g(with) -139 428 y Fn(\017)21 b Ft(ftp.cs.in)o(dia)o(na)o(.ed)o(u:)o(/pu)o(b/s)o -(ch)o(eme)o(-r)o(epo)o(si)o(tor)o(y)139 490 y Fn(\017)g -Ft(http://ww)o(w.c)o(s.)o(ind)o(ia)o(na.)o(edu)o(/s)o(che)o(me)o(-re)o -(po)o(sit)o(ory)o(/S)o(Rho)o(me)o(.ht)o(ml)75 552 y Fs(The)13 -b(Sc)o(heme)h(Rep)q(ository)h(is)e(mirrored)h(in)g(Europ)q(e:)139 -615 y Fn(\017)21 b Ft(ftp.inria)o(.fr)o(:/)o(lan)o(g/)o(Sch)o(eme)139 -677 y Fn(\017)g Ft(faui80.in)o(for)o(ma)o(tik)o(.u)o(ni-)o(erl)o(an)o -(gen)o(.d)o(e:/)o(pu)o(b/s)o(che)o(me)o(/yo)o(rk)o(u)139 -739 y Fn(\017)g Ft(ftp.infor)o(mat)o(ik)o(.un)o(i-)o(mue)o(nch)o(en)o -(.de)o(:/)o(pub)o(/c)o(omp)o(/pr)o(og)o(ram)o(mi)o(ng/)o(lan)o(gu)o -(age)o(s/)o(sch)o(eme)o(/s)o(che)o(me)o(-re)o(po)o(sit)o(ory)75 -850 y FG(4.3)56 b(Usenet)18 b(newsgroup)h(and)g(other)f(addresses)75 -919 y Fs(There)13 b(is)h(a)f(usenet)g(newsgroup)i(ab)q(out)e(the)h(Sc)o -(heme)f(Programming)i(language:)k Ft(comp.lang)o(.sc)o(he)o(me)p -Fs(.)75 965 y(F)m(ollo)o(wing)c(addresses)g(con)o(tains)f(also)g -(material)h(ab)q(out)f(the)f(Sc)o(heme)g(language)139 -1036 y Fn(\017)21 b Ft(http://ww)o(w.c)o(s.)o(cmu)o(.e)o(du:)o(800)o -(1/)o(Web)o(/G)o(rou)o(ps)o(/AI)o(/ht)o(ml)o(/fa)o(qs)o(/la)o(ng/)o(sc) -o(hem)o(e/)o(top)o(.ht)o(ml)5 b Fs(con)o(tains)10 b(the)f(Sc)o(heme)179 -1081 y(F)l(A)o(Q.)139 1144 y Fn(\017)21 b Ft(http://ww)o(w-s)o(wi)o -(ss.)o(ai)o(.mi)o(t.e)o(du)o(/sc)o(he)o(me-)o(ho)o(me.)o(htm)o(l)10 -b Fs(is)j(the)g(Sc)o(heme)h(Home)f(page)g(at)g(MIT)139 -1206 y Fn(\017)21 b Ft(http://ww)o(w.a)o(i.)o(mit)o(.e)o(du/)o(pro)o -(je)o(cts)o(/s)o(u/s)o(u.)o(htm)o(l)10 b Fs(is)j(the)g(Sc)o(heme)h -(Underground)h(w)o(eb)e(page)p eop +84 83 bop 37 45 a FE(84)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FF(With)f(those)f(de\014nitions,)125 +275 y Fv(\(Test)20 b(1\))343 325 y Fu(=)-7 b Fp(\))21 +b Fv(\(integer)f(number)h(top\))125 375 y(\(Test)f(1.0\))343 +424 y Fu(=)-7 b Fp(\))21 b Fv(\(number)g(top\))125 474 +y(\(Test)f(#t\))343 524 y Fu(=)-7 b Fp(\))21 b Fv(\(top\))37 +695 y FI(4.3)56 b(Example)37 774 y FF(In)24 b(this)f(section)g(w)o(e)g +(shall)g(con)o(tin)o(ue)h(to)e(de\014ne)h(op)q(erations)g(on)g(the)g +Fw()e FF(class)i(de\014ned)h(in)37 824 y(Figure)19 +b(2.)29 b(Supp)q(ose)19 b(that)f(w)o(e)f(w)o(an)o(t)h(to)f(use)i(it)f +(to)g(implemen)o(t)h(complex)h(n)o(um)o(b)q(ers)e(completely)l(.)31 +b(F)l(or)37 874 y(instance)17 b(a)d(de\014nition)j(for)e(the)g +(addition)i(of)d(t)o(w)o(o)g(complexes)i(could)h(b)q(e)125 +959 y Fv(\(define-method)i(new-+)h(\(\(a)h(\))f(\(b)i +(\)\))168 1008 y(\(make-rectangular)d(\(+)i(\(real-part)f(a\)) +h(\(real-part)f(b\)\))561 1058 y(\(+)h(\(imag-part)f(a\))h(\(imag-part) +f(b\)\)\)\))37 1193 y FF(T)l(o)15 b(b)q(e)h(sure)g(that)e(the)h +Fw(+)g FF(used)h(in)g(the)g(metho)q(d)f Fw(new-+)f FF(is)i(the)f +(standard)g(addition)h(w)o(e)f(can)h(do:)125 1277 y Fv +(\(define-generic)i(new-+\))125 1377 y(\(let)j(\(\(+)g(+\)\))168 +1427 y(\(define-method)e(new-+)i(\(\(a)g(\))f(\(b)h +(\)\))212 1476 y(\(make-rectangular)d(\(+)j(\(real-part)f(a\)) +i(\(real-part)d(b\)\))604 1526 y(\(+)i(\(imag-part)f(a\))i(\(imag-part) +d(b\)\)\)\)\))37 1667 y FF(The)12 b Fw(define-generic)e +FF(ensures)i(here)g(that)e Fw(new-+)h FF(will)i(b)q(e)f(de\014ned)h(in) +f(the)g(global)g(en)o(vironmen)o(t.)19 b(Once)37 1724 +y(this)d(is)f(done,)g(w)o(e)g(can)g(add)g(metho)q(ds)g(to)f(the)h +(generic)h(function)g Fw(new-+)e FF(whic)o(h)i(mak)o(e)e(a)g(closure)i +(on)f(the)37 1780 y Fw(+)h FF(sym)o(b)q(ol.)k(A)15 b(complete)h +(writing)g(of)e(the)i Fw(new-+)e FF(metho)q(ds)h(is)h(sho)o(wn)f(in)h +(Figure)g(3.)37 1884 y(W)l(e)23 b(use)g(here)g(the)f(fact)g(that)g +(generic)h(function)g(are)f(not)g(obliged)i(to)e(ha)o(v)o(e)g(the)h +(same)f(n)o(um)o(b)q(er)g(of)37 1941 y(parameters,)14 +b(con)o(trarily)g(to)g(CLOS.)h(The)f(four)g(\014rst)g(metho)q(ds)h +(implemen)o(t)g(the)g(dy)o(adic)g(addition.)21 b(The)37 +1997 y(\014fth)13 b(metho)q(d)f(sa)o(ys)f(that)h(the)g(addition)h(of)e +(a)h(single)i(elemen)o(t)e(is)h(this)f(elemen)o(t)h(itself.)20 +b(The)12 b(sixth)h(metho)q(d)37 2054 y(sa)o(ys)k(that)f(using)i(the)f +(addition)i(with)e(no)g(parameter)f(alw)o(a)o(ys)h(return)g(0.)25 +b(The)17 b(last)g(metho)q(d)h(tak)o(es)e(an)37 2110 y(arbitrary)g(n)o +(um)o(b)q(er)g(of)g(parameters)672 2094 y FA(3)691 2110 +y FF(.)22 b(This)16 b(metho)q(d)g(acts)g(as)f(a)h(kind)h(of)e +Fw(reduce)p FF(:)21 b(it)16 b(calls)h(the)f(dy)o(adic)37 +2167 y(addition)g(on)f(the)f FD(c)n(ar)h FF(of)f(the)h(list)g(and)g(on) +f(the)h(result)g(of)f(applying)i(it)f(on)f(its)h(rest.)k(T)l(o)14 +b(\014nish,)i(the)f Fw(set!)37 2223 y FF(p)q(ermits)h(to)f(rede\014ne)h +(the)f Fw(+)24 b(symbol)14 b FF(to)h(our)g(extended)h(addition.)37 +2321 y(T)l(o)h(terminate)g(our)f(implemen)o(tation)i(\(in)o +(tegration?\))25 b(of)16 b(complex)i(n)o(um)o(b)q(ers,)f(w)o(e)f(can)h +(rede\014ne)h(stan-)37 2370 y(dard)e(Sc)o(heme)g(predicates)g(in)g(the) +f(follo)o(wing)h(manner:)125 2455 y Fv(\(define-method)j(complex?)h +(\(c)h(\))f(#t\))125 2505 y(\(define-method)f(complex?)h +(\(c\))239 b(#f\))125 2604 y(\(define-method)19 b(number?)h(\(n)h +(\))f(#t\))125 2654 y(\(define-method)f(number?)h(\(n\))217 +b(#f\))p 37 2699 735 2 v 89 2726 a Ft(3)107 2742 y Fs(The)13 +b(third)h(parameter)f(of)g(a)g(de\014ne-metho)q(d)i(is)f(a)f(parameter) +g(list)i(whic)o(h)e(follo)o(w)h(the)g(con)o(v)o(en)o(tions)h(used)e +(for)g(lam)o(b)q(da)37 2787 y(expressions.)19 b(In)11 +b(particular)i(it)f(can)f(use)h(the)f(dot)g(notation)i(or)e(a)g(sym)o +(b)q(ol)i(to)e(denote)g(an)h(arbitrary)g(n)o(um)o(b)q(er)g(of)f +(parameters)p eop %%Page: 85 85 -85 84 bop 75 511 a FA(Bibliograph)m(y)94 733 y Fs([1])20 -b(Willi)q(am)12 b(Clinger)g(and)e(Jonathan)h(Rees)f(\(editors\).)j -Fk(Rev)q(ised)1056 717 y Fr(4)1083 733 y Fs(Rep)q(ort)e(on)f(the)g -(Algorithmic)i(Language)f(Sc)o(heme.)155 779 y Fl(A)o(CM)k(Lisp)d -(Pointers)p Fs(,)f(4\(3\),)i(1991.)94 841 y([2])20 b(John)c(K.)e -(Ousterhout.)22 b(An)15 b(X11)g(to)q(olkit)h(based)g(on)f(the)g(Tcl)g -(Language.)23 b(In)14 b Fl(USENIX)g(Winter)g(Confer)n(enc)n(e)p -Fs(,)155 887 y(pages)g(105{115,)g(Jan)o(uary)g(1991.)94 -949 y([3])20 b(John)12 b(K.)f(Ousterhout.)j(Tcl:)j(an)11 -b(em)o(b)q(eddable)j(command)e(language.)k(In)11 b Fl(USENIX)f(Winter)h -(Confer)n(enc)n(e)p Fs(,)e(pages)155 995 y(183{192,)14 -b(Jan)o(uary)g(1990.)94 1057 y([4])20 b(Eric)o(k)c(Gallesio.)23 -b(Extending)17 b(the)d Fj(STk)h Fs(in)o(terpreter.)22 -b(T)m(ec)o(hnical)16 b(rep)q(ort,)f(I3S)f(CNRS)h(/)f(Univ)o(ersit)o -(\023)-18 b(e)16 b(de)f(Nice)g(-)155 1103 y(Sophia)g(An)o(tip)q(olis,)h -(1997.)94 1165 y([5])k(Sho-Huan)15 b(Simon)g(T)m(ung)e(and)h(R.)f(Ken)o -(t)g(Dyb)o(vig.)20 b(Reliable)c(in)o(teractiv)o(e)f(programming)h(with) -e(mo)q(dules.)19 b Fl(LISP)155 1210 y(and)13 b(Symb)n(olic)f -(Computation)p Fs(,)e(9:343{358,)k(1996.)94 1273 y([6])20 -b(Guy)11 b(L.)f(Steele)i(Jr.)g Fl(Common)f(Lisp:)k(the)c(L)n(anguage,)e -(2nd)h(Edition)p Fs(.)g(Digital)j(Press,)e(12)f(Crosb)o(y)h(Driv)o(e,)h -(Bedford,)155 1318 y(MA)h(01730,)h(USA,)e(1990.)94 1381 -y([7])20 b(POSIX)j(Committee.)47 b Fl(System)21 b(Applic)n(ation)e(Pr)n -(o)n(gr)n(am)k(Interfac)n(e)d(\(API\))i([C)h(L)n(anguage])p -Fs(.)43 b(Information)155 1426 y(tec)o(hnology|P)o(ortab)q(le)22 -b(Op)q(erating)e(System)f(In)o(terface)g(\(POSIX\).)f(IEEE)h(Computer)g -(So)q(ciet)o(y)h(Press,)g(1109)155 1472 y(Spring)15 b(Street,)e(Suite)h -(300,)f(Silv)o(er)i(Spring,)f(MD)g(20910,)f(USA,)f(1990.)94 -1534 y([8])20 b(Man)o(uel)15 b(Serrano.)j Fl(Biglo)n(o)12 -b(User's)g(Manual,)g(v1.9b)p Fs(,)f(June)i(1997.)94 1596 -y([9])20 b(C.)f(Queinnec)i(and)e(J-M.)g(Ge\013ro)o(y)m(.)35 -b(P)o(artial)21 b(Ev)n(aluation)h(Applied)f(to)e(Sym)o(b)q(olic)j(P)o -(attern)d(Matc)o(hing)i(with)155 1642 y(In)o(telligen)o(t)f(Bac)o -(ktrac)o(k.)29 b(In)17 b Fl(et)g(al)f Fs(M.)g(Billaud,)21 -b(editor,)d Fl(Workshop)e(in)g(Static)g(A)o(nalysis)p -Fs(,)e(n)o(um)o(b)q(er)k(81{82)g(in)155 1688 y(Bigre,)c(Bordeaux)h(\(F) -m(rance\),)d(Septem)o(b)q(er)i(1992.)75 1750 y([10])20 -b(A.)14 b(W)m(righ)o(t)i(and)f(B.Duba.)22 b(P)o(attern)14 -b(Matc)o(hing)j(for)d(Sc)o(heme.)21 b(T)m(ec)o(hnical)16 -b(rep)q(ort,)f(Departmen)o(t)h(of)e(Computer)155 1796 -y(Science,)h(Rice)e(Univ)o(ersit)o(y)m(,)i(Octob)q(er)e(1993.)75 -1858 y([11])20 b(John)14 b(K.)e(Ousterhout.)18 b Fl(Tcl)c(and)e(the)h -(Tk)h(to)n(olkit)p Fs(.)g(Addison-W)m(esley)m(,)i(1994.)75 -1920 y([12])k(Gregor)13 b(Kic)o(kzales.)18 b(Tin)o(y-clos.)f(Source)c -(a)o(v)n(ailable)j(on)c(parcftp.xero)o(x.com)h(in)g(directory)h -(/pub/mops)r(,)e(Decem-)155 1966 y(b)q(er)i(1992.)75 -2028 y([13])20 b(Apple)14 b(Computer.)k Fl(Dylan:)e(an)d(Obje)n(ct)f -(Oriente)n(d)h(Dynamic)f(L)n(anguage)p Fs(.)i(Apple,)f(April)i(1992.)75 -2090 y([14])20 b(Chris)e(Hanson.)27 b(The)17 b(sos)f(reference)h(man)o -(ual,)i(v)o(ersion)e(1.5.)27 b Fl(in-line)15 b(do)n(cumentatio)o(n)f -(of)i(the)g(SOS)g(p)n(ackage.)155 2136 y(Sour)n(c)n(e)c(available)f(on) -i(martigny.ai.mit.e)n(d)o(u)e(in)i(/ar)n(chive/cp)o(h)e(dir)n(e)n -(ctory)p Fs(,)f(Marc)o(h)k(1993.)75 2198 y([15])20 b(Jim)d(de)f(Rivi)o -(\022)-18 b(eres)18 b(Gregor)e(Kic)o(kzales)i(and)f(Daniel)h(G.)d -(Bobro)o(w.)27 b Fl(The)16 b(A)o(rt)g(of)g(Meta)f(Obje)n(ct)h(Pr)n(oto) -n(c)n(ol)p Fs(.)24 b(MIT)155 2244 y(Press,)13 b(1991.)935 -2924 y FD(85)p eop +85 84 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(85)p 37 64 1838 2 v 251 171 a Fq(\(define-ge)o(ner)o(ic)16 +b(new-+\))251 262 y(\(let)i(\(\(+)h(+\)\))290 353 y(\(define-met)o(ho)o +(d)e(new-+)g(\(\(a)i(\))e(\(b)h(\)\))f(\(+)i(a)g(b\)\))290 +445 y(\(define-met)o(ho)o(d)e(new-+)g(\(\(a)i(\))e(\(b)h +(\)\))330 490 y(\(make-rec)o(ta)o(ngu)o(la)o(r)f(\(+)h(a)i +(\(real-par)o(t)c(b\)\))j(\(imag-par)o(t)e(b\)\)\))290 +582 y(\(define-met)o(ho)o(d)g(new-+)g(\(\(a)i()o(\))d(\(b)j +(\)\))330 627 y(\(make-rec)o(ta)o(ngu)o(la)o(r)e(\(+)h +(\(real-part)e(a\))j(b\))g(\(imag-par)o(t)e(a\)\)\))290 +719 y(\(define-met)o(ho)o(d)g(new-+)g(\(\(a)i()o(\))d(\(b)j +(\))o(\))330 764 y(\(make-rec)o(ta)o(ngu)o(la)o(r)e(\(+)h +(\(real-part)e(a\))j(\(real-part)d(b\)\))683 810 y(\(+)i(\(imag-part)e +(a\))j(\(imag-part)d(b\)\)\)\))290 901 y(\(define-met)o(ho)o(d)h(new-+) +g(\(\(a)i(\))o(\))36 b(a\))290 993 y(\(define-met)o(ho)o(d)17 +b(new-+)g(\(\))i(0\))290 1084 y(\(define-met)o(ho)o(d)e(new-+)g(args)38 +b(\(new-+)17 b(\(car)h(args\))g(\(apply)f(new-+)h(\(cdr)g +(args\)\)\)\)\))251 1175 y(\(set!)g(+)h(new-+\))377 1273 +y FF(Figure)c(C.3:)k FD(Extending)d Fw(+)g FD(for)g(de)n(aling)g(with)g +(c)n(omplex)g(numb)n(ers)125 1440 y Fv(...)125 1490 y(...)37 +1633 y FF(Standard)j(primitiv)o(es)h(in)f(whic)o(h)h(complex)f(n)o(um)o +(b)q(ers)g(are)f(in)o(v)o(olv)o(ed)i(could)g(also)e(b)q(e)h +(rede\014ned)h(in)g(the)37 1690 y(same)15 b(manner.)37 +1746 y(This)h(ends)g(this)g(brief)g(presen)o(tation)f(of)g(the)g +FB(STklos)f FF(extension.)p eop %%Page: 86 86 -86 85 bop 75 417 a FA(Index)75 624 y Ft(!)9 b Fs(.)c(.)h(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)21 b(33)75 670 y Ft(*)9 b Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)21 -b(14)75 716 y Ft(*argc*)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)23 b(63)75 762 y -Ft(*argv*)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)23 b(63)75 807 y Ft(*debug*)6 -b Fs(.)s(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b(32;)13 -b(53,)g(63)75 853 y Ft(*gc-verbos)o(e*)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)23 b(63)75 899 y Ft(*help-path)o(*)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(63)75 945 y Ft(*load-path)o(*)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)16 b(63)75 991 y Ft(*load-suff)o(ix)o(es*)6 -b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)19 b(63)75 1036 -y Ft(*load-verb)o(os)o(e*)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)20 b(63)75 1082 y Ft(*print-ban)o(ne)o(r*)7 b Fs(.)s(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)20 b(64)75 1128 y Ft(*program-n)o(am)o(e*)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(63)75 -1174 y Ft(*root*)5 b Fs(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)17 b(60;)c(64)75 1220 y Ft(+)c Fs(.)c(.)h(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)21 b(14)75 1266 y Ft(-)9 b Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -21 b(14)75 1311 y Ft(/)9 b Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)21 -b(14)75 1357 y Ft(:accessor)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(70)75 1403 y Ft(:allocatio)o(n)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(70)75 1449 y Ft(:class)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)23 b(70)75 1495 y -Ft(:getter)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)21 b(70)75 1540 y Ft(:init-keyw)o(or)o(d)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(70)75 -1586 y Ft(:initform)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)19 b(69)75 1632 y Ft(:instance)6 -b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 -b(70)75 1678 y Ft(:setter)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(70)75 1724 y -Ft(:slot-ref)9 b Fs(.)s(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 -b(70;)13 b(71)75 1770 y Ft(:slot-set!)7 b Fs(.)s(.)f(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)20 b(70;)13 b(71)75 1815 y Ft(:virtual)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)20 b(70)75 1861 y Ft(<)9 b Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)21 -b(14)75 1907 y Ft(<=)7 b Fs(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)20 -b(14)75 1953 y Ft()7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(68)75 1999 y Ft()6 -b Fs(.)t(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)18 b(68;)13 b(74)75 2045 y Ft(=)c Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)21 -b(14)75 2090 y Ft(>)9 b Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)21 -b(14)75 2136 y Ft(>=)7 b Fs(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)20 -b(14)75 2269 y Fa(A)75 2315 y Ft(abs)6 b Fs(.)f(.)h(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 -b(14)75 2361 y(accessor)11 b(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)23 b(70)75 2406 y Ft(acos)5 -b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)17 b(14)75 2452 y Ft(add-signal)o(-h)o(and)o(le) -o(r!)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)22 b(35)75 2498 y Ft(address-of)t -Fs(.)s(.)6 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(34)75 2544 y Ft(address?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(34)75 2590 y Ft(and)7 -b Fs(.)e(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b(9)75 2636 y Ft(angle)6 -b Fs(.)t(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)18 b(15;)13 b(65)75 2681 y Ft(append)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)23 -b(11)75 2727 y Ft(apply)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 b(18)75 -2773 y Ft(apropos)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(53)75 2819 y Ft(asin)5 -b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)17 b(14)1029 624 y Ft(assoc)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(11)1029 670 y Ft(assq)5 b Fs(.)t(.)h(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -17 b(11)1029 716 y Ft(assv)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 -b(11)1029 761 y Ft(atan)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(14)1029 -807 y Ft(autoload)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)20 b(23)1029 853 y Ft(autoload?)5 -b Fs(.)t(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)19 -b(23)1029 985 y Fa(B)1029 1031 y Ft(basename)7 b Fs(.)s(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)20 b(32)1029 -1077 y Ft(begin)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(10)1029 1122 -y Ft(bind)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(60)1029 1168 -y Ft(bindtags)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)20 b(61)1029 1214 y Ft(boolean?)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)20 b(10)1029 1260 y Ft(break)6 b Fs(.)t(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)19 b(34;)13 b(61)1029 -1305 y Ft(button)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(26)1029 1351 y Ft(bye)6 -b Fs(.)f(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)19 b(56)1029 1492 y Fa(C)1029 -1537 y Ft(c)9 b Fs(.)c(.)h(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(35)1029 -1583 y Ft(c-string-)o(>st)o(ri)o(ng)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)18 b(50)1029 1629 y Ft(caar)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 -b(11)1029 1675 y Ft(cadr)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(11)1029 -1720 y Ft(call-with)o(-cu)o(rr)o(ent)o(-co)o(nt)o(inu)o(at)o(ion)r -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 b(18)1029 -1766 y Ft(call-with)o(-in)o(pu)o(t-f)o(ile)7 b Fs(.)s(.)f(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)21 -b(19)1029 1812 y Ft(call-with)o(-in)o(pu)o(t-s)o(tri)o(ng)t -Fs(.)t(.)6 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)18 b(19)1029 1858 y Ft(call-with)o(-ou)o(tp)o(ut-)o(fil)o(e)7 -b Fs(.)r(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)19 b(19)1029 1903 y Ft(call-with)o(-ou)o(tp)o(ut-)o(str)o -(in)o(g)t Fs(.)s(.)6 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)17 b(19)1029 1949 y Ft(call/cc)9 b Fs(.)s(.)d(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 -b(18)1029 1995 y Ft(canonical)o(-pa)o(th)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)20 b(32)1029 2041 y Ft(car)6 b Fs(.)f(.)g(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)19 b(11)1029 2087 y Ft(case)6 b Fs(.)t(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)18 -b(9)1029 2132 y Ft(catch)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(18)1029 -2178 y Ft(cdddar)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(11)1029 2224 y Ft(cddddr)8 -b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)23 b(11)1029 2270 y Ft(cdr)6 b Fs(.)f(.)g(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)19 -b(11)1029 2315 y Ft(ceiling)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(14)1029 2361 -y Ft(char->int)o(ege)o(r)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)22 b(16)1029 2407 y Ft(char-alph)o(abe)o(ti)o(c?)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 b(16)1029 2453 -y Ft(char-ci<=)o(?)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)17 b(16)1029 2498 y Ft(char-ci=)o(?)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(16)1029 2636 y Ft(char-ci>?)5 b Fs(.)t(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)19 b(16)1029 2682 y Ft(char-down)o(cas)o -(e)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)22 -b(16)1029 2727 y Ft(char-lowe)o(r-c)o(as)o(e?)5 b Fs(.)s(.)h(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)18 b(16)1029 2773 y Ft(char-nume)o(ric)o(?)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)22 b(16)1029 -2819 y Ft(char-read)o(y?)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)16 b(21)935 2924 y FD(86)p eop +86 85 bop 37 45 a FE(86)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v eop %%Page: 87 87 -87 86 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(87)p 75 64 1763 2 v 75 179 a Ft(char-upcas)o(e)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(16)75 225 y Ft(char-upper)o(-c)o(ase)o(?)5 b Fs(.)s(.)h(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)18 b(16)75 271 y Ft(char-white)o(sp)o(ace)o(?)5 -b Fs(.)s(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)18 b(16)75 317 y -Ft(char<=?)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)21 b(16)75 363 y Ft(char=?)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)21 b(16)75 501 y Ft(char>?)8 b Fs(.)e(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)23 -b(15)75 547 y Ft(char?)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 b(15)75 -593 y(c)o(haracters)10 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)22 b(15)75 639 y Ft(chdir)s Fs(.)t(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)16 b(33)75 685 y(class)5 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)18 -b(67)75 732 y Ft(class-prec)o(ed)o(enc)o(e-)o(lis)o(t)7 -b Fs(.)s(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)19 b(73)75 778 y Ft(class-slot)o(s)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(69)75 824 y Ft(close-inpu)o(t-)o(por)o(t)5 b Fs(.)s(.)h(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)18 b(21)75 870 y Ft(close-outp)o(ut)o(-po)o(rt)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b(21)75 916 y Ft(close-port)t -Fs(.)s(.)6 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(24)75 962 y Ft(closure?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(18)75 1008 y(cm)o(u)13 -b(sc)o(heme)f(.)6 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -23 b(82)75 1054 y Ft(complex?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(13)75 1100 y -Ft(cond)6 b Fs(.)t(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)18 b(9)75 1146 y -Ft(cons)5 b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 b(11)75 1192 y(con)o(tin)o(uation)c -(.)6 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)22 b(18;)13 -b(51)75 1238 y Ft(continuati)o(on)o(?)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)22 b(18)75 1284 y Ft(copy-tree)6 b -Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 -b(12)75 1330 y Ft(cos)6 b Fs(.)f(.)h(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 -b(14)75 1376 y Ft(current-er)o(ro)o(r-p)o(or)o(t)8 b -Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)23 b(20)75 1422 y Ft(current-in)o(pu)o(t-p)o(or) -o(t)5 b Fs(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)18 b(20;)13 b(21)75 1469 y Ft(current-mo)o(du)o(le)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(29)75 -1515 y Ft(current-ou)o(tp)o(ut-)o(po)o(rt)t Fs(.)r(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)16 -b(20;)d(22)75 1660 y Fa(D)75 1706 y Ft(decompose-)o(fi)o(le-)o(na)o(me) -6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)22 b(32)75 1752 y Ft(default)17 -b(slot)h(value)9 b Fs(.)d(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(69)75 -1798 y Ft(define-cla)o(ss)t Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(67;)c(68)75 1844 y Ft(define-ext)o(er)o(nal)6 b Fs(.)s(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)19 b(47)75 1890 y Ft(define-gen)o(er)o(ic)7 -b Fs(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 b(73;)13 b(74)75 1936 -y Ft(define-mac)o(ro)t Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(31;)c(32)75 1982 y Ft(define-met)o(ho)o(d)6 b Fs(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)22 b(73)75 2029 y Ft(define-mod)o(ul)o(e)t -Fs(.)s(.)5 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 b(27;)d(29)75 -2075 y Ft(delay)6 b Fs(.)t(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)18 b(10;)13 b(18)75 2121 y Ft(denominato)o(r)6 -b Fs(.)s(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(14;)13 -b(64)75 2167 y Ft(describe)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(69)75 2213 y Ft(detail)5 -b Fs(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 -b(53;)c(56)75 2259 y Ft(dirname)c Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(32)75 2305 -y Ft(display)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)21 b(21)75 2351 y Ft(do)7 b Fs(.)e(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)20 b(10)75 2397 y Ft(dotimes)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(10)75 -2443 y Ft(dump)5 b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 b(51)75 2489 -y Ft(dynamic-wi)o(nd)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)23 b(18)75 2635 y Fa(E)75 2681 y Fs(emacs)13 b(editor)6 -b(.)h(.)f(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)18 -b(82)75 2727 y Ft(environmen)o(t-)o(>li)o(st)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)16 b(30)75 2773 y Ft(environmen)o(t?)7 -b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(30)75 2819 y Ft(eq)7 b Fs(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)20 -b(12)1029 179 y Ft(eq?)9 b Fs(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(11;)13 b(36)1029 -225 y Ft(equal)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(12)1029 272 -y Ft(equal?)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)23 b(11)1029 319 y Ft(eqv)6 b -Fs(.)f(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)19 b(12)1029 366 y Ft(eqv?)5 -b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)17 b(11)1029 412 y Ft(error)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(52)1029 459 y Ft(eval)5 b Fs(.)t(.)h(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -17 b(50)1029 506 y Ft(eval-stri)o(ng)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 b(51)1029 552 y Ft(even?)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(14)1029 599 y Ft(exact->in)o(exa)o(ct)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(15)1029 -646 y Ft(exact?)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(13)1029 693 y Ft(exec)5 -b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)17 b(34)1029 739 y Ft(exit)5 b -Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)17 b(56)1029 786 y Ft(exp)6 b Fs(.)f(.)g(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)19 b(14)1029 833 y Ft(expand-fi)o(le-)o(na)o(me)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 b(32)1029 879 -y Ft(expand-he)o(ap)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)16 b(52)1029 926 y Ft(export)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 -b(28)1029 973 y Ft(export-al)o(l-s)o(ym)o(bol)o(s)8 b -Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)23 b(29)1029 1020 y Ft(export-sy)o(mbo)o(l)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)22 b(29)1029 -1066 y Ft(expt)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(15)1029 -1113 y Ft(external-)o(exi)o(st)o(s?)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)18 b(50)1029 1262 y Fa(F)1029 1308 y Fs(faq)10 b(.)c(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)22 b(82)1029 1355 y Ft(file-exis)o(ts?)7 b Fs(.)f(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)23 b(33)1029 1402 y Ft(file-is-d)o(ire)o -(ct)o(ory)o(?)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(33)1029 -1448 y Ft(file-is-e)o(xec)o(ut)o(abl)o(e?)6 b Fs(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)22 -b(33)1029 1495 y Ft(file-is-r)o(ead)o(ab)o(le?)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)16 b(33)1029 1542 y Ft(file-is-r)o(egu)o(la)o -(r?)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 b(33)1029 -1589 y Ft(file-is-w)o(rit)o(ab)o(le?)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -16 b(33)1029 1635 y Ft(find-modu)o(le)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 b(28)1029 1682 y Ft(floor)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(14)1029 1729 y Ft(fluid-let)6 -b Fs(.)t(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)20 b(9)1029 1775 y Ft(flush)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 -b(22)1029 1822 y Ft(for-each)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)20 b(18)1029 1869 y Ft(force)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(18)1029 1916 y Ft(format)5 b -Fs(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 -b(22;)c(52)1029 2071 y Fa(G)1029 2118 y Fs(garbage)h(collector)s(.)8 -b(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(49)1029 2165 -y Ft(gc)7 b Fs(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)20 b(52)1029 -2212 y Ft(gc-stats)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)20 b(52)1029 2258 y Ft(gcd)6 -b Fs(.)f(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)19 b(14)1029 2305 y Ft(gensym)8 -b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)23 b(13)1029 2352 y Ft(get-inter)o(nal)o(-i)o(nfo)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b(52)1029 2398 y Ft(get-keywo)o(rd)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 -b(25)1029 2445 y Ft(get-outpu)o(t-s)o(tr)o(ing)6 b Fs(.)s(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)19 -b(21;)13 b(22)1029 2492 y Ft(get-signa)o(l-h)o(an)o(dle)o(rs)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)22 b(35)1029 2539 y Ft(get-widge)o(t-d)o(at)o(a)7 -b Fs(.)s(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)19 b(27)1029 -2585 y Ft(getcwd)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(33)1029 2632 y Ft(getenv)8 -b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)23 b(34)1029 2679 y Ft(getpid)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 -b(33)1029 2725 y(getter)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(70)1029 -2772 y Ft(glob)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(33)1029 -2819 y Ft(global-en)o(vir)o(on)o(men)o(t)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 -b(30)p eop +87 86 bop 37 502 a FJ(App)s(endix)33 b(D)37 709 y FC(Mo)s(dules:)52 +b(Examples)37 932 y FF(This)22 b(app)q(endix)g(sho)o(ws)e(some)g +(usages)g(of)g(the)h FB(STk)f FF(mo)q(dules.)37 b(Most)19 +b(of)h(the)h(examples)g(whic)o(h)g(are)37 988 y(exhibited)d(here)d(are) +g(deriv)o(ed)h(from)f(the)g(T)l(ung)h(and)f(Dyb)o(vig)g(pap)q(er)h([5)o +(].)37 1110 y FI(In)n(teractiv)n(e)i(Rede\014nition)37 +1189 y FF(Consider)e(\014rst)f(the)g(de\014nitions,)125 +1276 y Fv(\(define-module)k(A)168 1326 y(\(export)i(square\))168 +1376 y(\(define)g(square)212 1425 y(\(lambda)f(\(x\))h(\(+)h(x)f +(x\)\)\)\))125 1525 y(\(define-module)e(B)168 1575 y(\(import)i(A\))168 +1625 y(\(define)g(distance)212 1674 y(\(lambda)f(\(x)i(y\))255 +1724 y(\(sqrt)f(\(+)h(\(square)e(x\))h(\(square)g(y\)\)\)\)\)\))37 +1861 y FF(Ob)o(viously)l(,)26 b(the)c Fw(square)g FF(function)h(exp)q +(orted)g(from)f Fw(A)g FF(is)h(incorrect,)h(as)e(w)o(e)g(can)h(see)f +(in)i(its)e(usage)37 1911 y(b)q(elo)o(w:)125 1998 y Fv(\(with-module)d +(B)j(\(round)e(\(distance)g(3)i(4\)\)\))343 2047 y Fu(=)-7 +b Fp(\))21 b Fv(4.0)37 2184 y FF(The)16 b(function)g(can)f(b)q(e)h +(rede\014ned)h(\()p FD(c)n(orr)n(e)n(cte)n(d)5 b FF(\))13 +b(b)o(y)i(the)h(follo)o(wing)g(expression:)125 2271 y +Fv(\(with-module)j(A)168 2321 y(\(set!)i(square)299 2371 +y(\(lambda)f(\(x\))i(\(*)f(x)g(x\)\)\)\))37 2507 y FF(And)16 +b(no)o(w,)168 2594 y Fv(\(with-module)k(B)h(\(round)g(\(distance)f(3)h +(4\)\)\))343 2644 y Fu(=)-7 b Fp(\))21 b Fv(5)37 2787 +y FF(whic)o(h)c(is)e(correct.)934 2901 y(87)p eop %%Page: 88 88 -88 87 bop 75 47 a FC(88)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 186 a Fa(H)75 232 y Ft(hash-table)o(->)o(lis)o(t)5 -b Fs(.)s(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)18 b(38)75 278 y -Ft(hash-table)o(-f)o(or-)o(ea)o(ch)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)22 -b(38)75 324 y Ft(hash-table)o(-g)o(et)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)20 b(37)75 370 y Ft(hash-table)o(-h)o(ash)6 -b Fs(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)22 b(37;)13 b(36)75 416 y Ft(hash-table)o(-m)o -(ap)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 -b(38)75 462 y Ft(hash-table)o(-p)o(ut!)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)19 b(37)75 507 y Ft(hash-table)o(-r)o(emo)o(ve)o(!)8 -b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)23 b(37)75 553 y Ft(hash-table)o(-s)o(tat)o(s)5 -b Fs(.)s(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)18 b(38)75 599 y -Ft(hash-table)o(?)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)16 b(37)75 645 y Ft(help,)i(getting)6 b Fs(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(63)75 787 y Fa(I)75 -833 y Ft(if)t Fs(.)5 b(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)17 b(8;)12 b(9)75 -879 y(ilisp)j(pac)o(k)n(age)6 b(.)h(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)18 b(82)75 925 y Ft(imag-part)9 b Fs(.)s(.)c(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(15;)13 b(65)75 971 -y Ft(import)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)23 b(28)75 1017 y Ft(inexact->e)o(xa)o(ct)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(15)75 -1063 y Ft(inexact?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)20 b(13)75 1108 y(initial)c(en)o(vironmen)o(t)d -(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(10)75 1154 y Ft(input-port)o(?)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(20)75 1200 y Ft(input-stri)o(ng)o(-po)o(rt)o(?)8 b -Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)23 b(20)75 1246 y Ft(inspect)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)21 b(53)75 1292 y(instance)9 b(.)f(.)e(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)22 b(69)75 1338 -y Ft(integer->c)o(ha)o(r)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)22 b(16)75 1384 y Ft(integer?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(13)75 1430 -y(ip)14 b(n)o(um)o(b)q(er)e(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)24 b(44;)13 b(45)75 1571 y Fa(K)75 1617 y Fs(k)o(eyw)o(ord)8 -b(.)f(.)f(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)21 b(69)75 1663 y Ft(keyword->s)o(tr)o(ing)6 b Fs(.)s(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)19 b(25)75 1709 y Ft(keyword?)7 b -Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -20 b(25)75 1851 y Fa(L)75 1897 y Ft(label)s Fs(.)t(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)16 b(26)75 1943 y Ft(lambda)s Fs(.)t(.)5 b(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)15 -b(8)75 1988 y Ft(lcm)6 b Fs(.)f(.)h(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b(14)75 -2034 y Ft(length)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)23 b(11)75 2080 y Ft(let)7 -b Fs(.)e(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)19 b(9)75 2126 y Ft(let*)6 -b Fs(.)t(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)18 b(9)75 2172 y Ft(letrec)8 -b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)23 b(10)75 2218 y Ft(list)7 b Fs(.)e(.)h(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)20 b(11;)13 -b(12)75 2264 y Ft(list*)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 b(12)75 -2310 y Ft(list->stri)o(ng)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)23 b(17)75 2355 y Ft(list->vect)o(or)7 b Fs(.)f(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 b(18)75 2401 y Ft(list-ref)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)20 b(11)75 2447 y Ft(list-tail)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(11)75 2493 y -Ft(list?)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 b(11)75 2539 y Ft(load)5 -b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)17 b(23)75 2585 y Ft(log)6 b Fs(.)f(.)h(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)18 b(14)75 2727 y Fa(M)75 2773 y Ft(machine-ty)o(pe)7 -b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(50)75 2819 y Ft(macro)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 b(31)1029 -179 y Ft(macro-bod)o(y)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)17 b(31)1029 224 y Ft(macro-exp)o(and)7 -b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)23 -b(31)1029 270 y Ft(macro-exp)o(and)o(-1)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)20 b(31)1029 316 y(macro-expansion)5 -b(.)j(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b(31)1029 -361 y Ft(macro?)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(31)1029 407 y Ft(magnitude)8 -b Fs(.)s(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 -b(15;)13 b(65)1029 453 y Ft(make)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 -b(69)1029 498 y Ft(make-clie)o(nt-)o(so)o(cke)o(t)8 b -Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)23 b(44)1029 544 y Ft(make-hash)o(-ta)o(bl)o(e)7 -b Fs(.)s(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)19 b(36)1029 -590 y Ft(make-keyw)o(ord)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)23 b(25)1029 635 y Ft(make-pola)o(r)8 b Fs(.)e(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)23 b(15;)13 b(64,)g(72)1029 681 y Ft(make-rect)o(ang)o(ul)o(ar) -8 b Fs(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)23 b(15;)13 b(64,)g(72)1029 727 y Ft(make-serv)o(er-)o(so)o(cke) -o(t)5 b Fs(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)18 b(45;)13 b(44)1029 772 y Ft(make-stri)o(ng)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 -b(16)1029 818 y Ft(make-vect)o(or)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)16 b(17)1029 864 y Ft(map)6 -b Fs(.)f(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)19 b(18)1029 909 y Ft(match-cas)o(e)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(41)1029 955 y Ft(match-lam)o(bda)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)23 b(41)1029 1001 y Ft(max)6 b Fs(.)f(.)g(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)19 b(14)1029 1046 y Ft(member)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(11)1029 -1092 y Ft(memq)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(11)1029 -1138 y Ft(memv)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(11)1029 -1183 y Ft(menu)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(26)1029 -1229 y Ft(min)6 b Fs(.)f(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)19 b(14)1029 -1275 y Ft(module-en)o(vir)o(on)o(men)o(t)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 -b(30)1029 1320 y Ft(module-ex)o(por)o(ts)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)20 b(29)1029 1366 y Ft(module-im)o(por)o(ts)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(29)1029 -1412 y Ft(module-na)o(me)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)16 b(29)1029 1457 y Ft(module-sy)o(mbo)o(ls)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(29)1029 -1503 y Ft(module?)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(28)1029 1549 y Ft(modulo)8 -b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)23 b(14)1029 1678 y Fa(N)1029 1723 y Ft(negative?)5 -b Fs(.)t(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)19 -b(14)1029 1769 y Ft(newline)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(22)1029 1815 -y Ft(next-meth)o(od)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)16 b(74)1029 1860 y Ft(not)6 b Fs(.)f(.)g(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)19 -b(10)1029 1906 y Ft(null?)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(11)1029 -1952 y Ft(number->s)o(tri)o(ng)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)20 b(15)1029 1997 y Ft(number?)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(13)1029 -2043 y Ft(numerator)8 b Fs(.)s(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)22 b(14;)13 b(64)1029 2179 y Fa(O)1029 2225 y Ft(obj)c -Fs(.)t(.)d(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)21 b(12;)13 b(34)1029 2271 y Ft(odd?)5 b Fs(.)t(.)h(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 -b(14)1029 2316 y Ft(open-file)5 b Fs(.)t(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)19 b(24)1029 2362 y Ft(open-inpu)o(t-f)o -(il)o(e)7 b Fs(.)s(.)e(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)19 -b(21)1029 2408 y Ft(open-inpu)o(t-s)o(tr)o(ing)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)16 b(21)1029 2453 y Ft(open-outp)o(ut-)o(fi)o -(le)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 b(21)1029 -2499 y Ft(open-outp)o(ut-)o(st)o(rin)o(g)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 -b(21)1029 2545 y Ft(or)8 b Fs(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)21 -b(9)1029 2590 y Ft(output-po)o(rt?)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)23 b(20)1029 2636 y Ft(output-st)o(rin)o(g-)o(por)o -(t?)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)22 b(20)1029 2773 y Fa(P)1029 -2819 y Ft(pair?)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(11)p eop -%%Page: 89 89 -89 88 bop 75 47 a Fz(STk)16 b FC(Reference)f(Man)o(ual)1235 -b(89)p 75 64 1763 2 v 75 179 a Ft(parent-env)o(ir)o(onm)o(en)o(t)8 -b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)23 b(30)75 225 y(pattern)14 b(matc)o(hing)8 -b(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(40)75 271 -y Ft(peek-char)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)19 b(21)75 317 y(pid)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)15 -b(42;)e(43)75 363 y Ft(port->list)t Fs(.)s(.)6 b(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b(24)75 409 y Ft(port->sexp)o(-l)o -(ist)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)19 b(24)75 -455 y Ft(port->stri)o(ng)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)23 b(24)75 501 y Ft(port->stri)o(ng)o(-li)o(st)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)16 b(24)75 547 y Ft(positive?)6 -b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 -b(14)75 593 y(p)q(osix.1)12 b(.)6 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(34)75 639 y -Ft(primitive?)t Fs(.)s(.)6 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)17 b(18)75 685 y Ft(procedure-)o(bo)o(dy)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(19)75 -732 y Ft(procedure-)o(en)o(vir)o(on)o(men)o(t)7 b Fs(.)s(.)e(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)19 -b(30)75 778 y Ft(procedure?)t Fs(.)s(.)6 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)17 b(18)75 824 y Ft(process-al)o(iv)o(e?)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(43)75 -870 y Ft(process-co)o(nt)o(inu)o(e)5 b Fs(.)s(.)h(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)18 b(44)75 916 y Ft(process-er)o(ro)o(r)6 b Fs(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)22 b(43)75 962 y Ft(process-ex)o(it)o(-st)o(at) -o(us)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)22 b(43)75 1008 y Ft(process-in)o(pu)o(t)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(43)75 -1054 y Ft(process-ki)o(ll)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)23 b(44)75 1100 y Ft(process-li)o(st)7 b Fs(.)f(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 b(44)75 1146 y Ft(process-ou)o(tp)o -(ut)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 -b(43)75 1192 y Ft(process-pi)o(d)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)16 b(43)75 1238 y Ft(process-se)o(nd)o(-si)o -(gn)o(al)6 b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)22 b(44)75 1284 y Ft(process-st)o(op)7 -b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(44)75 1330 y Ft(process-wa)o(it)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)23 b(43)75 1376 y Ft(process?)7 b -Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -20 b(43)75 1422 y Ft(promise?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(18)75 1469 y -Ft(provide)6 b Fs(.)s(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)18 -b(23;)13 b(24,)g(83)75 1515 y Ft(provided?)c Fs(.)s(.)c(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)21 b(23;)13 b(24)75 1660 y Fa(Q)75 -1706 y Ft(quasiquote)t Fs(.)s(.)6 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)17 b(10)75 1752 y Ft(quit)5 b Fs(.)t(.)h(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 -b(56)75 1798 y Ft(quote)t Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)17 b(8)75 -1844 y Ft(quotient)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)20 b(14)75 1990 y Fa(R)75 2036 -y Fs(r4rs)7 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)20 b(7;)12 b(83)75 2082 y Ft(random)c -Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)23 b(50)75 2128 y Ft(rational?)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(13)75 2174 -y Ft(rationaliz)o(e)6 b Fs(.)s(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 -b(14;)13 b(64)75 2220 y Ft(read)c Fs(.)t(.)d(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(21;)12 -b(8)75 2266 y Ft(read-char)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(21)75 2312 y Ft(read-from-)o(st)o(rin) -o(g)5 b Fs(.)s(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)18 b(51)75 -2358 y Ft(read-line)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)19 b(21)75 2404 y Ft(real-part)9 -b Fs(.)s(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)21 -b(15;)13 b(64)75 2450 y Ft(real?)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)16 -b(13)75 2496 y Ft(regexp-rep)o(la)o(ce)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)20 b(40)75 2543 y Ft(regexp-rep)o(la)o(ce-)o(al)o(l)8 -b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)23 b(40)75 2589 y Ft(regexp?)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)21 b(40)75 2635 y(regular)14 b(expression)f(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(38)75 2681 y Ft(remainder)6 -b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 -b(14)75 2727 y Ft(remove)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)23 b(12)75 2773 y -Ft(remq)5 b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 b(12)75 2819 y Ft(remv)5 -b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)17 b(12)1029 179 y Ft(require)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 -b(23;)d(83)1029 225 y Ft(reverse)c Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(11)1029 -271 y(ro)q(ot)13 b(windo)o(w)7 b(.)g(.)f(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)19 b(60)1029 317 y Ft(round)s Fs(.)t(.)6 -b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)16 b(14)1029 363 y Ft(run-proce)o(ss)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 -b(42)1029 511 y Fa(S)1029 557 y Fs(sc)o(heme)d(rep)q(ository)s(.)c(.)c -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 b(83)1029 603 y Ft(set!)9 -b Fs(.)t(.)d(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)21 b(9;)13 b(70)1029 649 y Ft(set-car!)7 b -Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -20 b(11)1029 695 y Ft(set-cdr!)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)20 b(11)1029 742 -y Ft(set-rando)o(m-s)o(ee)o(d!)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -18 b(50)1029 788 y Ft(set-signa)o(l-h)o(an)o(dle)o(r!)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)22 b(35)1029 834 y Ft(set-widge)o(t-d)o(at)o(a!)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 b(27)1029 880 -y Ft(setenv!)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)22 b(34)1029 926 y(setter)5 b(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 -b(70)1029 972 y Ft(sigabrt)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 1018 -y Ft(sigalrm)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)22 b(34)1029 1065 y Ft(sigbus)8 b -Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)23 b(34)1029 1111 y Ft(sigchld)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 -1157 y Ft(sigcld)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(34)1029 1203 y Ft(sigcont)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)22 b(34)1029 1249 y Ft(sigfpe)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(34)1029 -1295 y Ft(sighup)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(34)1029 1342 y Ft(sigill)8 -b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)23 b(34)1029 1388 y Ft(sigint)5 b Fs(.)s(.)h(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(34;)c(35)1029 -1434 y Ft(sigio)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(34)1029 1480 -y Ft(sigiot)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)23 b(34)1029 1526 y Ft(sigkill)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 -b(34;)d(35)1029 1572 y Ft(siglost)c Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 -1619 y Ft(sigpipe)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 1665 y Ft(sigpoll)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)22 b(34)1029 1711 y Ft(sigprof)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 -1757 y Ft(sigsegv)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 1803 y Ft(sigstop)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 -b(34;)d(35)1029 1849 y Ft(sigsys)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(34)1029 -1896 y Ft(sigterm)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 1942 y Ft(sigtrap)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)22 b(34)1029 1988 y Ft(sigttin)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 -2034 y Ft(sigttou)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 2080 y Ft(sigurg)8 -b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)23 b(34)1029 2126 y Ft(sigusr1)9 b Fs(.)s(.)d(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 -b(34)1029 2173 y Ft(sigwinch)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)20 b(34)1029 2219 y Ft(sigxcpu)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)22 b(34)1029 2265 y Ft(sigxfsz)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(34)1029 -2311 y Ft(sin)6 b Fs(.)f(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)19 b(14)1029 -2357 y(slib)c(pac)o(k)n(age)d(.)6 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)24 b(83)1029 2403 y(slot)5 b(.)i(.)f(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)18 -b(67)1029 2450 y Ft(slot-ref)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)20 b(69)1029 2496 y Ft(slot-set!)5 -b Fs(.)t(.)g(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)19 -b(69)1029 2542 y Ft(socket-ac)o(cep)o(t-)o(con)o(nec)o(ti)o(on)8 -b Fs(.)e(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)24 -b(45)1029 2588 y Ft(socket-do)o(wn?)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)23 b(46)1029 2634 y Ft(socket-du)o(p)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(46)1029 2680 y Ft(socket-ho)o(st-)o(ad)o(dre)o(ss)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)22 b(44)1029 2727 y Ft(socket-ho)o(st-)o(na)o(me)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)18 b(44)1029 2773 -y Ft(socket-in)o(put)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)23 b(45)1029 2819 y Ft(socket-lo)o(cal)o(-a)o(ddr)o(ess)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)21 b(45)p eop -%%Page: 90 90 -90 89 bop 75 47 a FC(90)1236 b Fz(STk)17 b FC(Reference)d(Man)o(ual)p -75 64 1763 2 v 75 179 a Ft(socket-out)o(pu)o(t)6 b Fs(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(45)75 226 y Ft(socket-por)o(t-)o(num)o -(be)o(r)8 b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(45)75 274 y Ft(socket-shu)o(td) -o(own)6 b Fs(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(45;)13 b(46)75 321 -y Ft(socket?)c Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)21 b(44)75 369 y Ft(sort)7 b Fs(.)e(.)h(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)20 -b(52;)13 b(33)75 416 y Ft(split-stri)o(ng)7 b Fs(.)f(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)h(.)g(.)g(.)g(.)g(.)23 b(17)75 464 y Ft(sqrt)5 -b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)17 b(15)75 511 y Ft(string)5 b -Fs(.)s(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 -b(16;)c(17)75 559 y Ft(string->li)o(st)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)23 b(17)75 606 y Ft(string->nu)o(mb)o(er)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 b(15)75 -654 y Ft(string->re)o(ge)o(xp)5 b Fs(.)s(.)h(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 b(39;)c(38,)g(40)75 -701 y Ft(string->sy)o(mb)o(ol)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)20 b(13)75 749 y Ft(string->wi)o(dg)o(et)7 b Fs(.)s(.)f(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)20 b(26)75 796 y Ft(string-app)o(en)o(d)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(17)75 -844 y Ft(string-ci<)o(=?)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)23 b(17)75 891 y Ft(string-ci<)o(?)s Fs(.)s(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(17)75 939 y Ft(string-ci=)o(?)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)16 b(16)75 986 y Ft(string-ci>)o(=?)7 -b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(17)75 1034 y Ft(string-ci>)o(?)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)16 b(17)75 1081 y Ft(string-cop)o(y)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)16 -b(17)75 1129 y Ft(string-fil)o(l!)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)23 b(17)75 1176 y Ft(string-fin)o(d?)7 -b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(17)75 1224 y Ft(string-ind)o(ex)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)23 b(17)75 1271 y Ft(string-len)o(gt)o(h)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(16)75 -1319 y Ft(string-low)o(er)7 b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)23 b(17)75 1366 y Ft(string-ref)t Fs(.)s(.)6 -b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(16)75 1413 y Ft(string-set)o(!)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)16 b(16)75 1461 y Ft(string-upp)o(er)7 -b Fs(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(17)75 1508 y Ft(string<=?)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(16)75 1556 y Ft(string=?)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)19 b(17)75 1698 y Ft(string>?)7 b Fs(.)s(.)f(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(16)75 -1746 y Ft(string?)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(16)75 1793 y Ft(substring)6 -b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 -b(17)75 1841 y Ft(symbol->st)o(ri)o(ng)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)20 b(13)75 1888 y Ft(symbol-bou)o(nd)o(?)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)22 b(30)75 -1936 y Ft(symbol?)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)21 b(12)75 1983 y Ft(system)8 -b Fs(.)e(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)23 b(33)75 2154 y Fa(T)75 2202 y Ft(tan)6 -b Fs(.)f(.)h(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)18 b(14)75 2249 y Ft(the-enviro)o(nm)o(ent)6 -b Fs(.)s(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)19 b(30)75 2296 -y(tilde)14 b(expansion)f(.)6 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -23 b(32)75 2344 y Ft(time)5 b Fs(.)t(.)h(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)17 -b(53)75 2391 y(tk)c(to)q(olkit)5 b(.)j(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)18 b(7;)12 b(26,)h(52)75 2439 y Ft(tk-command)7 -b Fs(.)s(.)f(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(26;)13 -b(60)75 2486 y Ft(tk-command)o(?)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)16 b(26)75 2534 y(to)q(olkit)t(.)7 -b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)17 -b(7;)12 b(26,)h(52)75 2581 y(top)g(lev)o(el)i(en)o(vironmen)o(t)6 -b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)19 b(10;)12 -b(30,)h(69,)g(70)75 2629 y Ft(trace-var)6 b Fs(.)s(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)19 b(51)75 2676 -y Ft(transcript)o(-o)o(ff)7 b Fs(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)23 -b(24;)13 b(64)75 2724 y Ft(transcript)o(-o)o(n)t Fs(.)s(.)5 -b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)16 b(24;)d(64)75 2771 y Ft(truncate)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)20 b(14)75 2819 y Ft(try-load)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)20 b(23)1029 186 -y Fa(U)1029 232 y Ft(uncode)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 b(52)1029 -278 y Ft(unless)6 b Fs(.)s(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)18 b(9;)13 b(10)1029 323 y Ft(until)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(10)1029 369 y Ft(untrace-v)o(ar)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 -b(51)1029 499 y Fa(V)1029 545 y Ft(vector)8 b Fs(.)e(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)23 -b(17)1029 590 y Ft(vector->l)o(ist)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)23 b(18)1029 636 y Ft(vector-co)o(py)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 -b(18)1029 682 y Ft(vector-fi)o(ll!)7 b Fs(.)f(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)23 b(18)1029 727 y Ft(vector-le)o(ngt)o(h)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)22 b(17)1029 -773 y Ft(vector-re)o(f)5 b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)17 b(18)1029 819 y Ft(vector-re)o(siz)o(e)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)22 b(18)1029 -864 y Ft(vector-se)o(t!)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)16 b(18)1029 910 y Ft(vector?)9 b Fs(.)s(.)d(.)g(.)g(.) -g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 -b(17)1029 956 y Ft(version)9 b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)22 b(50)1029 1001 -y Ft(view)5 b Fs(.)t(.)h(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)17 b(53)1029 1131 -y Fa(W)1029 1177 y Ft(when)6 b Fs(.)t(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)18 -b(9)1029 1223 y Ft(when-port)o(-re)o(ad)o(abl)o(e)8 b -Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)23 b(22)1029 1268 y Ft(when-port)o(-wr)o(it)o -(abl)o(e)8 b Fs(.)e(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(23)1029 1314 -y Ft(when-sock)o(et-)o(re)o(ady)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)16 -b(46)1029 1360 y Ft(while)s Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)16 b(10)1029 -1405 y(widget)5 b(.)i(.)f(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)f(.)h(.)g(.)g(.)18 b(26)1029 1451 y Ft(widget->s)o(tri)o -(ng)7 b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)20 -b(26)1029 1497 y Ft(widget-na)o(me)s Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 b(27)1029 1542 y Ft(widget?)9 -b Fs(.)s(.)d(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)f(.)22 b(26)1029 1588 y Ft(with-inpu)o(t-f)o(ro)o(m-f)o(ile)7 -b Fs(.)s(.)f(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)f(.)h(.)g(.)21 b(20)1029 1634 y Ft(with-inpu)o(t-f)o(ro)o(m-s)o -(tri)o(ng)t Fs(.)t(.)6 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)18 b(20)1029 1679 y Ft(with-modu)o(le)s -Fs(.)s(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)16 -b(29)1029 1725 y Ft(with-outp)o(ut-)o(to)o(-fi)o(le)6 -b Fs(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)22 b(20)1029 1771 y Ft(with-outp)o(ut-)o(to)o(-st)o -(rin)o(g)7 b Fs(.)r(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)19 b(20)1029 1816 y Ft(write)s -Fs(.)t(.)6 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)f(.)h(.)g(.)16 b(21)1029 1862 y Ft(write-cha)o(r)5 -b Fs(.)s(.)h(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)17 -b(22)1029 1992 y Fa(X)1029 2038 y Fs(x)c(windo)o(w)h(system)d(.)6 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f -(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)23 b(7)1029 2175 -y Fa(Z)1029 2221 y Ft(zero?)5 b Fs(.)t(.)h(.)g(.)g(.)g(.)g(.)f(.)h(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) -h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)18 b(14)p +88 87 bop 37 45 a FE(88)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a FI(Lexical)g(principle)37 281 +y FF(This)j(example)f(reuses)h(the)e(mo)q(dules)i Fw(A)f +FF(and)g Fw(B)f FF(of)h(previous)g(section)h(and)f(adds)g(a)f +Fw(Compare)g FF(mo)q(dule)37 338 y(that)f(exp)q(orts)f(the)h +Fw(less-than-4?)23 b FF(predicates,)18 b(whic)o(h)f(states)f(if)i(the)e +(distance)i(from)e(a)g(p)q(oin)o(t)i(to)e(the)37 394 +y(origin)g(is)g(less)g(than)f(4.)125 509 y Fv(\(define-module)k(A)168 +559 y(\(export)i(square\))168 609 y(\(define)g(square)f(\(lambda)g +(\(x\))i(\(*)f(x)h(x\)\)\)\))125 708 y(\(define-module)d(B)168 +758 y(\(import)i(A\))168 808 y(\(export)g(distance\))168 +908 y(\(define)g(distance)212 957 y(\(lambda)f(\(x)i(y\))f(\(sqrt)g +(\(+)g(\(square)f(x\))i(\(square)e(y\)\)\)\)\)\))125 +1057 y(\(define-module)f(Compare)168 1107 y(\(import)i(B\))168 +1157 y(\(define)g(less-than-4?)e(\(lambda)h(\(x)i(y\))f(\(<)g +(\(distance)f(x)i(y\))f(4\)\)\))168 1206 y(\(define)g(square)151 +b(\(lambda)20 b(\(x\))65 b(\(+)21 b(x)h(x\)\)\)\))37 +1369 y FF(Consider)16 b(no)o(w)f(the)g(call,)125 1469 +y Fv(\(with-module)k(compare)h(\(less-than-4?)f(3)j(4\)\))343 +1518 y Fu(=)-7 b Fp(\))21 b Fv(#f)37 1672 y FF(The)h(call)h(to)e +Fw(distance)f FF(done)i(from)e Fw(less-than-4?)38 b FF(indirectly)23 +b(calls)g(the)e Fw(square)g FF(pro)q(cedure)h(of)37 1729 +y(mo)q(dule)17 b Fw(A)e FF(rather)f(than)i(the)f(one)g(de\014ned)i(lo)q +(cally)g(in)f(mo)q(dule)g Fw(Compare)p FF(.)37 1865 y +FI(Mutually)i(Referen)n(tial)f(Mo)r(dules)37 1956 y FF(This)f(example)f +(uses)g(t)o(w)o(o)e(m)o(utually)i(referen)o(tial)h(mo)q(dules)f(tah)o +(t)f(imp)q(ort)h(and)f(exp)q(ort)h(to)f(eac)o(h)g(other)h(to)37 +2012 y(implemen)o(t)i(m)o(utually)f(recursiv)o(e)g(ev)o(en?)21 +b(and)15 b(o)q(dd?)21 b(pro)q(cedures)125 2127 y Fv(\(define-module)e +(Odd\))64 b(;;)21 b(Forward)g(declaration)125 2227 y(\(define-module)e +(Even)168 2276 y(\(import)i(Odd\))168 2326 y(\(export)g(even?\))168 +2376 y(\(define)g(even?)f(\(lambda)h(\(x\))g(\(if)g(\(zero?)g(x\))g(#t) +g(\(odd?)g(\(-)g(x)h(1\)\)\)\)\)\))125 2476 y(\(define-module)d(Odd)168 +2526 y(\(import)i(Even\))168 2575 y(\(export)g(odd?\))168 +2625 y(\(define)g(odd?)g(\(lambda)f(\(x\))h(\(if)g(\(zero?)g(x\))g(#f)h +(\(even?)e(\(-)h(x)h(1\)\)\)\)\)\))37 2787 y FF(Hereafter)15 +b(are)g(some)g(usages)g(of)g(theses)g(pro)q(cedures:)p eop +%%Page: 89 89 +89 88 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(89)p 37 64 1838 2 v 125 190 a Fv(\(with-module)19 b(Odd)i(\(odd?)g +(3\)\))343 240 y Fu(=)-7 b Fp(\))21 b Fv(#t)125 290 y(\(with-module)e +(Odd)i(\(odd?)g(10\)\))343 340 y Fu(=)-7 b Fp(\))21 b +Fv(#f)125 439 y(\(with-module)e(Even)i(\(even?)f(3\)\))343 +489 y Fu(=)-7 b Fp(\))21 b Fv(#f)125 539 y(\(with-module)e(Even)i +(\(even?)f(10\)\))343 589 y Fu(=)-7 b Fp(\))21 b Fv(#t)p +eop +%%Page: 90 90 +90 89 bop 37 45 a FE(90)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v eop +%%Page: 91 91 +91 90 bop 37 503 a FJ(App)s(endix)33 b(E)37 713 y FC(Changes)37 +955 y Fy(In)n(tro)r(duction)37 1060 y FF(This)11 b(app)q(endix)h(lists) +f(the)g(main)g(di\013erences)805 1043 y FA(1)836 1060 +y FF(among)e(the)i(v)m(arious)f(recen)o(t)h(v)o(ersions)f(of)g(STk.)18 +b(Di\013erences)37 1116 y(with)h(older)g(v)o(ersions)g(as)f(w)o(ell)i +(as)e(implemen)o(tation)i(c)o(hanges)e(are)g(describ)q(ed)j(in)e(the)g +(CHANGES)f(\014le)37 1173 y(lo)q(cated)e(in)g(the)g(main)f(directory)h +(of)e(the)i(STk)f(distribution.)37 1325 y Fy(Release)22 +b(3.99.0)37 1423 y Fn(R)n(ele)n(ase)15 b(date:)20 b(04/10/98)37 +1475 y Fu(Changes)15 b(can)f(b)q(e)g(classi\014ed)h(in)e(three)i +(categories:)108 1554 y Fp(\017)22 b Fu(Ab)q(out)14 b(Sc)o(heme)205 +1642 y Ff({)22 b Fu(A)14 b(mo)q(dule)f(system)g(has)h(b)q(een)h(added) +205 1712 y Ff({)22 b Fu(In)o(tegration)12 b(of)g(the)h(Biglo)q(o)e +Fv(match-case)f Fu(and)i Fv(match-lambda)e Fu(primitiv)o(es.)16 +b(F)m(urthermore,)c(the)h(\014le)251 1762 y Fn(biglo)n(o.stk)18 +b Fu(pro)o(vides)c(some)f(compatibilit)o(y)e(b)q(et)o(w)o(een)k +Fk(STk)f Fu(and)g(biglo)q(o)e(mo)q(dules.)205 1831 y +Ff({)22 b Fu(A)14 b(simple)e(F)m(oreign)i(F)m(unction)f(In)o(terface)i +(has)f(b)q(een)h(added.)205 1901 y Ff({)22 b Fu(in)o(tegrates)15 +b(the)f Fn(R)543 1886 y Fm(5)555 1901 y Fl(RS)j Fv(values)12 +b Fu(and)i Fv(call-with-values)205 1971 y Ff({)22 b Fu(m)o(ulti-line)11 +b(commen)o(ts)h(ha)o(v)o(e)i(b)q(een)h(added.)205 2040 +y Ff({)22 b Fu(new)14 b(\014le)g(primitiv)o(es:)j Fv(remove-file)p +Fu(,)11 b Fv(rename-file)g Fu(and)j Fv(temporary-file-na)o(me)p +Fu(.)205 2110 y Ff({)22 b Fu(new)14 b(list)g(primitiv)o(es:)i +Fv(append!)p Fu(,)c Fv(last-pair)p Fu(,)g Fv(remq)p Fu(,)g +Fv(remv)h Fu(and)h Fv(remove)p Fu(.)205 2180 y Ff({)22 +b Fv(load)p Fu(,)17 b Fv(try-load)f Fu(and)h Fv(autoload?)28 +b Fu(can)17 b(n)o(w)h(b)q(e)g(called)f(with)g(a)h(mo)q(dule)e(as)h +(second)i(parameter.)251 2230 y(If)d(this)h(second)h(parameter)e(is)g +(presen)o(t,)j(the)e(loading)e(is)i(done)f(in)h(the)g(en)o(vironmen)o +(t)e(of)h(the)h(giv)o(en)251 2279 y(mo)q(dule.)108 2367 +y Fp(\017)22 b Fu(Ab)q(out)14 b(Tk)205 2455 y Ff({)22 +b Fu(In)o(tegration)14 b(of)f(the)h(Tk8.0)f(to)q(olkit)205 +2524 y Ff({)22 b Fu(Buttons,)16 b(Chec)o(kbuttons)g(and)f(Radiobuttons) +f(can)h(use)g(a)g Fv(:variable)e Fu(and)i Fv(:textvariable)d +Fu(in)i(a)251 2574 y(giv)o(en)g(en)o(vironmen)o(t.)i(This)e(en)o +(vironmen)o(t)f(is)h(giv)o(en)f(with)h(the)g(new)h Fv(:environment)c +Fu(option.)108 2662 y Fp(\017)22 b Fu(Ab)q(out)14 b(STklos)p +37 2699 735 2 v 89 2726 a Ft(1)107 2742 y Fs(Only)k(the)f +(di\013erences)i(whic)o(h)g(a\013ect)e(the)h(language)h(or)e(new)g(p)q +(orts)h(are)f(rep)q(orted)h(here.)30 b(In)18 b(particular,)i(in)o +(ternal)37 2787 y(c)o(hanges,)14 b(pac)o(k)n(ages)g(written)g(in)g(Sc)o +(heme)f(or)g(p)q(erformance)h(enhancemen)o(t)h(are)e(not)g(discussed)i +(here.)934 2901 y FF(91)p eop +%%Page: 92 92 +92 91 bop 37 45 a FE(92)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 205 190 a Ff({)22 b Fu(The)f(MOP)g(of)f +Fk(STklos)h Fu(is)g(no)o(w)f(v)o(ery)g(similar)e(to)j(the)g(CLOS's)f +(MOP)m(.)g(In)h(particular)f(generic)251 240 y(function)d(has)g(b)q +(een)h(added)g(for)f(con)o(trolling)e(slot)i(accesses,)j(as)d(w)o(ell)g +(as)g(n)o(umerous)f(in)o(trosp)q(ection)251 290 y(functions.)205 +355 y Ff({)22 b Fu(When)15 b(a)g(class)g(is)g(rede\014ned,)i(the)e +(instances)h(and)f(metho)q(ds)g(whic)o(h)g(uses)h(it)e(are)i +(rede\014ned)g(accord-)251 405 y(ingly)m(,)10 b(as)h(in)g(CLOS)h +(\(i.e.)17 b(if)10 b(anew)i(slot)f(is)g(added)h(in)f(a)g(class,)h(all)e +(its)h({)g(direct)i(or)e(indirect)h({)f(instances)251 +455 y(will)i(ha)o(v)o(e)g(the)i(new)f(slot)g(added)g(dynamically)m(.)37 +592 y Fy(Release)22 b(3.1.1)37 682 y Fn(R)n(ele)n(ase)15 +b(date:)20 b(09/26/96)37 732 y Fu(This)13 b(release)h(is)f(a)g(bug)g +(correction)g(release.)19 b(It)13 b(corrects)i(a)e(lot)f(of)h(bugs.)k +(A)c(lot)g(of)f(these)i(bugs)f(prev)o(en)o(t)h(to)f(install)37 +782 y(it)h(on)g(some)f(arc)o(hitectures.)37 919 y Fy(Release)22 +b(3.1)37 1010 y Fn(R)n(ele)n(ase)15 b(date:)20 b(07/24/96)108 +1095 y Fp(\017)i Fu(V)m(ersion)14 b(of)f(Tk)h(is)g(no)o(w)f(at)h(Tk4.1) +f(lev)o(el.)108 1168 y Fp(\017)22 b Fu(STk)14 b(has)g(b)q(een)h(p)q +(orted)g(on)e(Windo)o(ws)g(95)h(and)g(Windo)o(ws)f(NT.)108 +1242 y Fp(\017)22 b Fu(P)o(orts)15 b(can)f(ha)o(v)o(e)f(a)h(handler)g +(whic)o(h)f(is)h(executed)i(when)e(p)q(ort)g(b)q(ecomes)g(readable)g +(or)g(writable)g(\(see)h(prim-)151 1292 y(itiv)o(es)f +Fv(when-port-readab)o(le)d Fu(and)j Fv(when-port-writa)o(ble)p +Fu(.)108 1365 y Fp(\017)22 b Fu(So)q(c)o(k)o(ets)15 b(in)e(serv)o(er)j +(mo)q(de)d(allo)o(w)f(m)o(ultiple)f(concurren)o(t)16 +b(connection.)108 1439 y Fp(\017)22 b Fk(STklos)p Fu(:)17 +b(Tw)o(o)10 b(new)h(metho)q(ds:)16 b Fv(object-eqv?)f +Fu(and)10 b Fv(object-equal?)15 b Fu(whic)o(h)10 b(are)h(called)f(when) +h(applying)151 1488 y Fv(eqv?)18 b Fu(or)c Fv(equal?)j +Fu(to)d(instances.)108 1562 y Fp(\017)22 b Fu(New)15 +b(primitiv)o(e:)p Fv(set)o(env!)37 1699 y Fy(Release)22 +b(3.0)37 1789 y Fn(R)n(ele)n(ase)15 b(date:)20 b(01/22/96)108 +1863 y Fp(\017)i Fu(V)m(ersion)14 b(of)f(Tk)h(is)g(at)g(Tk4.0p2)e(lev)o +(el.)108 1936 y Fp(\017)22 b Fu(Closures)d(are)g(fully)d(supp)q(orted)k +(b)o(y)e(Tk.)31 b(That)18 b(means)f(that)h(a)g(callbac)o(k)g(can)g(b)q +(e)h(no)o(w)f(a)f(Sc)o(heme)h(clo-)151 1986 y(sure)f(with)d(its)i(en)o +(vironmen)o(t.)21 b(GC)15 b(problems)f(with)h(closures)h(and)g(usage)f +(of)g(the)h(dirt)o(y)f Fv(address-of)f Fu(are)151 2036 +y(de\014nitiv)o(ely)f(gone.)108 2109 y Fp(\017)22 b Fu(Strings)14 +b(can)g(con)o(tain)g(n)o(ull)f(c)o(harters)i(\(prin)o(ting)e(of)h +(strings)g(is)g(more)e(friendly)i(in)f(write)h(mo)q(de\).)108 +2183 y Fp(\017)22 b Fu(Signals)13 b(can)h(b)q(e)h(redirected)h(to)d(Sc) +o(heme)h(closures.)19 b(The)c(end)f(of)f(a)h(GC)f(is)h(seen)h(as)f(a)g +(signal.)108 2256 y Fp(\017)22 b Fu(T)m(races)15 b(on)e(v)n(ariables)h +(are)g(c)o(hanged)g(\(and)g(re-w)o(ork)g(no)o(w\):)k(the)c(asso)q +(ciated)h(trace)g(m)o(ust)e(b)q(e)h(a)g(th)o(unk.)108 +2330 y Fp(\017)22 b Fu(New)15 b(options)e(for)h(some)f(widgets)h(to)f +(b)q(e)i(more)e(friendly)g(with)h(Sc)o(heme)f(w)o(orld)108 +2403 y Fp(\017)22 b Fk(STklos)p Fu(:)d(if)13 b(a)g(metho)q(d)g(M)h(is)f +(de\014ned)i(and)f(if)f(it)g(is)g(already)h(b)q(ound)g(to)f(a)h(pro)q +(cedure,)h(the)f(old)f(pro)q(cedure)151 2453 y(is)h(called)f(when)i(no) +f(metho)q(d)f(is)g(applicable.)238 2538 y Fv(\(define-method)19 +b(car)i(\(\(x)h(\)\))d(\(-)i(x)h(1\)\))238 2588 +y(\(car)f(10\))456 2638 y Fu(=)-7 b Fp(\))22 b Fv(9)238 +2688 y(\(car)f(\(cons)g('a)g('b\)\))456 2738 y Fu(=)-7 +b Fp(\))22 b Fv(a)p eop +%%Page: 93 93 +93 92 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(93)p 37 64 1838 2 v 108 190 a Fp(\017)22 b Fu(Small)10 +b(c)o(hange)i(in)g(the)h(STklos)e(hierarc)o(h)o(y)m(.)18 +b Fv()10 b Fu(is)i(no)o(w)g(a)g(sub)q(class)h(of)i +Fv()10 b Fu(and)i(its)g(meta)151 240 y(class)i(is)g +Fv()p Fu(.)p eop +%%Page: 94 94 +94 93 bop 37 45 a FE(94)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v eop +%%Page: 95 95 +95 94 bop 37 502 a FJ(App)s(endix)33 b(F)37 711 y FC(Miscellaneous)39 +b(Informations)37 952 y Fy(1)67 b(In)n(tro)r(duction)37 +1045 y Fu(This)17 b(app)q(endix)f(lists)g(a)g(n)o(um)o(b)q(er)g(of)f +(things)h(whic)o(h)h(cannot)f(go)g(elsewhere)i(in)e(this)g(do)q(cumen)o +(t.)25 b(The)16 b(only)g(link)37 1094 y(b)q(et)o(w)o(een)g(the)e(items) +f(listed)h(her)h(is)e(that)h(they)h(should)e(ease)i(y)o(our)f(life)f +(when)h(using)g Fk(STk)p Fu(.)37 1236 y Fy(2)67 b(Ab)r(out)23 +b Fx(STk)37 1336 y FI(2.1)56 b(Latest)18 b(release)37 +1414 y Fk(STk)j Fu(distribution)e(is)h(a)o(v)n(ailable)e(on)i(v)n +(arious)f(sites.)37 b(The)20 b(original)e(distribution)i(site)g(is)g +Fv(kaolin.unice.fr)37 1464 y(\(134.59.132.7\))p Fu(.)14 +b(Files)c(are)g(a)o(v)n(ailable)e(through)i(anon)o(ymous)e(ftp)i(and)g +(are)g(lo)q(cated)g(in)f(the)i Fv(/pub/STk)d Fu(directory)m(.)37 +1514 y(Distribution)17 b(\014le)g(names)g(ha)o(v)o(e)g(the)g(form)f +Fv(STk-x.y.z.tar.gz)p Fu(,)e(where)19 b Fv(x)e Fu(and)g +Fv(y)g Fu(represen)o(t)i(the)f(v)o(ersion)f(the)37 1564 +y(release)f(and)d(sub-release)j(n)o(um)o(b)q(ers)d(of)h(the)g(pac)o(k)n +(age.)37 1684 y FI(2.2)56 b(Sharing)19 b(Co)r(de)37 1762 +y Fu(If)14 b(y)o(ou)f(ha)o(v)o(e)g(written)i(co)q(de)f(that)g(y)o(ou)f +(w)o(an)o(t)g(to)h(share)g(with)g(the)g(\(small\))e Fk(STk)i +Fu(comm)o(uni)o(t)o(y)m(,)c(y)o(ou)j(can)h(dep)q(osit)g(it)37 +1811 y(in)g(the)h(directory)g Fv(/pub/STk/Incomi)o(ng)c +Fu(of)i Fv(kaolin.unice.fr)p Fu(.)j(Mail)d(me)g(a)g(small)f(note)j +(when)f(y)o(ou)g(dep)q(osit)g(a)37 1861 y(\014le)h(in)g(this)g +(directory)g(so)g(I)g(can)g(put)g(in)g(in)f(its)h(de\014nitiv)o(e)g +(place)g(\()p Fv(/pub/STk/Contrib)d Fu(directory)k(con)o(tains)e(the)37 +1911 y(con)o(tributed)h(co)q(de\).)37 2031 y FI(2.3)56 +b Fd(STk)19 b FI(Mailing)f(list)37 2109 y Fu(There)h(is)f(a)g(mailing)c +(list)k(for)f Fk(STk)h Fu(lo)q(cated)g(on)g Fv(kaolin.unice.fr)p +Fu(.)26 b(The)19 b(in)o(ten)o(t)f(of)f(this)h(mailing)c(list)j(is)h(to) +37 2159 y(p)q(ermit)11 b(to)h Fk(STk)g Fu(users)h(to)e(share)i(exp)q +(eriences,)h(exp)q(ose)f(problems,)d(submit)g(ideas)i(and)g(.)6 +b(.)h(.)f(ev)o(erything)12 b(whic)o(h)f(y)o(ou)37 2209 +y(\014nd)k(in)o(teresting)f(\(and)g(whic)o(h)g(is)f(related)i(to)f +Fk(STk)p Fu(\).)37 2259 y(T)m(o)j(subscrib)q(e)h(to)f(the)h(maili)o(ng) +c(list,)j(simply)e(send)j(a)e(message)h(with)f(the)i(w)o(ord)f +Fv(subscribe)e Fu(in)h(the)i Fv(Subject:)37 2309 y Fu(\014eld)c(of)g(y) +o(ou)f(mail.)j(Mail)c(m)o(ust)h(b)q(e)i(sen)o(t)f(to)g(the)h(follo)o +(wing)c(address:)19 b Fv(stk-request@kaolin)o(.unic)o(e.fr)37 +2360 y Fu(T)m(o)10 b(unsubscrib)q(e)i(from)d(the)i(mailing)c(list,)k +(send)g(a)f(mail)e(at)i(previous)h(email)d(address)k(with)e(the)h(w)o +(ord)f Fv(unsubscribe)37 2409 y Fu(in)k(the)g Fv(Subject:)j +Fu(\014eld.)37 2460 y(F)m(or)i(more)f(information)e(on)i(the)i(mailing) +c(list)i(managemen)o(t)e(send)k(a)f(message)f(with)h(the)g(w)o(ord)g +Fv(help)f Fu(in)g(the)37 2510 y Fv(Subject:)i Fu(\014eld)15 +b(of)f(y)o(our)h(mail.)k(In)c(particular,)g(it)f(is)h(p)q(ossible)h(to) +f(\014nd)g(all)f(the)h(messages)g(whic)o(h)g(ha)o(v)o(e)g(already)37 +2560 y(b)q(een)h(sen)o(t)e(on)g(the)g Fk(STk)h Fu(mailing)10 +b(list.)37 2610 y(Subscription/un-subscription/information)i(requests)j +(are)f(pro)q(cessed)i(automatically)10 b(without)j(h)o(uman)f(in)o +(ter-)37 2660 y(v)o(en)o(tion.)18 b(If)c(y)o(ou)f(something)g(go)q(es)h +(wrong,)f(send)i(a)e(mail)f(to)h Fv(eg@unice.fr)p Fu(.)37 +2710 y(Once)j(y)o(ou)d(ha)o(v)o(e)h(prop)q(erly)g(subscrib)q(e)i(to)d +(the)i(mailing)10 b(list,)108 2787 y Fp(\017)22 b Fu(y)o(ou)14 +b(can)g(send)g(y)o(our)g(messages)g(ab)q(out)g Fk(STk)g +Fu(to)g Fv(stk@kaolin.unice)o(.fr)p Fu(,)934 2901 y FF(95)p +eop +%%Page: 96 96 +96 95 bop 37 45 a FE(96)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 108 190 a Fp(\017)22 b Fu(y)o(ou)17 b(will)f(receiv)o(e) +j(all)e(the)h(messages)f(of)g(the)i(maili)o(ng)c(list)i(to)g(the)i +(email)c(address)k(y)o(ou)e(used)h(when)g(y)o(ou)151 +240 y(subscrib)q(ed)e(to)e(the)g(list.)37 356 y FI(2.4)56 +b Fd(STk)19 b FI(F)-6 b(A)n(Q)37 433 y Fu(Marc)17 b(F)m(urrer)h(has)e +(set)i(up)e(a)g(F)-5 b(A)o(Q)17 b(for)f Fk(STk)p Fu(.)26 +b(This)17 b(F)-5 b(A)o(Q)17 b(is)f(regularly)g(p)q(osted)i(on)e(the)h +Fk(STk)g Fu(maili)o(ng)d(list.)25 b(It)37 482 y(can)12 +b(also)f(b)q(e)h(accessed)i(through)e Fv(http://ltiwww.e)o(pfl.c)o(h/) +19 b(furrer/STk/FAQ.h)o(tml)p Fu(.)14 b(ASCI)q(I)e(v)o(ersion)f(of)g +(the)37 532 y(F)-5 b(A)o(Q)15 b(is)f(a)o(v)n(ailable)d(from)i +Fv(http://ltiwww.ep)o(fl.c)o(h/)19 b(furrer/STk/FAQ.tx)o(t)p +Fu(.)37 648 y FI(2.5)56 b(Rep)r(orting)17 b(a)i(bug)37 +725 y Fu(When)10 b(y)o(ou)f(\014nd)g(a)g(bug)g(in)g Fk(STk)p +Fu(,)h(please)g(send)g(its)f(description)h(to)f(the)h(follo)o(wing)d +(address)k Fv(stk-bugs@kaolin)o(.unic)o(e.fr)p Fu(.)37 +774 y(Don't)h(forget)h(to)g(indicate)g(the)g(v)o(ersion)g(y)o(ou)f(use) +i(and)e(the)i(arc)o(hitecture)g(the)g(system)e(is)h(compiled)e(on.)18 +b Fk(STk)13 b Fu(v)o(er-)37 824 y(sion)k(and)f(arc)o(hitecture)j(can)e +(b)q(e)g(found)g(b)o(y)f(using)h(the)g Fv(version)e Fu(and)i +Fv(machine-type)d Fu(Sc)o(heme)j(primitiv)o(es.)24 b(If)37 +874 y(p)q(ossible,)14 b(try)g(to)g(\014nd)g(a)g(small)d(program)i(whic) +o(h)g(exhibit)h(the)g(bug.)37 1011 y Fy(3)67 b Fx(STk)22 +b Fy(and)h(Emacs)37 1102 y Fu(The)13 b(Emacs)e(family)d(editors)k(can)g +(b)q(e)g(customized)g(to)f(ease)i(viewing)d(and)i(editing)f(programs)f +(of)h(a)h(particular)f(sort.)37 1152 y(Hin)o(ts)j(giv)o(en)g(b)q(elo)o +(w)f(enable)i(a)e(\014ne)i(\\in)o(tegration")d(of)h Fk(STk)i +Fu(in)e(Emacs.)37 1267 y FI(Automatic)18 b(sc)n(heme-m)o(o)r(de)d +(setting)37 1344 y Fu(Emacs)g(mo)q(de)e(can)i(b)q(e)g(c)o(hosen)h +(automatically)c(on)i(the)h(\014le's)g(name.)k(T)m(o)14 +b(edit)h(\014le)g(ended)g(b)o(y)g Fv(.stk)21 b Fu(or)14 +b Fv(.stklos)37 1394 y Fu(in)h(Sc)o(heme)g(mo)q(de,)f(y)o(ou)g(ha)o(v)o +(e)h(to)g(set)h(the)g(Elisp)f(v)n(ariable)f Fv(auto-mode-alist)e +Fu(to)i(con)o(trol)h(the)h(corresp)q(ondence)37 1444 +y(b)q(et)o(w)o(een)f(those)f(su\016xes)h(and)e(the)h(sc)o(heme)f(mo)q +(de.)k(The)d(simpler)e(w)o(a)o(y)h(to)g(set)i(this)e(v)n(ariable)f +(consists)j(to)e(add)g(the)37 1493 y(follo)o(wing)f(lines)i(in)f(y)o +(our)h(.)p Fv(emacs)e Fu(startup)j(\014le.)151 1579 y +Fv(;;)22 b(Add)f(the)g('.stk')f(and)i('.stklos')e(suffix)g(in)h(the)h +(auto-mode-alist)c(Emacs)151 1629 y(;;)k(variable.)d(Setting)i(this)g +(variable)f(permits)g(to)i(automagically)d(place)h(the)151 +1679 y(;;)i(buffer)e(in)h(scheme-mode.)151 1728 y(\(setq-default)e +(auto-mode-alist)g(\(append)h(auto-mode-alist)979 1778 +y(\("\\\\.stk$")85 b(.)22 b(scheme-mode\))979 1828 y(\("\\\\.stklos$")d +(.)j(scheme-mode\)\)\))37 1944 y FI(Using)d(Emacs)e(and)j +Fc(CMU)h(Scheme)37 2020 y Fn(CMU)c(Scheme)h Fu(pac)o(k)n(age)e(pac)o(k) +n(age)g(p)q(ermits)f(to)i(run)f(the)h Fk(STk)g Fu(in)o(terpreter)h(in)e +(an)g(Emacs)g(windo)o(w.)25 b(Once)17 b(the)37 2070 y(pac)o(k)n(age)h +(is)g(loaded,)g(y)o(ou)f(can)h(send)h(text)g(to)e(the)i(inferior)e +Fk(STk)h Fu(in)o(terpreter)i(from)c(other)j(bu\013ers)g(con)o(taining) +37 2120 y(Sc)o(heme)13 b(source.)19 b(The)14 b Fn(CMU)f(Scheme)h +Fu(pac)o(k)n(age)f(is)f(distributed)i(with)e(Emacs)h(\(b)q(oth)g +(FSF-Emacs)f(and)h(Xemacs\))37 2170 y(and)h(y)o(ou)g(should)f(ha)o(v)o +(e)h(it)g(if)f(y)o(ou)g(are)h(running)g(this)g(editor.)37 +2220 y(T)m(o)g(use)g(the)h Fn(CMU)f(Scheme)h Fu(pac)o(k)n(age)f(with)f +Fk(STk)p Fu(,)h(place)g(the)g(follo)o(wing)e(lines)i(in)f(y)o(our)h +Fv(.emacs)e Fu(startup)j(\014le.)151 2305 y Fv(;;)22 +b(Use)f(cmu-scheme)e(rather)i(than)g(xscheme)f(which)h(is)g(launched)g +(by)g(default)151 2355 y(;;)h(whence)e(running)g('run-scheme')g +(\(xscheme)g(is)h(wired)g(with)g(CScheme\))151 2405 y(\(autoload)f +('run-scheme)g("cmuscheme")f("Run)i(an)g(inferior)g(Scheme")f(t\))151 +2455 y(\(setq)h(scheme-program-na)o(me)e("stk"\))151 +2505 y(\(setq)i(inferior-scheme-m)o(ode-h)o(ook)e('\(lambda\(\))g +(\(split-window\)\)\))37 2590 y Fu(After)13 b(ha)o(ving)e(en)o(tered)i +(those)g(lines)f(in)f(y)o(our)h Fv(.emacs)e Fu(\014le,)i(y)o(ou)g(can)g +(simply)d(run)k(the)f Fk(STk)g Fu(in)o(terpreter)i(b)o(y)e(t)o(yping) +151 2664 y Fv(M-x)21 b(run-scheme)37 2738 y Fu(Read)e(the)g +Fn(CMU)g(Scheme)h Fu(do)q(cumen)o(tation)d(\(or)i(use)g(the)g(describ)q +(e-mo)q(de)h(Elisp)e(command\))e(for)i(a)h(complete)37 +2787 y(description)c(of)e(this)h(pac)o(k)n(age.)p eop +%%Page: 97 97 +97 96 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1262 +b(97)p 37 64 1838 2 v 37 190 a FI(Using)19 b(Emacs)e(and)j(the)e +Fc(Ilisp)h FI(pac)n(k)m(age)37 268 y Fn(Ilisp)c Fu(is)g(another)h(sc)o +(heme)f(pac)o(k)n(age)g(whic)o(h)g(allo)o(ws)f(to)h(run)g(the)h +Fk(STk)g Fu(in)o(terpreter)h(in)d(an)h(Emacs)g(windo)o(w.)21 +b(This)37 318 y(is)f(a)e(ric)o(h)i(pac)o(k)n(age)e(with)h(a)g(lot)g(of) +f(nice)i(features.)35 b Fn(Ilisp)18 b Fu(comes)h(pre-installed)g(with)g +(Xemacs;)i(it)e(has)g(to)g(b)q(e)37 368 y(installed)14 +b(with)g(FSF)g(Emacs)f(\(the)i(last)f(v)o(ersion)g(of)g +Fn(Ilisp)f Fu(can)h(b)q(e)h(ftp'ed)f(anon)o(ymously)e(from)g +Fv(ftp.cs.cmu.edu)37 418 y Fu(\(128.2.206.173\))f(in)i(the)i +Fv(/user/ai/lang/li)o(sp/ut)o(il/em)o(acs/)o(ilisp)10 +b Fu(directory\).)37 468 y(T)m(o)k(use)g(the)h Fn(Ilisp)e +Fu(pac)o(k)n(age)h(with)f Fk(STk)p Fu(,)h(place)g(the)h(follo)o(wing)c +(lines)j(in)f(y)o(our)h Fv(.emacs)e Fu(startup)j(\014le.)151 +557 y Fv(\(autoload)20 b('run-ilisp)303 b("ilisp")20 +b("Select)h(a)g(new)h(inferior)e(LISP.")g(t\))151 607 +y(\(autoload)g('stk)435 b("ilisp")20 b("Run)h(stk)h(in)f(ILISP.")f(t\)) +151 657 y(\(add-hook)g('ilisp-load-hook)369 707 y('\(lambda)g(\(\))434 +757 y(\(require)h('completer\))434 856 y(;;)h(Define)e(STk)i(dialect)e +(characteristics)434 906 y(\(defdialect)g(stk)h("STk)g(Scheme")478 +956 y(scheme)478 1006 y(\(setq)g(comint-prompt-re)o(gexp)d("^STk>)j +("\))478 1056 y(\(setq)g(ilisp-program)e("stk)i(-interactive"\))478 +1105 y(\(setq)g(comint-ptyp)e(t\))478 1155 y(\(setq)i(comint-always-sc) +o(roll)d(t\))478 1205 y(\(setq)j(ilisp-last-comma)o(nd)e("*"\)\)\)\))37 +1294 y Fu(After)13 b(ha)o(ving)e(en)o(tered)i(those)g(lines)f(in)f(y)o +(our)h Fv(.emacs)e Fu(\014le,)i(y)o(ou)g(can)g(simply)d(run)k(the)f +Fk(STk)g Fu(in)o(terpreter)i(b)o(y)e(t)o(yping)151 1371 +y Fv(M-x)21 b(stk)37 1447 y Fu(The)15 b(Ilisp)e(pac)o(k)n(age)h(comes)f +(with)h(a)f(ric)o(h)h(do)q(cumen)o(tation)f(whic)o(h)h(describ)q(e)h +(ho)o(w)f(to)g(customize)f(the)i(pac)o(k)n(age.)37 1567 +y FI(Other)k(pac)n(k)m(ages)37 1644 y Fu(Another)d(w)o(a)o(y)e(to)h +(use)h Fk(STk)f Fu(and)g(Emacs)f(consists)i(to)f(use)h(a)e(sp)q(ecial)h +(purp)q(ose)i Fk(STk)e Fu(mo)q(de.)20 b(Y)m(ou)14 b(can)h(\014nd)g(t)o +(w)o(o)37 1694 y(suc)o(h)g(mo)q(des)e(in)h(the)g Fv(/pub/Contrib)e +Fu(directory)i(of)g Fv(kaolin.unice.fr)o Fu(.)37 1813 +y FI(3.1)56 b(Using)19 b(the)f(SLIB)g(pac)n(k)m(age)h(with)f +Fd(STk)37 1891 y Fu(Aubrey)h(Ja\013er)g(main)o(tains)d(a)h(pac)o(k)n +(age)h(called)f Fn(SLIB)i Fu(whic)o(h)f(is)f(a)h(p)q(ortable)g(Sc)o +(heme)g(library)f(whic)o(h)h(pro)o(vides)37 1941 y(compatibilit)o(y)10 +b(and)i(utilit)o(y)f(functions)i(for)f(all)f(standard)i(Sc)o(heme)f +(implemen)o(tations.)j(T)m(o)d(use)h(this)f(pac)o(k)n(age,)g(y)o(ou)37 +1991 y(ha)o(v)o(e)i(just)g(to)g(t)o(yp)q(e)151 2067 y +Fv(\(require)20 b("slib"\))37 2144 y Fu(and)c(follo)o(w)d(the)j +(instructions)g(giv)o(en)f(in)g(the)h Fn(SLIB)f Fu(library)g(to)g(use)h +(a)f(particular)h(pac)o(k)n(age.)22 b Fn(Note:)42 b(SLIB)16 +b Fu(uses)37 2193 y(also)g(the)g Fn(r)n(e)n(quir)n(e/pr)n(ovide)f +Fu(mec)o(hanism)f(to)h(load)g(comp)q(onen)o(ts)h(of)f(the)i(library)m +(.)22 b(Once)17 b Fn(SLIB)g Fu(has)f(b)q(een)h(loaded,)37 +2243 y(the)f(standard)g Fk(STk)f Fv(require)f Fu(and)h +Fv(provide)f Fu(are)h(o)o(v)o(erloaded)g(suc)o(h)h(as)f(if)f(their)i +(parameter)f(is)g(a)g(string)g(this)g(is)37 2293 y(the)f(old)f +Fk(STk)g Fu(pro)q(cedure)i(whic)o(h)e(is)g(called,)g(and)g(if)f(their)i +(parameter)e(is)h(a)g(sym)o(b)q(ol,)e(this)i(is)g(the)h +Fn(SLIB)g Fu(one)f(whic)o(h)37 2343 y(is)h(called.)37 +2483 y Fy(4)67 b(Getting)23 b(information)h(ab)r(out)e(Sc)n(heme)37 +2583 y FI(4.1)56 b(The)19 b Fc(R)323 2565 y FA(4)334 +2583 y Fb(RS)j FI(do)r(cumen)n(t)37 2661 y Fn(R)67 2646 +y Fm(4)79 2661 y Fl(RS)d Fu(is)e(the)g(do)q(cumen)o(t)f(whic)o(h)g +(fully)f(describ)q(e)j(the)f(Sc)o(heme)f(Programming)d(Language,)j(it)g +(can)h(b)q(e)f(found)g(in)37 2711 y(the)f(Sc)o(heme)f(rep)q(ository)g +(\(see)h Ff(??)p Fu(\))f(in)f(the)h(directory:)151 2787 +y Fv(ftp.cs.indiana.edu)o(:/pub)o(/sche)o(me-re)o(posi)o(tory/)o(doc)p +eop +%%Page: 98 98 +98 97 bop 37 45 a FE(98)1262 b FB(STk)17 b FE(Reference)g(Man)o(ual)p +37 64 1838 2 v 37 190 a Fu(Aubrey)e(Ja\013er)f(has)g(also)f(translated) +h(this)g(do)q(cumen)o(t)f(in)g(HTML.)g(A)h(v)o(ersion)g(of)f(this)g(do) +q(cumen)o(t)g(is)h(a)o(v)n(ailable)d(at)151 265 y Fv +(file://swiss-ftp.a)o(i.mit)o(.edu/)o(pub/s)o(cm/H)o(TML/r)o(4rs)p +1137 265 14 2 v 13 w(toc.html)37 381 y FI(4.2)56 b(The)19 +b(Sc)n(heme)e(Rep)r(ository)37 458 y Fu(The)f(main)d(site)j(where)g(y)o +(ou)f(can)g(\014nd)h(\(man)o(y\))d(informations)g(ab)q(out)i(Sc)o(heme) +g(is)g(lo)q(cated)h(in)f(the)g(Univ)o(ersit)o(y)h(of)37 +508 y(Indiana.)h(The)d(Sc)o(heme)e(rep)q(ository)i(is)f(main)o(tained)d +(b)o(y)j(Da)o(vid)e(Eb)o(y)m(.)18 b(The)13 b(rep)q(ository)g(curren)o +(tly)h(consists)g(of)e(the)37 558 y(follo)o(wing)g(areas:)108 +632 y Fp(\017)22 b Fu(Lots)14 b(of)f(sc)o(heme)i(co)q(de)f(mean)o(t)f +(for)g(b)q(enc)o(hmarking,)g(library/supp)q(ort,)g(researc)o(h,)i +(education,)f(and)g(fun.)108 707 y Fp(\017)22 b Fu(On-line)9 +b(do)q(cumen)o(ts:)16 b(Mac)o(hine)9 b(readable)h(standards)g(do)q +(cumen)o(ts,)f(standards)h(prop)q(osals,)g(v)n(arious)f(Sc)o(heme-)151 +757 y(related)15 b(tec)o(h)f(rep)q(orts,)h(conference)h(pap)q(ers,)f +(mail)c(arc)o(hiv)o(es,)j(etc.)108 832 y Fp(\017)22 b +Fu(Most)14 b(of)g(the)g(publicly)f(distributable)h(Sc)o(heme)g +(Implemen)o(tatio)o(ns.)108 906 y Fp(\017)22 b Fu(Material)13 +b(designed)i(primarily)c(for)j(instruction.)108 981 y +Fp(\017)22 b Fu(F)m(reely-distributable)14 b(promotional)d(or)j +(demonstration)f(material)f(for)h(Sc)o(heme-related)h(pro)q(ducts.)108 +1056 y Fp(\017)22 b Fu(Utilities)13 b(\(e.g.,)g(Sc)o(hemew)o(eb,)h +(SLaT)m(eX\).)108 1130 y Fp(\017)22 b Fu(Extraneous)15 +b(stu\013,)f(extensions,)h(etc.)37 1205 y(Y)m(ou)f(can)g(access)i(the)e +(Sc)o(heme)g(rep)q(ository)g(with)108 1280 y Fp(\017)22 +b Fv(ftp.cs.indiana.edu)o(:/pub)o(/sche)o(me-re)o(posi)o(tory)108 +1355 y Fp(\017)g Fv(http://www.cs.indi)o(ana.e)o(du/sc)o(heme-)o(repo)o +(sitor)o(y/SRh)o(ome.h)o(tml)37 1429 y Fu(The)15 b(Sc)o(heme)f(Rep)q +(ository)f(is)h(mirrored)f(in)h(Europ)q(e:)108 1504 y +Fp(\017)22 b Fv(ftp.inria.fr:/lang)o(/Sche)o(me)108 1579 +y Fp(\017)g Fv(faui80.informatik.)o(uni-e)o(rlang)o(en.de)o(:/pu)o +(b/sch)o(eme/y)o(orku)108 1653 y Fp(\017)g Fv(ftp.informatik.uni)o +(-muen)o(chen.)o(de:/p)o(ub/c)o(omp/p)o(rogra)o(mming)o(/lang)o(uages)o +(/sch)o(eme/s)o(cheme)o(-repo)o(sitor)o(y)37 1770 y FI(4.3)56 +b(Usenet)18 b(newsgroup)h(and)g(other)f(addresses)37 +1846 y Fu(There)e(is)d(a)h(usenet)h(newsgroup)g(ab)q(out)f(the)g(Sc)o +(heme)g(Programming)c(language:)17 b Fv(comp.lang.scheme)p +Fu(.)37 1896 y(F)m(ollo)o(wing)12 b(addresses)k(con)o(tains)e(also)f +(material)f(ab)q(out)h(the)i(Sc)o(heme)f(language)108 +1983 y Fp(\017)22 b Fv(http://www.cs.cmu.)o(edu:8)o(001/W)o(eb/Gr)o +(oups)o(/AI/h)o(tml/f)o(aqs/l)o(ang/s)o(cheme)o(/top)o(.html)6 +b Fu(con)o(tains)j(the)151 2033 y(Sc)o(heme)14 b(F)-5 +b(A)o(Q.)108 2108 y Fp(\017)22 b Fv(http://www-swiss.a)o(i.mit)o(.edu/) +o(schem)o(e-ho)o(me.ht)o(ml)11 b Fu(is)j(the)g(Sc)o(heme)g(Home)f(page) +g(at)h(MIT)108 2183 y Fp(\017)22 b Fv(http://www.ai.mit.)o(edu/p)o +(rojec)o(ts/su)o(/su.)o(html)10 b Fu(is)k(the)h(Sc)o(heme)e +(Underground)i(w)o(eb)f(page)p eop +%%Page: 99 99 +99 98 bop 37 523 a FC(Bibliograph)m(y)58 747 y Fu([1])22 +b(William)14 b(Clinger)j(and)g(Jonathan)h(Rees)g(\(editors\).)30 +b Fl(Rev)q(ised)1150 732 y Fm(4)1188 747 y Fu(Rep)q(ort)18 +b(on)f(the)h(Algorithmic)d(Language)125 796 y(Sc)o(heme.)j +Fn(A)o(CM)c(Lisp)h(Pointers)p Fu(,)e(4\(3\),)g(1991.)58 +871 y([2])22 b(John)11 b(K.)h(Ousterhout.)j(An)d(X11)f(to)q(olkit)f +(based)i(on)g(the)g(Tcl)f(Language.)j(In)d Fn(USENIX)i(Winter)g(Confer) +n(enc)n(e)p Fu(,)125 921 y(pages)h(105{115,)e(Jan)o(uary)i(1991.)58 +996 y([3])22 b(John)15 b(K.)g(Ousterhout.)23 b(Tcl:)e(an)15 +b(em)o(b)q(eddable)f(command)f(language.)20 b(In)c Fn(USENIX)g(Winter)g +(Confer)n(enc)n(e)p Fu(,)125 1045 y(pages)e(183{192,)e(Jan)o(uary)i +(1990.)58 1120 y([4])22 b(Eric)o(k)13 b(Gallesio.)h(Extending)f(the)h +Fk(STk)f Fu(in)o(terpreter.)18 b(T)m(ec)o(hnical)13 b(rep)q(ort,)g(I3S) +g(CNRS)f(/)h(Univ)o(ersit)o(\023)-20 b(e)13 b(de)g(Nice)125 +1170 y(-)g(Sophia)h(An)o(tip)q(olis,)e(1997.)58 1245 +y([5])22 b(Sho-Huan)17 b(Simon)f(T)m(ung)h(and)g(R.)g(Ken)o(t)i(Dyb)o +(vig.)28 b(Reliable)16 b(in)o(teractiv)o(e)i(programming)c(with)j(mo)q +(dules.)125 1295 y Fn(LISP)e(and)h(Symb)n(olic)f(Computation)p +Fu(,)f(9:343{358,)c(1996.)58 1369 y([6])22 b(Guy)16 b(L.)h(Steele)h +(Jr.)27 b Fn(Common)18 b(Lisp:)25 b(the)17 b(L)n(anguage,)j(2nd)e +(Edition)p Fu(.)28 b(Digital)14 b(Press,)19 b(12)e(Crosb)o(y)g(Driv)o +(e,)125 1419 y(Bedford,)d(MA)g(01730,)e(USA,)i(1990.)58 +1494 y([7])22 b(POSIX)d(Committee.)31 b Fn(System)20 +b(Applic)n(ation)g(Pr)n(o)n(gr)n(am)e(Interfac)n(e)i(\(API\))f([C)g(L)n +(anguage])p Fu(.)34 b(Information)125 1544 y(tec)o(hnology|P)o(ortable) +12 b(Op)q(erating)h(System)f(In)o(terface)h(\(POSIX\).)g(IEEE)g +(Computer)f(So)q(ciet)o(y)h(Press,)h(1109)125 1593 y(Spring)f(Street,)i +(Suite)f(300,)f(Silv)o(er)g(Spring,)g(MD)h(20910,)e(USA,)i(1990.)58 +1668 y([8])22 b(Man)o(uel)13 b(Serrano.)19 b Fn(Biglo)n(o)c(User's)f +(Manual,)h(v1.9b)p Fu(,)f(June)h(1997.)58 1743 y([9])22 +b(C.)15 b(Queinnec)i(and)e(J-M.)h(Ge\013ro)o(y)m(.)22 +b(P)o(artial)15 b(Ev)n(aluation)f(Applied)i(to)f(Sym)o(b)q(olic)f(P)o +(attern)i(Matc)o(hing)f(with)125 1793 y(In)o(telligen)o(t)e(Bac)o +(ktrac)o(k.)19 b(In)13 b Fn(et)i(al)f Fu(M.)f(Billaud,)f(editor,)i +Fn(Workshop)i(in)f(Static)g(A)o(nalysis)p Fu(,)e(n)o(um)o(b)q(er)g +(81{82)f(in)125 1842 y(Bigre,)i(Bordeaux)g(\(F)m(rance\),)g(Septem)o(b) +q(er)h(1992.)37 1917 y([10])22 b(A.)10 b(W)m(righ)o(t)f(and)i(B.Duba.)h +(P)o(attern)f(Matc)o(hing)f(for)g(Sc)o(heme.)j(T)m(ec)o(hnical)d(rep)q +(ort,)i(Departmen)o(t)e(of)g(Computer)125 1967 y(Science,)15 +b(Rice)e(Univ)o(ersit)o(y)m(,)g(Octob)q(er)j(1993.)37 +2042 y([11])22 b(John)14 b(K.)g(Ousterhout.)19 b Fn(Tcl)14 +b(and)i(the)f(Tk)g(to)n(olkit)p Fu(.)i(Addison-W)m(esley)m(,)12 +b(1994.)37 2116 y([12])22 b(Gregor)d(Kic)o(kzales.)36 +b(Tin)o(y-clos.)e(Source)20 b(a)o(v)n(ailable)d(on)j(parcftp.xero)o +(x.com)e(in)h(directory)h(/pub/mops)n(,)125 2166 y(Decem)o(b)q(er)14 +b(1992.)37 2241 y([13])22 b(Apple)14 b(Computer.)j Fn(Dylan:)j(an)15 +b(Obje)n(ct)f(Oriente)n(d)h(Dynamic)g(L)n(anguage)p Fu(.)20 +b(Apple,)13 b(April)g(1992.)37 2316 y([14])22 b(Chris)13 +b(Hanson.)18 b(The)13 b(sos)h(reference)i(man)o(ual,)11 +b(v)o(ersion)i(1.5.)j Fn(in-line)e(do)n(cumentation)i(of)e(the)g(SOS)h +(p)n(ackage.)125 2366 y(Sour)n(c)n(e)g(available)g(on)g +(martigny.ai.mit.e)n(du)f(in)h(/ar)n(chive/cph)g(dir)n(e)n(ctory)p +Fu(,)e(Marc)o(h)h(1993.)37 2440 y([15])22 b(Jim)12 b(de)h(Rivi)o(\022) +-20 b(eres)14 b(Gregor)f(Kic)o(kzales)h(and)f(Daniel)f(G.)h(Bobro)o(w.) +k Fn(The)d(A)o(rt)g(of)g(Meta)h(Obje)n(ct)e(Pr)n(oto)n(c)n(ol)p +Fu(.)k(MIT)125 2490 y(Press,)e(1991.)934 2901 y FF(99)p +eop +%%Page: 100 100 +100 99 bop 37 424 a FC(Index)37 636 y Fv(!)t Fu(.)6 b(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)18 b(38)37 686 y Fv(*)t Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 +b(15)37 736 y Fv(*argc*)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(71)37 787 y Fv(*argv*)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(71)37 837 y Fv(*debug*)9 b Fu(.)c(.)h(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)22 b(36;)13 b(61,)g(71)37 888 y Fv(*gc-verbose*)d +Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)26 b(71)37 +938 y Fv(*help-path*)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)19 b(72)37 988 y Fv(*image-path*)10 b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)26 b(72)37 1039 y Fv(*load-path*)5 b Fu(.)t(.)h(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b(71)37 1089 y Fv(*load-suffixes*)7 +b Fu(.)s(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)21 b(71)37 1139 y Fv(*load-verbose*)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(71)37 1190 y +Fv(*print-banner*)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 +b(72)37 1240 y Fv(*program-name*)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +22 b(72)37 1291 y Fv(*root*)7 b Fu(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)21 b(68;)13 b(72)37 1341 y Fv(*start-withdrawn*)s +Fu(.)s(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)17 b(72)37 1391 y Fv(*stk-library*)8 +b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 b(72)37 1442 +y Fv(*tk-patch-level*)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(72)37 1492 y Fv(*tk-version*)10 b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)26 b(72)37 1542 y Fv(+)t Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 +b(15)37 1593 y Fv(-)t Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 +b(15)37 1643 y Fv(/)t Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 +b(15)37 1694 y Fv(:accessor)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)22 b(78)37 1744 y Fv(:allocation)5 +b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b(78)37 1794 y Fv(:class)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(78)37 1845 y Fv(:getter)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(78)37 1895 y Fv(:init-keyword)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)24 b(78)37 1945 y Fv(:initform)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(78)37 1996 y Fv(:instance)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(78)37 2046 y Fv(:setter)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(78)37 2097 y Fv(:slot-ref)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)25 b(78;)13 +b(79)37 2147 y Fv(:slot-set!)c Fu(.)c(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +23 b(78;)13 b(79)37 2197 y Fv(:virtual)d Fu(.)5 b(.)h(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(78)37 2248 y +Fv(<)t Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 b(15)37 2298 y +Fv(<=)11 b Fu(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)25 b(15)37 2348 y Fv()10 +b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 +b(76)37 2399 y Fv()9 b Fu(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)23 b(76;)13 b(83)37 2449 y Fv(=)t +Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 b(15)37 2500 y Fv(>)t +Fu(.)6 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)18 b(15)37 2550 y Fv(>=)11 +b Fu(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)25 b(15)37 2687 y Fa(A)37 2737 +y Fv(abs)10 b Fu(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b(15)37 2787 y(accessor)6 +b(.)i(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +20 b(78)1029 636 y Fv(acos)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(16)1029 +686 y Fv(add-signal-handle)o(r!)9 b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(40)1029 +735 y Fv(address-of)6 b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)20 b(39)1029 785 y Fv(address?)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)23 b(39)1029 835 +y Fv(and)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)25 b(9)1029 885 y +Fv(angle)9 b Fu(.)c(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)24 b(16;)12 b(74)1029 935 y Fv(append)t Fu(.)5 b(.)h(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 +b(12)1029 984 y Fv(append!)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 b(12)1029 1034 y Fv(apply)6 +b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)20 b(20)1029 1084 y Fv(apropos)10 b Fu(.)c(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 b(61)1029 +1134 y Fv(asin)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(16)1029 1184 y Fv(assoc)6 +b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)20 b(12)1029 1234 y Fv(assq)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(12)1029 1283 y Fv(assv)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(12)1029 +1333 y Fv(atan)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(16)1029 1383 y Fv(autoload)10 +b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)23 +b(26)1029 1433 y Fv(autoload?)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)22 b(26)1029 1556 y Fa(B)1029 +1606 y Fv(basename)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)23 b(37)1029 1655 y Fv(begin)6 b Fu(.)f(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b(10)1029 1705 y Fv(bind)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(69)1029 +1755 y Fv(bindtags)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)23 b(69)1029 1805 y Fv(boolean?)10 b +Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)23 +b(11)1029 1855 y Fv(break)9 b Fu(.)c(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)24 b(39;)12 b(69)1029 1905 y Fv(button)t +Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)18 b(29)1029 1954 y Fv(bye)10 b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)23 +b(64)1029 2090 y Fa(C)1029 2140 y Fv(c)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)18 b(40)1029 2190 y Fv(c-string->string)t Fu(.)t(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)18 b(57)1029 2239 y Fv(caar)8 b Fu(.)d(.)h(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(12)1029 2289 y Fv(cadr)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(12)1029 +2339 y Fv(call-with-current)o(-cont)o(inuat)o(ion)7 b +Fu(.)t(.)f(.)g(.)g(.)h(.)f(.)21 b(20)1029 2389 y Fv(call-with-input-f)o +(ile)7 b Fu(.)s(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)21 b(21)1029 2439 y Fv(call-with-input-s)o(tring)r +Fu(.)t(.)6 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +17 b(21)1029 2488 y Fv(call-with-output-)o(file)5 b Fu(.)s(.)h(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(21)1029 2538 y Fv(call-with-output-)o(strin)o(g)8 b +Fu(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)24 +b(22)1029 2588 y Fv(call-with-values)t Fu(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)18 +b(91)1029 2638 y Fv(call/cc)6 b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)20 b(20;)12 b(21)1029 2688 y Fv(canonical-path)c +Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(37)1029 2738 +y Fv(car)10 b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)23 b(12)1029 2787 y Fv(case)9 +b Fu(.)c(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)23 b(9)922 2901 y FF(100)p eop +%%Page: 101 101 +101 100 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1236 +b(101)p 37 64 1838 2 v 37 190 a Fv(catch)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 +b(21)37 240 y Fv(cdddar)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(12)37 291 y Fv(cddddr)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(12)37 341 y Fv(cdr)10 b Fu(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 +b(12)37 391 y Fv(ceiling)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(16)37 441 y Fv(char->integer)8 +b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 b(17)37 491 +y Fv(char-alphabetic?)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(17)37 541 y Fv(char-ci<=?)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)20 b(17)37 591 y Fv(char-ci=?)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)20 b(17)37 741 y Fv(char-ci>?)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(17)37 791 y Fv(char-downcase)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)24 b(18)37 841 y Fv(char-lower-case?)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +19 b(17)37 891 y Fv(char-numeric?)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)24 b(17)37 941 y Fv(char-ready?)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)19 b(24)37 991 y Fv(char-upcase)5 +b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b(17)37 1042 y Fv(char-upper-case?)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(17)37 1092 y Fv(char-whitespace?)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(17)37 1142 y Fv(char<=?)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(17)37 1192 y Fv(char=?)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)26 b(17)37 1342 y Fv(char>?)t Fu(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +18 b(17)37 1392 y Fv(char?)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(17)37 1442 +y(c)o(haracters)5 b(.)k(.)d(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)19 b(17)37 1492 y Fv(chdir)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(38)37 +1542 y(class)10 b(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b(75)37 1592 y Fv(class-precedence-lis)o +(t)5 b Fu(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)19 b(82)37 1642 y Fv(class-slots)5 b Fu(.)t(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b(76)37 1692 y Fv(close-input-port)5 +b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 b(24)37 1742 y Fv(close-output-port)s +Fu(.)s(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)17 b(24)37 1792 y Fv(close-port)6 +b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)20 +b(27)37 1843 y Fv(closure?)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(20)37 1893 y(cm)o(u)13 +b(sc)o(heme)7 b(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)21 +b(96)37 1943 y Fv(complex?)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(15)37 1993 y Fv(cond)9 +b Fu(.)d(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)23 b(9)37 2043 y Fv(cons)8 b Fu(.)e(.)g(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)22 +b(12)37 2093 y(con)o(tin)o(uation)5 b(.)h(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)19 b(20;)13 b(59)37 2143 y Fv(continuation?)8 b Fu(.)e(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)24 b(20)37 2193 y Fv(copy-tree)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(13)37 2243 y Fv(cos)10 b Fu(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b(16)37 +2293 y Fv(current-error-port)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 b(22)37 +2343 y Fv(current-input-port)7 b Fu(.)t(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)21 b(22;)13 b(23,)g(24)37 2393 y Fv(current-module)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(32)37 2443 y +Fv(current-output-port)5 b Fu(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)20 b(22;)13 b(23,)g(25)37 2587 y Fa(D)37 2637 +y Fv(decompose-file-name)8 b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)23 b(37)37 2687 +y Fv(default)e(slot)g(value)9 b Fu(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 b(78)37 +2737 y Fv(define-class)6 b Fu(.)t(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)20 +b(75;)13 b(76)37 2787 y Fv(define-external)d Fu(.)s(.)d(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 +b(55;)13 b(54)1029 190 y Fv(define-generic)8 b Fu(.)t(.)e(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)22 b(82)1029 241 y Fv(define-macro)9 b Fu(.)e(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)26 b(36)1029 291 y Fv(define-method)7 +b Fu(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(82)1029 +341 y Fv(define-module)7 b Fu(.)t(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b(30;)13 b(32,)f(33)1029 +392 y Fv(delay)d Fu(.)c(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)24 b(10;)12 b(20)1029 442 y Fv(denominator)c +Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(16;)12 b(73)1029 +492 y Fv(describe)e Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)23 b(77)1029 543 y Fv(detail)t Fu(.)5 b(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 b(63)1029 +593 y Fv(dirname)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)25 b(37)1029 643 y Fv(display)10 b +Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 +b(24)1029 693 y Fv(do)11 b Fu(.)6 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)25 b(10)1029 +744 y Fv(dotimes)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)25 b(10)1029 794 y Fv(dump)8 b Fu(.)d(.)h(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(59)1029 844 y Fv(dynamic-wind)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)26 b(20)1029 992 y Fa(E)1029 1042 y Fu(emacs)13 +b(editor)e(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)24 +b(96)1029 1093 y Fv(environment->list)r Fu(.)t(.)6 b(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)17 +b(34)1029 1143 y Fv(environment?)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)26 b(34)1029 1193 y Fv(eq)11 b Fu(.)6 b(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)25 +b(13)1029 1244 y Fv(eq?)7 b Fu(.)e(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)21 b(11;)13 b(41,)f(42)1029 1294 y Fv(equal)6 +b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)20 b(13)1029 1344 y Fv(equal?)t Fu(.)5 b(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 b(11)1029 +1395 y Fv(eqv)10 b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)23 b(13)1029 1445 +y Fv(eqv?)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(11)1029 1495 y Fv(error)6 +b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)20 b(59)1029 1545 y Fv(eval)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(58)1029 1596 y Fv(eval-string)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)18 b(58)1029 1646 y Fv(even?)6 b Fu(.)f(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b(15)1029 1696 y Fv(exact->inexact)8 b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)22 b(16)1029 1747 y Fv(exact?)t Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 b(15)1029 +1797 y Fv(exec)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(39)1029 1847 y Fv(exit)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)21 b(63)1029 1898 y Fv(exp)10 b Fu(.)5 +b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)23 b(16)1029 1948 y Fv(expand-file-name)t +Fu(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)18 b(36)1029 1998 y Fv(expand-heap)5 +b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)18 +b(60)1029 2048 y Fv(export)t Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 b(31)1029 2099 +y Fv(export-all-symbol)o(s)8 b Fu(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 b(32)1029 +2149 y Fv(export-symbol)7 b Fu(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 +b(32)1029 2199 y Fv(expt)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(16)1029 +2250 y Fv(external-exists?)t Fu(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)18 +b(57)1029 2385 y Fa(F)1029 2435 y Fu(faq)5 b(.)h(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)19 +b(96)1029 2486 y Fv(file-exists?)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)26 b(37)1029 2536 y Fv(file-is-directory)o(?)8 +b Fu(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)24 b(37)1029 2586 y Fv(file-is-executabl)o(e?)9 +b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)22 b(37)1029 2636 y Fv(file-is-readable?)r +Fu(.)t(.)6 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)17 b(37)1029 2687 y Fv(file-is-regular?)t +Fu(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)18 b(37)1029 2737 y Fv(file-is-writable?)r +Fu(.)t(.)6 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)17 b(37)1029 2787 y Fv(find-module)5 +b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)18 +b(31)p eop +%%Page: 102 102 +102 101 bop 37 45 a FE(102)1236 b FB(STk)17 b FE(Reference)g(Man)o(ual) +p 37 64 1838 2 v 37 190 a Fv(floor)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(16)37 +240 y Fv(fluid-let)s Fu(.)5 b(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)17 b(9;)c(10)37 290 y Fv(flush)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(25)37 +340 y Fv(for-each)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)24 b(20)37 390 y Fv(force)6 b Fu(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 +b(20)37 439 y Fv(format)7 b Fu(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)21 b(24;)13 b(59)37 574 y Fa(G)37 624 +y Fu(garbage)h(collector)7 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)21 +b(56)37 673 y Fv(gc)11 b Fu(.)c(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)25 b(59)37 +723 y Fv(gc-stats)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)24 b(60)37 773 y Fv(gcd)10 b Fu(.)c(.)g(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 +b(16)37 823 y Fv(gensym)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(14)37 873 y Fv(get-internal-info)s +Fu(.)s(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)17 b(60)37 922 y Fv(get-keyword)5 +b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b(28)37 972 y Fv(get-output-string)6 b Fu(.)s(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(23;)13 +b(25)37 1022 y Fv(get-signal-handlers)8 b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)23 +b(41)37 1072 y Fv(get-widget-data)7 b Fu(.)s(.)g(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)21 +b(30)37 1122 y Fv(getcwd)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(38)37 1172 y Fv(getenv)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(39)37 1221 y Fv(getpid)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(38)37 +1271 y(getter)7 b(.)h(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)21 b(78)37 1321 y Fv(glob)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +25 b(37;)13 b(38)37 1371 y Fv(global-environment)7 b +Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)24 b(34)37 1506 y Fa(H)37 1556 y Fv(hash-table->list)5 +b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 b(44)37 1606 y Fv(hash-table-for-each)8 +b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)23 b(43)37 1656 y Fv(hash-table-get)8 b Fu(.)t(.)f(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)22 b(42)37 1705 y Fv(hash-table-hash)10 +b Fu(.)s(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)24 b(42;)13 b(41)37 1755 y Fv(hash-table-map)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(43)37 1805 y +Fv(hash-table-put!)7 b Fu(.)s(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)21 +b(42)37 1855 y Fv(hash-table-remove!)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 +b(43)37 1905 y Fv(hash-table-stats)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(44)37 1955 y Fv(hash-table?)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)19 b(42)37 2004 y Fv(help,)i(getting)9 +b Fu(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 b(72)37 2140 +y Fa(I)37 2190 y Fv(if)s Fu(.)7 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)18 +b(9)37 2239 y(ilisp)13 b(pac)o(k)n(age)d(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)24 b(97)37 2289 y Fv(imag-part)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)25 b(16;)13 +b(74)37 2339 y Fv(import)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(31)37 2389 y Fv(inexact->exact)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(16)37 2439 y +Fv(inexact?)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)24 b(15)37 2488 y(initial)12 b(en)o(vironmen)o(t)7 +b(.)e(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)21 b(11)37 2538 y Fv(input-port?)5 +b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 +b(22)37 2588 y Fv(input-string-port?)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 +b(22)37 2638 y Fv(inspect)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(61)37 2688 y(instance)5 +b(.)i(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +19 b(77)37 2738 y Fv(integer->char)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)24 b(17)37 2787 y Fv(integer?)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(15)1029 190 +y(ip)13 b(n)o(um)o(b)q(er)t(.)6 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)18 b(51)1029 325 y Fa(K)1029 375 +y Fu(k)o(eyw)o(ord)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)17 b(78)1029 424 y Fv(keyword->string)6 +b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)20 b(28)1029 474 y Fv(keyword?)10 +b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)23 +b(28)1029 610 y Fa(L)1029 659 y Fv(label)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b(29)1029 709 y Fv(lambda)5 b Fu(.)g(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)19 b(9)1029 759 +y Fv(last-pair)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)22 b(13)1029 809 y Fv(lcm)10 b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)23 +b(16)1029 859 y Fv(length)t Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 b(12)1029 908 y +Fv(let)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)25 b(9)1029 958 y Fv(let*)9 +b Fu(.)c(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)23 b(9)1029 1008 y Fv(letrec)t Fu(.)5 +b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +18 b(10)1029 1058 y Fv(list)10 b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)25 b(12;)12 b(13)1029 1108 +y Fv(list*)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)20 b(13)1029 1158 y Fv(list->string)9 +b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(19)1029 +1207 y Fv(list->vector)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(20)1029 1257 y Fv(list-ref)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)23 b(12)1029 1307 y Fv(list-tail)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 +b(12)1029 1357 y Fv(list?)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b(12)1029 1407 +y Fv(load)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(26)1029 1456 y Fv(log)10 +b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)23 b(16)1029 1592 y Fa(M)1029 1642 +y Fv(machine-type)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(58)1029 1691 y Fv(macro)9 b Fu(.)c(.)h(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)24 b(35;)12 b(36)1029 1741 y Fv(macro-body)6 +b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)20 +b(36)1029 1791 y Fv(macro-expand)6 b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)20 +b(35;)12 b(36)1029 1841 y Fv(macro-expand-1)c Fu(.)t(.)e(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)22 b(35)1029 1891 y(macro-expansion)9 b(.)c(.)h(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)23 b(35)1029 1941 y Fv(macro?)t Fu(.)5 b(.)h(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 +b(35)1029 1990 y Fv(magnitude)9 b Fu(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)26 b(16;)12 b(74)1029 2040 y Fv(make)c Fu(.)d(.)h(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(77)1029 2090 y Fv(make-client-socke)o(t)8 b Fu(.)e(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 +b(51)1029 2140 y Fv(make-hash-table)6 b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +20 b(41)1029 2190 y Fv(make-keyword)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)26 b(28)1029 2239 y Fv(make-polar)s Fu(.)t(.)7 +b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)18 b(16;)13 b(73,)f(80)1029 2289 y +Fv(make-rectangular)c Fu(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)25 b(16;)13 b(73,)f(80)1029 2339 y Fv +(make-server-socke)o(t)t Fu(.)t(.)6 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 b(52;)12 b(51)1029 +2389 y Fv(make-string)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)18 b(18)1029 2439 y Fv(make-vector)5 b Fu(.)s(.)i(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)18 b(19)1029 2488 y Fv(map)10 +b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)23 b(20)1029 2538 y Fv(match-case)9 +b Fu(.)t(.)e(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(47;)12 b(91)1029 +2588 y Fv(match-lambda)6 b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)20 +b(47;)12 b(91)1029 2638 y Fv(max)e Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)23 +b(15)1029 2688 y Fv(member)t Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 b(12)1029 2738 +y Fv(memq)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(12)1029 2787 y Fv(memv)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)21 b(12)p eop +%%Page: 103 103 +103 102 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1236 +b(103)p 37 64 1838 2 v 37 190 a Fv(menu)8 b Fu(.)e(.)g(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)22 +b(29)37 240 y Fv(min)10 b Fu(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b(15)37 +290 y Fv(module-environment)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 b(34)37 +340 y Fv(module-exports)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 +b(33)37 390 y Fv(module-imports)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +22 b(33)37 440 y Fv(module-name)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)19 b(33)37 489 y Fv(module-symbols)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(33)37 539 y +Fv(module?)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)26 b(31)37 589 y Fv(modulo)t Fu(.)6 b(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 +b(15)37 716 y Fa(N)37 766 y Fv(negative?)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(15)37 816 y Fv(newline)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(24)37 865 y Fv(next-method)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)19 b(83)37 915 y Fv(not)10 b Fu(.)c(.)g(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 +b(11)37 965 y Fv(null?)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(12)37 1015 y +Fv(number->string)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 +b(16)37 1065 y Fv(number?)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(14)37 1115 y Fv(numerator)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)25 b(16;)13 +b(73)37 1253 y Fa(O)37 1303 y Fv(obj)s Fu(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)17 b(13;)c(39)37 +1352 y Fv(odd?)8 b Fu(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)22 b(15)37 1402 y Fv(open-file)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(27)37 1452 y Fv(open-input-file)7 b Fu(.)s(.)g(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)21 +b(23)37 1502 y Fv(open-input-string)s Fu(.)s(.)7 b(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)17 +b(23)37 1552 y Fv(open-output-file)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(23)37 1602 y Fv(open-output-string)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 +b(23)37 1651 y Fv(or)s Fu(.)7 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)18 +b(9)37 1701 y Fv(output-port?)10 b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)26 b(22)37 1751 y Fv(output-string-port?)8 b +Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)23 b(22)37 1891 y Fa(P)37 1940 y Fv(pair?)6 +b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)20 b(12)37 1990 y Fv(parent-environment)7 +b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)24 b(34)37 2040 y(pattern)15 b(matc)o(hing)s(.)5 +b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)17 b(46)37 2090 y Fv(peek-char)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(24)37 2140 y(pid)t(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(49)37 2189 +y Fv(port->list)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)20 b(27)37 2239 y Fv(port->sexp-list)7 b Fu(.)s(.)g(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)21 b(27)37 2289 y Fv(port->string)10 b Fu(.)c(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)26 b(27)37 2339 y Fv(port->string-list)s +Fu(.)s(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)17 b(27)37 2389 y Fv(positive?)8 +b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(15)37 2439 y(p)q(osix.1)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(39)37 2488 y Fv(primitive?)6 +b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)20 +b(20)37 2538 y Fv(procedure-body)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +22 b(21)37 2588 y Fv(procedure-environmen)o(t)5 b Fu(.)t(.)h(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)19 +b(34)37 2638 y Fv(procedure?)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)20 b(20)37 2688 y Fv(process-alive?)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)22 b(49)37 2738 y +Fv(process-continue)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 +b(50)37 2787 y Fv(process-error)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)24 b(50)1029 190 y Fv(process-exit-stat)o(us)9 b +Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)22 b(50)1029 242 y Fv(process-input)7 b Fu(.)g(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)24 b(50)1029 293 y Fv(process-kill)9 +b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(50)1029 +345 y Fv(process-list)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(50)1029 396 y Fv(process-output)8 b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)22 b(50)1029 447 y Fv(process-pid)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)18 b(49)1029 499 y Fv(process-send-sign)o(al)9 +b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)22 b(50)1029 550 y Fv(process-stop)9 b Fu(.)e(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)26 b(50)1029 602 y Fv(process-wait)9 +b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(50)1029 +653 y Fv(process?)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)23 b(49)1029 705 y Fv(promise?)10 b Fu(.)t(.)d(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)23 b(20)1029 +756 y Fv(provide)6 b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)20 b(26;)12 b(97)1029 807 y Fv(provided?)c Fu(.)t(.)f(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 b(26)1029 975 +y Fa(Q)1029 1026 y Fv(quasiquote)6 b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)20 b(10)1029 1078 y Fv(quit)8 b Fu(.)d(.)h(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(63)1029 1129 y Fv(quote)7 b Fu(.)e(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)21 b(8)1029 +1180 y Fv(quotient)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)23 b(15)1029 1348 y Fa(R)1029 1399 y +Fu(r4rs)12 b(.)7 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)25 b(7;)13 b(97)1029 1451 y Fv(random)t +Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)18 b(58)1029 1502 y Fv(rational?)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 b(15)1029 1554 y Fv(rationalize)8 +b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(16;)12 b(73)1029 +1605 y Fv(read)f Fu(.)6 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)26 b(24;)13 b(8)1029 1656 y Fv(read-char)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 +b(24)1029 1708 y Fv(read-from-string)t Fu(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)18 +b(58)1029 1759 y Fv(read-line)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)22 b(24)1029 1811 y Fv(real-part)9 +b Fu(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)26 b(16;)12 +b(74)1029 1862 y Fv(real?)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b(15)1029 1913 +y Fv(regexp-replace)8 b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(46)1029 1965 y Fv(regexp-replace-al)o(l)8 b Fu(.)e(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 +b(46)1029 2016 y Fv(regexp?)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 b(45)1029 2068 y(regular)14 +b(expression)7 b(.)g(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(44)1029 +2119 y Fv(remainder)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)22 b(15)1029 2170 y Fv(remove)t Fu(.)5 b(.)h(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)18 +b(13)1029 2222 y Fv(remove-file)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)18 b(38)1029 2273 y Fv(remq)8 b Fu(.)d(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(13)1029 2325 y Fv(remv)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(13)1029 +2376 y Fv(rename-file)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)18 b(38)1029 2428 y Fv(repl-display-prom)o(pt)9 +b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)22 b(72)1029 2479 y Fv(repl-display-resu)o(lt)9 +b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)22 b(72)1029 2530 y Fv(report-error)9 b Fu(.)e(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)26 b(72)1029 2582 y Fv(require)6 +b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 +b(26;)12 b(97)1029 2633 y Fv(reverse)e Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 b(12)1029 2685 +y(ro)q(ot)14 b(windo)o(w)c(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)25 b(68)1029 2736 y Fv(round)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b(16)1029 +2787 y Fv(run-process)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)18 b(49)p eop +%%Page: 104 104 +104 103 bop 37 45 a FE(104)1236 b FB(STk)17 b FE(Reference)g(Man)o(ual) +p 37 64 1838 2 v 37 194 a Fa(S)37 244 y Fu(sc)o(heme)e(rep)q(ository)8 +b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)22 b(98)37 294 y Fv(select-module)8 +b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 b(33)37 343 +y Fv(set!)6 b Fu(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)20 b(9;)13 b(78,)g(79)37 393 y Fv(set-car!)d Fu(.)5 +b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 +b(12)37 443 y Fv(set-cdr!)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)24 b(12)37 493 y Fv(set-random-seed!)5 +b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)19 b(58)37 543 y Fv(set-signal-handler!)8 +b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)23 b(40)37 593 y Fv(set-widget-data!)5 b +Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)19 b(30)37 643 y Fv(setenv!)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(39)37 693 y(setter)10 b(.)e(.)e(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b(78)37 742 y Fv(sigabrt)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(39)37 792 y Fv(sigalrm)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(39)37 842 y Fv(sigbus)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(40)37 892 y Fv(sigchld)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(39)37 942 +y Fv(sigcld)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)18 b(40)37 992 y Fv(sigcont)11 b +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(39)37 1042 y Fv(sigfpe)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(39)37 1092 y Fv(sighup)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(39)37 1141 y Fv(sigill)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(39)37 +1191 y Fv(sigint)7 b Fu(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)21 b(39;)13 b(40)37 1241 y Fv(sigio)6 b Fu(.)g(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 +b(40)37 1291 y Fv(sigiot)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(39)37 1341 y Fv(sigkill)6 +b Fu(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)19 +b(39;)13 b(40)37 1391 y Fv(siglost)e Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(40)37 1441 y +Fv(sigpipe)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)26 b(39)37 1491 y Fv(sigpoll)11 b Fu(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(40)37 1540 y Fv(sigprof)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(40)37 1590 y Fv(sigsegv)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(39)37 1640 y Fv(sigstop)6 b Fu(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)19 b(39;)13 b(40)37 1690 y Fv(sigsys)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(40)37 1740 y Fv(sigterm)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(39)37 1790 +y Fv(sigtrap)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)26 b(39)37 1840 y Fv(sigttin)11 b Fu(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(39)37 1890 y Fv(sigttou)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(39)37 1939 y Fv(sigurg)t +Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)18 b(40)37 1989 y Fv(sigusr1)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(39)37 2039 +y Fv(sigwinch)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)24 b(40)37 2089 y Fv(sigxcpu)11 b Fu(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(40)37 2139 y Fv(sigxfsz)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(40)37 2189 y Fv(sin)10 +b Fu(.)c(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)24 b(16)37 2239 y(slib)14 b(pac)o(k)n(age)7 +b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)21 +b(97)37 2289 y(slot)10 b(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(75)37 2338 +y Fv(slot-ref)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)24 b(77)37 2388 y Fv(slot-set!)8 b Fu(.)d(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(77)37 2438 y +Fv(socket-accept-connec)o(tion)9 b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)23 b(52)37 2488 y Fv(socket-down?)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)26 b(52)37 +2538 y Fv(socket-dup)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)20 b(53)37 2588 y Fv(socket-host-address)8 b +Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)23 b(51)37 2638 y Fv(socket-host-name)5 b +Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)19 b(51)37 2688 y Fv(socket-input)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)26 b(51)37 +2737 y Fv(socket-local-address)6 b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)21 b(51)37 +2787 y Fv(socket-output)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 +b(51)1029 190 y Fv(socket-port-numbe)o(r)8 b Fu(.)e(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 +b(51)1029 240 y Fv(socket-shutdown)6 b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +20 b(52)1029 291 y Fv(socket?)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 b(51)1029 341 y Fv(sort)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)25 +b(60;)12 b(38)1029 391 y Fv(split-string)d Fu(.)e(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)26 b(19)1029 441 y Fv(sqrt)8 b Fu(.)d(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 +b(16)1029 491 y Fv(string)7 b Fu(.)e(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)22 b(18;)12 b(19)1029 541 y Fv(string->list)d +Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(18)1029 +591 y Fv(string->number)8 b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 +b(16)1029 641 y Fv(string->regexp)8 b Fu(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)26 +b(44;)12 b(45)1029 691 y Fv(string->symbol)c Fu(.)t(.)e(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)22 b(14)1029 741 y Fv(string->widget)8 b Fu(.)t(.)e(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)22 b(29)1029 791 y Fv(string-append)7 b Fu(.)g(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)24 b(18)1029 841 y Fv(string-ci<=?)9 +b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(18)1029 +891 y Fv(string-ci=?)9 +b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(18)1029 +1042 y Fv(string-ci>?)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)18 b(18)1029 1092 y Fv(string-copy)5 b Fu(.)s(.)i(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)18 b(19)1029 1142 y Fv(string-fill!)9 +b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(19)1029 +1192 y Fv(string-find?)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(19)1029 1242 y Fv(string-index)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)26 b(19)1029 1292 y Fv(string-length)7 b +Fu(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 b(18)1029 1342 +y Fv(string-lower)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 +b(19)1029 1392 y Fv(string-ref)6 b Fu(.)t(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)20 b(18)1029 1442 y Fv(string-set!)5 +b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)18 +b(18)1029 1492 y Fv(string-upper)9 b Fu(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)26 b(19)1029 1542 y Fv(string<=?)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 b(18)1029 1592 y Fv(string=?)8 +b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 +b(18)1029 1742 y Fv(string>?)10 b Fu(.)t(.)d(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)23 b(18)1029 1792 y Fv(string?)10 +b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 +b(18)1029 1843 y Fv(substring)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)22 b(18)1029 1893 y Fv(symbol->string)8 +b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(14)1029 1943 +y Fv(symbol-bound?)7 b Fu(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 +b(35)1029 1993 y Fv(symbol?)10 b Fu(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)25 b(14)1029 2043 y Fv(system)t +Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)18 b(38)1029 2187 y Fa(T)1029 2237 y Fv(tan)10 +b Fu(.)5 b(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)23 b(16)1029 2287 y Fv(temporary-file-na)o(me)9 +b Fu(.)s(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)22 b(38)1029 2337 y Fv(the-environment)6 +b Fu(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)20 b(34)1029 2387 y(tilde)13 +b(expansion)6 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)20 +b(36)1029 2437 y Fv(time)8 b Fu(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)21 b(61)1029 +2487 y(tk)14 b(to)q(olkit)9 b(.)c(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)23 +b(7;)14 b(29,)e(59)1029 2537 y Fv(tk-command)s Fu(.)t(.)7 +b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)18 b(29;)13 b(30,)f(68)1029 2587 y +Fv(tk-command?)5 b Fu(.)s(.)i(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +18 b(29)1029 2637 y(to)q(olkit)8 b(.)d(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)22 b(7;)14 b(29,)e(59)1029 2687 y(top)i(lev)o(el)f(en)o +(vironmen)o(t)7 b(.)e(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)21 b(11;)13 b(34,)f(78)1029 2737 y Fv(trace-var)c +Fu(.)t(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)22 +b(59)1029 2787 y Fv(transcript-off)5 b Fu(.)t(.)h(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)20 b(26;)13 +b(27,)f(73)p eop +%%Page: 105 105 +105 104 bop 37 45 a FB(STk)17 b FE(Reference)h(Man)o(ual)1236 +b(105)p 37 64 1838 2 v 37 190 a Fv(transcript-on)7 b +Fu(.)t(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)21 b(26;)13 b(27,)g(73)37 240 y Fv(truncate)d +Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)24 +b(16)37 290 y Fv(try-load)10 b Fu(.)5 b(.)h(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)24 b(26)37 429 y Fa(U)37 479 +y Fv(uncode)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)18 b(60)37 529 y Fv(unless)9 b Fu(.)c(.)h(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)23 b(9;)13 +b(11)37 579 y Fv(until)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(11)37 629 y +Fv(untrace-var)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +19 b(59)37 755 y Fa(V)37 805 y Fv(values)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)18 b(91)37 +855 y Fv(vector)t Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)18 b(19)37 905 y Fv(vector->list)10 +b Fu(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)26 b(20)37 +955 y Fv(vector-copy)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)19 b(20)37 1004 y Fv(vector-fill!)10 b Fu(.)c(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)26 b(20)37 1054 y Fv(vector-length)8 +b Fu(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)24 b(19)37 1104 +y Fv(vector-ref)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +h(.)20 b(19)37 1154 y Fv(vector-resize)8 b Fu(.)e(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)24 b(20)37 1204 y Fv(vector-set!)5 b Fu(.)t(.)h(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b(19)37 1254 y Fv(vector?)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(19)37 1303 y Fv(version)11 b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)26 b(58)37 1353 y Fv(view)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +25 b(61;)13 b(63)37 1491 y Fa(W)37 1541 y Fv(when)c Fu(.)d(.)g(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)23 +b(9)37 1591 y Fv(when-port-readable)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 +b(25)37 1641 y Fv(when-port-writable)7 b Fu(.)f(.)h(.)f(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)24 +b(26)37 1691 y Fv(when-socket-ready)s Fu(.)s(.)7 b(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)17 +b(53)37 1740 y Fv(while)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(11)37 1790 y(widget)10 +b(.)c(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)24 b(29)37 1840 y Fv(widget->string)8 b Fu(.)t(.)f(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)22 b(29)37 1890 y Fv(widget-name)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)19 b(30)37 1940 y Fv(widget?)11 +b Fu(.)6 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.) +26 b(29)37 1989 y Fv(with-input-from-file)6 b Fu(.)t(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)21 +b(22)37 2039 y Fv(with-input-from-stri)o(ng)s Fu(.)t(.)6 +b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)17 +b(23)37 2089 y Fv(with-module)5 b Fu(.)t(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)19 b(32)37 2139 y Fv(with-output-to-file)8 +b Fu(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)23 b(22)37 2189 y Fv(with-output-to-strin)o(g)5 +b Fu(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)19 b(23)37 2239 y Fv(write)6 b Fu(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)20 b(24)37 +2288 y Fv(write-char)6 b Fu(.)f(.)h(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +g(.)h(.)20 b(24)37 2415 y Fa(X)37 2465 y Fu(x)14 b(windo)o(w)f(system)7 +b(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)21 b(7)37 2603 +y Fa(Z)37 2653 y Fv(zero?)8 b Fu(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)22 b(15)p eop %%Trailer end userdict /end-hook known{end-hook}if diff --git a/Doc/Reference/manual.tex b/Doc/Reference/manual.tex index 38256c8..cda7503 100644 --- a/Doc/Reference/manual.tex +++ b/Doc/Reference/manual.tex @@ -13,10 +13,10 @@ % % Author: Erick Gallesio [eg@unice.fr] % Creation date: ??-Nov-1993 ??:?? -% Last file update: 10-Apr-1998 09:07 +% Last file update: 20-Apr-1998 10:07 % -\documentclass[10pt,a4paper]{book} +\documentclass[11pt,a4paper]{book} \usepackage{a4wide} \usepackage{fancyheadings} \usepackage{epsfig} @@ -49,6 +49,9 @@ \newcommand{\stklos}{{\sc STklos}} \newcommand{\doc}{{\em Identical to R$^{4}$RS.}} \newcommand{\rrrr}{{\em R$^{4}\!RS$}} +\newcommand{\rthree}{{\em R$^{3}\!RS$}} +\newcommand{\rfour}{{\em R$^{4}\!RS$}} +\newcommand{\rfive}{{\em R$^{5}\!RS$}} \newcommand{\saut}{\vskip2mm} \newcommand{\tilda}{{\tt\char126}} \newcommand{\etoile}{{\tt\char42}} diff --git a/Extensions/Makefile.in b/Extensions/Makefile.in index 1c2dfc6..1aafd14 100644 --- a/Extensions/Makefile.in +++ b/Extensions/Makefile.in @@ -1,5 +1,5 @@ # -# Copyright © 1993-1996 Erick Gallesio - I3S-CNRS/ESSI +# Copyright © 1993-1998 Erick Gallesio - I3S-CNRS/ESSI # # # Permission to use, copy, and/or distribute this software and its @@ -12,7 +12,7 @@ # # Author: Erick Gallesio [eg@kaolin.unice.fr] # Creation date: 6-Mar-1994 15:49 -# Last file update: 10-Oct-1996 09:35 +# Last file update: 30-Apr-1998 10:57 include ../config.make @@ -26,7 +26,7 @@ CFLAGS= $(SH_CCFLAGS) $(STKCFLAGS) $(DFLGS) -DUSE_TK @DEFS@ \ .SUFFIXES: .$(SH_SUFFIX) .o .c .o.$(SH_SUFFIX): - -$(SH_LOADER) $(SH_LDFLAGS) $*.$(SH_SUFFIX) $< + $(SH_LOADER) $(SH_LDFLAGS) $*.$(SH_SUFFIX) $< if test -f a.out ;then mv a.out $*.$(SH_SUFFIX); fi diff --git a/Extensions/jpeg.c b/Extensions/jpeg.c index 238a467..283146e 100644 --- a/Extensions/jpeg.c +++ b/Extensions/jpeg.c @@ -7,7 +7,7 @@ * Department of Computer Science, * University of California, Berkeley * - * $Id: jpeg.c 1.1 Sat, 03 Jan 1998 13:46:25 +0100 eg $ + * $Id: jpeg.c 1.1 Sat, 03 Jan 1998 12:46:25 +0000 eg $ * * Parts of this file are based on code under the following * copyrights. Include these copyrights if you do anything diff --git a/Extensions/posix.c b/Extensions/posix.c index cbce30d..a6c60f6 100644 --- a/Extensions/posix.c +++ b/Extensions/posix.c @@ -16,7 +16,7 @@ * This software is a derivative work of other copyrighted softwares; the * copyright notices of these softwares are placed in the file COPYRIGHTS * - * $Id: posix.c 1.1 Sat, 03 Jan 1998 13:46:25 +0100 eg $ + * $Id: posix.c 1.1 Sat, 03 Jan 1998 12:46:25 +0000 eg $ * * Author: Erick Gallesio [eg@kaolin.unice.fr] * Creation date: 14-Mar-1995 20:14 diff --git a/Help/BlueIndex.html b/Help/BlueIndex.html index d714b7b..8972122 100644 --- a/Help/BlueIndex.html +++ b/Help/BlueIndex.html @@ -3,20 +3,20 @@

    The STk blue pages


    -after          bell           bind           
    -bindtags       bitmap         button         
    -canvas         checkbutton    clipboard      
    -destroy        entry          event          
    -focus          frame          grab           
    -grid           image          label          
    -listbox        lower          menu           
    -menubutton     message        option         
    -options        pack           photo          
    -place          radiobutton    raise          
    -scale          scrollbar      selection      
    -send           text           tk             
    -tkvars         tkwait         toplevel       
    -update         winfo          wm             
    +after               bell                bind                
    +bindtags            bitmap              button              
    +canvas              checkbutton         clipboard           
    +destroy             entry               event               
    +focus               frame               grab                
    +grid                image               label               
    +listbox             lower               menu                
    +menubutton          message             option              
    +options             pack                photo               
    +place               radiobutton         raise               
    +scale               scrollbar           selection           
    +send                text                tk                  
    +tkvars              tkwait              toplevel            
    +update              winfo               wm                  
     
     

    Back to the STk main page diff --git a/Help/GreenIndex.html b/Help/GreenIndex.html index 56298ac..c61a93e 100644 --- a/Help/GreenIndex.html +++ b/Help/GreenIndex.html @@ -3,9 +3,11 @@

    The STk green pages


    -create-image   focus-next     listener       
    -make-dialog    option-menu    palette        
    -popup          report-error   
    +change-image        find-image          focus-next          
    +free-image          listener            make-dialog         
    +make-image          option-menu         palette             
    +popup               repl-display-prompt repl-display-result 
    +report-error        
     

    Back to the STk main page diff --git a/Help/Makefile b/Help/Makefile index c1addb9..e85b5e2 100644 --- a/Help/Makefile +++ b/Help/Makefile @@ -3,7 +3,7 @@ # # Author: Erick Gallesio [eg@unice.fr] # Creation date: 2-Oct-1995 21:17 -# Last file update: 30-Oct-1996 12:17 +# Last file update: 27-Apr-1998 12:23 include ../config.make @@ -20,7 +20,7 @@ install: chmod 0755 $(HLP_DIR)/Img $(CP) Img/*.gif $(HLP_DIR)/Img chmod 0644 $(HLP_DIR)/Img/*.gif - ../Src/test-stk -no -f make-link.stk $(HLP_DIR) +# ../Src/test-stk -no -f make-link.stk $(HLP_DIR) install.libs: diff --git a/Help/STk-hlp.html b/Help/STk-hlp.html index 2791283..c63f738 100644 --- a/Help/STk-hlp.html +++ b/Help/STk-hlp.html @@ -39,25 +39,26 @@ Hereafter is the complete list of STk help pages currently available:
    -after          bell           bind           
    -bindtags       bitmap         button         
    -canvas         checkbutton    clipboard      
    -create-image   destroy        entry          
    -event          focus          focus-next     
    -frame          ftp            grab           
    -grid           image          jpeg           
    -label          listbox        listener       
    -lower          make-dialog    menu           
    -menubutton     message        option         
    -option-menu    options        pack           
    -palette        photo          pixmap         
    -place          popup          posix          
    -radiobutton    raise          report-error   
    -scale          scrollbar      selection      
    -send           text           tk             
    -tkvars         tkwait         toplevel       
    -update         winfo          wm             
    -
    +after               bell                bind                
    +bindtags            bitmap              button              
    +canvas              change-image        checkbutton         
    +clipboard           destroy             entry               
    +event               find-image          focus               
    +focus-next          frame               free-image          
    +ftp                 grab                grid                
    +image               jpeg                label               
    +listbox             listener            lower               
    +make-dialog         make-image          menu                
    +menubutton          message             option              
    +option-menu         options             pack                
    +palette             photo               pixmap              
    +place               popup               posix               
    +radiobutton         raise               repl-display-prompt 
    +repl-display-result report-error        scale               
    +scrollbar           selection           send                
    +text                tk                  tkvars              
    +tkwait              toplevel            update              
    +winfo               wm                  
     
    diff --git a/Help/YellowIndex.html b/Help/YellowIndex.html index ac7d17c..8200224 100644 --- a/Help/YellowIndex.html +++ b/Help/YellowIndex.html @@ -3,8 +3,8 @@

    The STk yellow pages


    -ftp            jpeg           pixmap         
    -posix          
    +ftp                 jpeg                pixmap              
    +posix               
     

    Back to the STk main page diff --git a/Help/bitmap.n.html b/Help/bitmap.n.html index ec6eb19..fc5e0b6 100644 --- a/Help/bitmap.n.html +++ b/Help/bitmap.n.html @@ -100,7 +100,7 @@ this case the procedure returns an empty string.

    SEE ALSO

    -create-image, image, jpeg, photo, pixmap +make-image, image, jpeg, photo, pixmap

    Back to the STk main page diff --git a/Help/button.n.html b/Help/button.n.html index d6ee863..7c3104e 100644 --- a/Help/button.n.html +++ b/Help/button.n.html @@ -49,8 +49,7 @@ ring.

    Option keyword: :environment
    STklos slot name: environment
    Specifies the environment in which the :textvariable must be taken. -By convention, the value #f denotes the -STk global environment (the default value of this option is false). +By default, the value of this option is the STk global environment.

    Name: height diff --git a/Help/create-image.n.html b/Help/change-image.n.html similarity index 77% rename from Help/create-image.n.html rename to Help/change-image.n.html index a9df1c6..a350b83 100644 --- a/Help/create-image.n.html +++ b/Help/change-image.n.html @@ -1,4 +1,4 @@ -STk procedure - create-image manual page +STk procedure - make-image manual page

    create-image, find-image, change-image, free-image

    @@ -8,21 +8,21 @@ Tk

    SYNOPSIS

    -(create-image key create image ?options?)
    +(make-image key create image ?options?)
    (find-image key)
    (change-image key create image options)
    (free-image key)

    DESCRIPTION

    -create-image is a STk procedure which simplifies Tk images +make-image is a STk procedure which simplifies Tk images creation by providing a homogeneous way to create an image, independently of its coding format. The first argument of -create-image is a string which identifies the image; if an image +make-image is a string which identifies the image; if an image with this key has been already loaded in memory, it will not be loaded -again and create-image will return it. If no option is given, +again and make-image will return it. If no option is given, the identifying image key is taken as a file name (the file is searched using the variable *image-path*, which must contain a set of prefix pathnames to prepend to the given filename). -If options are passed to the create-image procedure they must follow +If options are passed to the make-image procedure they must follow the convention of the options passed in image create just after the image format. If the image cannot be created, this procedure returns #f.

    @@ -31,10 +31,10 @@ Hereafter is a simple usage of this procedure:

    (require "image")
     (require "pixmap")
     
    -(define img1 (create-image "a pixmap" :file "exit.xpm"))
    -(define img2 (create-image "a bitmap" :file "default.xbm"))
    -(define img3 (create-image "a pixmap"))
    -(define img4 (create-image "x.xpm"))
    +(define img1 (make-image "a pixmap" :file "exit.xpm")) +(define img2 (make-image "a bitmap" :file "default.xbm")) +(define img3 (make-image "a pixmap")) +(define img4 (make-image "x.xpm")) In this case, img3 is identical to img1 since they use the same key. Img4 is the image associated to the file "x.xpm" found according to the *image-path* varaiable. @@ -45,7 +45,7 @@ the *image-path* varaiable.

    change-image changes the content of an image previously created with -create-image. Options are the identical to create-image +make-image. Options are the identical to make-image options.

    Example: diff --git a/Help/checkbutton.n.html b/Help/checkbutton.n.html index efaaa07..fa426b9 100644 --- a/Help/checkbutton.n.html +++ b/Help/checkbutton.n.html @@ -31,15 +31,19 @@ is typically invoked when mouse button 1 is released over the button window. The button's global variable (:variable option) will be updated before the procedure is invoked. -OP :environment environment Environment environment -Specifies the environment in which the :textvariable or -:variablemust be taken. By convention, the value #f denotes the -STk global environment (the default value of this option is false). +

    +

    +

    Name: environment +
    Class: Environment +
    Option keyword: :environment +
    STklos slot name: environment +
    Specifies the environment in which the :textvariable must be taken. +By default, the value of this option is the STk global environment.

    Name: height
    Class: Height -
    Option keyword: :height +
    Option keyword: :height
    STklos slot name: height
    Specifies a desired height for the button. If an image or bitmap is being displayed in the button then the value is in @@ -51,7 +55,7 @@ from the size of the image or bitmap or text being displayed in it.

    Name: indicatorOn
    Class: IndicatorOn -
    Option keyword: :indicatoron +
    Option keyword: :indicatoron
    STklos slot name: indicator-on
    Specifies whether or not the indicator should be drawn. Must be a proper boolean value. If false, the relief option is @@ -61,7 +65,7 @@ selected and raised otherwise.

    Name: offValue
    Class: Value -
    Option keyword: :offvalue +
    Option keyword: :offvalue
    STklos slot name: off-value
    Specifies value to store in the button's associated variable whenever this button is deselected. Defaults to #f. @@ -69,7 +73,7 @@ this button is deselected. Defaults to #f.

    Name: onValue
    Class: Value -
    Option keyword: :onvalue +
    Option keyword: :onvalue
    STklos slot name: on-value
    Specifies value to store in the button's associated variable whenever this button is selected. Defaults to #t. @@ -77,7 +81,7 @@ this button is selected. Defaults to #t.

    Name: selectColor
    Class: Background -
    Option keyword: :selectcolor +
    Option keyword: :selectcolor
    STklos slot name: select-color
    Specifies a background color to use when the button is selected. If indicatorOn is true then the color applies to the indicator. @@ -92,7 +96,7 @@ displaying when the widget is selected.

    Name: selectImage
    Class: SelectImage -
    Option keyword: :selectimage +
    Option keyword: :selectimage
    STklos slot name: select-image
    Specifies an image to display (in place of the image option) when the checkbutton is selected. @@ -102,7 +106,7 @@ specified.

    Name: state
    Class: State -
    Option keyword: :state +
    Option keyword: :state
    STklos slot name: state
    Specifies one of three states for the checkbutton: normal, active, or disabled. In normal state the checkbutton is displayed using the @@ -118,7 +122,7 @@ In this state the disabledForeground and

    Name: stringvalue
    Class: StringValue -
    Option keyword: :stringvalue +
    Option keyword: :stringvalue
    STklos slot name: string-value
    Specifies if the value set to variable by :offvalue or :onvalue must be stringified. For instance, with @@ -137,7 +141,7 @@ it is set to 10 or 20. Default value for :stringvalue is #t.

    Name: variable
    Class: Variable -
    Option keyword: :variable +
    Option keyword: :variable
    STklos slot name: variable
    Specifies name of global variable to set to indicate whether or not this button is selected. Defaults to the name of the @@ -147,7 +151,7 @@ window's path name).

    Name: width
    Class: Width -
    Option keyword: :width +
    Option keyword: :width
    STklos slot name: width
    Specifies a desired width for the button. If an image or bitmap is being displayed in the button then the value is in @@ -157,7 +161,7 @@ If this option isn't specified, the button's desired width is computed from the size of the image or bitmap or text being displayed in it.

    -

    DESCRIPTION

    +

    DESCRIPTION

    The checkbutton procedure creates a new window (given by the widget-name argument) and makes it into a checkbutton widget. Additional @@ -211,7 +215,7 @@ In addition, each checkbutton monitors its associated variable and automatically selects and deselects itself when the variables value changes to and from the button's ``on'' value. -

    WIDGET PROCEDURE

    +

    WIDGET PROCEDURE

    The checkbutton procedure creates a new STk procedure whose name is widget-name. This procedure may be used to invoke various @@ -222,13 +226,13 @@ determine the exact behavior of the procedure. The following procedures are possible for checkbutton widgets:

    -
    (widget-name 'cget option)
    +
    (widget-name 'cget option)
    Returns the current value of the configuration option given by option. Option may have any of the values accepted by the checkbutton procedure.

    -

    (widget-name 'configure ?option? ?value option value ...?)
    +
    (widget-name 'configure ?option? ?value option value ...?)
    Query or modify the configuration options of the widget. If no option is specified, returns a list describing all of the available options for widget-name (see Tk_ConfigureInfo for @@ -242,35 +246,35 @@ this case the procedure returns an empty list. Option may have any of the values accepted by the checkbutton procedure.

    -

    (widget-name 'deselect)
    +
    (widget-name 'deselect)
    Deselects the checkbutton and sets the associated variable to its ``off'' value.

    -

    (widget-name 'flash)
    +
    (widget-name 'flash)
    Flashes the checkbutton. This is accomplished by redisplaying the checkbutton several times, alternating between active and normal colors. At the end of the flash the checkbutton is left in the same normal/active state as when the procedure was invoked. This procedure is ignored if the checkbutton's state is disabled.

    -

    (widget-name 'invoke)
    +
    (widget-name 'invoke)
    Does just what would have happened if the user invoked the checkbutton with the mouse: toggle the selection state of the button and invoke the STk procedure associated with the checkbutton, if there is one (return value is undefined) This procedure is ignored if the checkbutton's state is disabled.

    -

    (widget-name 'select)
    +
    (widget-name 'select)
    Selects the checkbutton and sets the associated variable to its ``on'' value.

    -

    (widget-name 'toggle)
    +
    (widget-name 'toggle)
    Toggles the selection state of the button, redisplaying it and modifying its associated variable to reflect the new state.

    -

    BINDINGS

    +

    BINDINGS

    Tk automatically creates class bindings for checkbuttons that give them the following default behavior:
      @@ -297,7 +301,7 @@ actions occur: the checkbutton is completely non-responsive. The behavior of checkbuttons can be changed by defining new bindings for individual widgets or by redefining the class bindings. -

      SEE ALSO

      +

      SEE ALSO

      button, radiobutton

      Back to the STk main page diff --git a/Help/entry.n.html b/Help/entry.n.html index e2c2b73..1df3127 100644 --- a/Help/entry.n.html +++ b/Help/entry.n.html @@ -27,8 +27,7 @@

      Option keyword: :environment
      STklos slot name: environment
      Specifies the environment in which the :textvariable must be taken. -By convention, the value #f denotes the -STk global environment (the default value of this option is false). +By default, the value of this option is the STk global environment.

      Name: show diff --git a/Help/find-image.n.html b/Help/find-image.n.html new file mode 100644 index 0000000..a350b83 --- /dev/null +++ b/Help/find-image.n.html @@ -0,0 +1,69 @@ +STk procedure - make-image manual page +
      + +

      create-image, find-image, change-image, free-image

      +an easier way to manipulate Tk images +

      +

      PACKAGE

      +Tk + +

      SYNOPSIS

      +(make-image key create image ?options?)
      +(find-image key)
      +(change-image key create image options)
      +(free-image key)
      +

      DESCRIPTION

      +make-image is a STk procedure which simplifies Tk images +creation by providing a homogeneous way to create an image, +independently of its coding format. The first argument of +make-image is a string which identifies the image; if an image +with this key has been already loaded in memory, it will not be loaded +again and make-image will return it. If no option is given, +the identifying image key is taken as a file name (the file is searched +using the variable *image-path*, which must contain a set of +prefix pathnames to prepend to the given filename). +If options are passed to the make-image procedure they must follow +the convention of the options passed in image create just after the +image format. If the image cannot be created, this procedure returns #f. +

      +Hereafter is a simple usage of this procedure: +

      +

      (require "image")
      +(require "pixmap")
      +
      +(define img1 (make-image "a pixmap" :file "exit.xpm"))
      +(define img2 (make-image "a bitmap" :file "default.xbm"))
      +(define img3 (make-image "a pixmap"))
      +(define img4 (make-image "x.xpm"))
      +In this case, img3 is identical to img1 since they use the same key. +Img4 is the image associated to the file "x.xpm" found according to +the *image-path* varaiable. + +

      +find-image returns the image associated to the given key or +#f if this image has not been loaded yet. + +

      +change-image changes the content of an image previously created with +make-image. Options are the identical to make-image +options. +

      +Example: +

      (button '.b1 :image img1)
      +(button '.b2 :image img2)
      +(button '.b3 :image img1) ; .b3 content is identical to .b1
      +(pack .b1 .b2 .b3)
      +(change-image "a pixmap" :file "default.xbm")
      +After the execution of change-image, both .b1 and .b3 +graphical contents are changed. + +

      +delete-image removes the image with the given key of the cache. +The memory used by this image is returned to the system. See the +discussion about how this image is displayed in image delete. + +

      SEE ALSO

      +bitmap, image, jpeg, photo, pixmap +

      + Back to the STk main page + diff --git a/Help/free-image.n.html b/Help/free-image.n.html new file mode 100644 index 0000000..a350b83 --- /dev/null +++ b/Help/free-image.n.html @@ -0,0 +1,69 @@ +STk procedure - make-image manual page +
      + +

      create-image, find-image, change-image, free-image

      +an easier way to manipulate Tk images +

      +

      PACKAGE

      +Tk + +

      SYNOPSIS

      +(make-image key create image ?options?)
      +(find-image key)
      +(change-image key create image options)
      +(free-image key)
      +

      DESCRIPTION

      +make-image is a STk procedure which simplifies Tk images +creation by providing a homogeneous way to create an image, +independently of its coding format. The first argument of +make-image is a string which identifies the image; if an image +with this key has been already loaded in memory, it will not be loaded +again and make-image will return it. If no option is given, +the identifying image key is taken as a file name (the file is searched +using the variable *image-path*, which must contain a set of +prefix pathnames to prepend to the given filename). +If options are passed to the make-image procedure they must follow +the convention of the options passed in image create just after the +image format. If the image cannot be created, this procedure returns #f. +

      +Hereafter is a simple usage of this procedure: +

      +

      (require "image")
      +(require "pixmap")
      +
      +(define img1 (make-image "a pixmap" :file "exit.xpm"))
      +(define img2 (make-image "a bitmap" :file "default.xbm"))
      +(define img3 (make-image "a pixmap"))
      +(define img4 (make-image "x.xpm"))
      +In this case, img3 is identical to img1 since they use the same key. +Img4 is the image associated to the file "x.xpm" found according to +the *image-path* varaiable. + +

      +find-image returns the image associated to the given key or +#f if this image has not been loaded yet. + +

      +change-image changes the content of an image previously created with +make-image. Options are the identical to make-image +options. +

      +Example: +

      (button '.b1 :image img1)
      +(button '.b2 :image img2)
      +(button '.b3 :image img1) ; .b3 content is identical to .b1
      +(pack .b1 .b2 .b3)
      +(change-image "a pixmap" :file "default.xbm")
      +After the execution of change-image, both .b1 and .b3 +graphical contents are changed. + +

      +delete-image removes the image with the given key of the cache. +The memory used by this image is returned to the system. See the +discussion about how this image is displayed in image delete. + +

      SEE ALSO

      +bitmap, image, jpeg, photo, pixmap +

      + Back to the STk main page + diff --git a/Help/image.n.html b/Help/image.n.html index c4857cd..2a12508 100644 --- a/Help/image.n.html +++ b/Help/image.n.html @@ -83,7 +83,7 @@ for more information.

      SEE ALSO

      -bitmap, create-image, jpeg, photo, pixmap +bitmap, make-image, jpeg, photo, pixmap

      Back to the STk main page diff --git a/Help/jpeg.n.html b/Help/jpeg.n.html index b5a16ee..3bd6a19 100644 --- a/Help/jpeg.n.html +++ b/Help/jpeg.n.html @@ -59,7 +59,7 @@ This implementation of the jpeg image format was done by Andrew Swan <aswan@cs.berkeley.edu>

      SEE ALSO

      -bitmap, create-image, image, photo, pixmap +bitmap, make-image, image, photo, pixmap

      Back to the STk main page diff --git a/Help/label.n.html b/Help/label.n.html index 7155a83..45ffdc5 100644 --- a/Help/label.n.html +++ b/Help/label.n.html @@ -26,8 +26,7 @@

      Option keyword: :environment
      STklos slot name: environment
      Specifies the environment in which the :textvariable must be taken. -By convention, the value #f denotes the -STk global environment (the default value of this option is false). +By default, the value of this option is the STk global environment.

      Name: height diff --git a/Help/make-image.n.html b/Help/make-image.n.html new file mode 100644 index 0000000..a350b83 --- /dev/null +++ b/Help/make-image.n.html @@ -0,0 +1,69 @@ +STk procedure - make-image manual page +
      + +

      create-image, find-image, change-image, free-image

      +an easier way to manipulate Tk images +

      +

      PACKAGE

      +Tk + +

      SYNOPSIS

      +(make-image key create image ?options?)
      +(find-image key)
      +(change-image key create image options)
      +(free-image key)
      +

      DESCRIPTION

      +make-image is a STk procedure which simplifies Tk images +creation by providing a homogeneous way to create an image, +independently of its coding format. The first argument of +make-image is a string which identifies the image; if an image +with this key has been already loaded in memory, it will not be loaded +again and make-image will return it. If no option is given, +the identifying image key is taken as a file name (the file is searched +using the variable *image-path*, which must contain a set of +prefix pathnames to prepend to the given filename). +If options are passed to the make-image procedure they must follow +the convention of the options passed in image create just after the +image format. If the image cannot be created, this procedure returns #f. +

      +Hereafter is a simple usage of this procedure: +

      +

      (require "image")
      +(require "pixmap")
      +
      +(define img1 (make-image "a pixmap" :file "exit.xpm"))
      +(define img2 (make-image "a bitmap" :file "default.xbm"))
      +(define img3 (make-image "a pixmap"))
      +(define img4 (make-image "x.xpm"))
      +In this case, img3 is identical to img1 since they use the same key. +Img4 is the image associated to the file "x.xpm" found according to +the *image-path* varaiable. + +

      +find-image returns the image associated to the given key or +#f if this image has not been loaded yet. + +

      +change-image changes the content of an image previously created with +make-image. Options are the identical to make-image +options. +

      +Example: +

      (button '.b1 :image img1)
      +(button '.b2 :image img2)
      +(button '.b3 :image img1) ; .b3 content is identical to .b1
      +(pack .b1 .b2 .b3)
      +(change-image "a pixmap" :file "default.xbm")
      +After the execution of change-image, both .b1 and .b3 +graphical contents are changed. + +

      +delete-image removes the image with the given key of the cache. +The memory used by this image is returned to the system. See the +discussion about how this image is displayed in image delete. + +

      SEE ALSO

      +bitmap, image, jpeg, photo, pixmap +

      + Back to the STk main page + diff --git a/Help/make-link.stk b/Help/make-link.stk deleted file mode 100644 index b3ea5de..0000000 --- a/Help/make-link.stk +++ /dev/null @@ -1,35 +0,0 @@ -;;;; -;;;; This script is executed for linking manual pages which are identical -;;;; Data are taken in the "links.stk" file -;;;; -;;;; Copyright © 1996 Erick Gallesio - I3S-CNRS/ESSI -;;;; -;;;; Permission to use, copy, and/or distribute this software and its -;;;; documentation for any purpose and without fee is hereby granted, provided -;;;; that both the above copyright notice and this permission notice appear in -;;;; all copies and derived works. Fees for distribution or use of this -;;;; software or derived works may only be charged with express written -;;;; permission of the copyright holder. -;;;; This software is provided ``as is'' without express or implied warranty. -;;;; -;;;; Author: Erick Gallesio [eg@unice.fr] -;;;; Creation date: 30-Oct-1996 11:27 -;;;; Last file update: 30-Oct-1996 12:31 -;;;; - -(load "../Doc/Manual/links.stk") - -(define (make-link dir source destination) - (for-each (lambda (x) - (let ((cmd (format #f "cd ~A; rm -f ~A.n.html; ln ~A.n.html ~A.n.html" - dir x source x))) - (system cmd))) - destination)) - -(for-each (lambda (l) (make-link (car *argv*) (car l) (cdr l))) - *links*) -(exit 0) - - - - diff --git a/Help/menu.n.html b/Help/menu.n.html index 08f7fd5..8cfb612 100644 --- a/Help/menu.n.html +++ b/Help/menu.n.html @@ -384,9 +384,8 @@ Not available for separator or tear-off entries.

      :environment value
      Available only for checkbutton and radiobutton entries. Specifies the environment in which the checkbutton or radiobutton -:variable must be taken. -By convention, the value #f denotes the -STk global environment (the default value of this option is false). +:variable must be taken. By default, this environment is the +STk global environment.

      :font value
      Specifies the font to use when drawing the label or accelerator diff --git a/Help/menubutton.n.html b/Help/menubutton.n.html index 0213622..9d6b3d1 100644 --- a/Help/menubutton.n.html +++ b/Help/menubutton.n.html @@ -39,8 +39,7 @@ menu button. flush pops the menu directly over the menubutton.
      Option keyword: :environment
      STklos slot name: environment
      Specifies the environment in which the :textvariable must be taken. -By convention, the value #f denotes the -STk global environment (the default value of this option is false). +By default, the value of this option is the STk global environment.

      Name: height diff --git a/Help/photo.n.html b/Help/photo.n.html index 0282934..720904d 100644 --- a/Help/photo.n.html +++ b/Help/photo.n.html @@ -327,7 +327,7 @@ based on his earlier photo widget and some suggestions from John Ousterhout.

      SEE ALSO

      -bitmap, create-image, image, jpeg, pixmap +bitmap, make-image, image, jpeg, pixmap

      Back to the STk main page diff --git a/Help/pixmap.n.html b/Help/pixmap.n.html index ae9ba8b..f706065 100644 --- a/Help/pixmap.n.html +++ b/Help/pixmap.n.html @@ -68,7 +68,7 @@ This implementation of the pixmap image format has been stolen in the Tix package written by Ioi Kim Lam.

      SEE ALSO

      -bitmap, create-image, image, jpeg, photo +bitmap, make-image, image, jpeg, photo

      Back to the STk main page diff --git a/Help/repl-display-prompt.n.html b/Help/repl-display-prompt.n.html new file mode 100644 index 0000000..232d4d3 --- /dev/null +++ b/Help/repl-display-prompt.n.html @@ -0,0 +1,33 @@ +STk procedure - repl-display-prompt manual page +
      + +

      repl-display-prompt, repl-display-result

      +Display a prompt/result in +interactive mode

      +

      SYNOPSIS

      +(repl-display-prompt module)
      +(repl-display-result value)
      +

      DESCRIPTION

      +Repl-display-prompt is called by the interactive toplevel loop +before reading a sexpr. This procedure is called with one parameter: +the selected module in the toplevel loop. +

      +A simple form of this procedure could be: + +

      (define (repl-display-prompt module)
      +  (let ((p (current-error-port)))
      +    (format p "~A> " (module-name module))
      +    (flush p)))
      +

      +Repl-display-result is called by the interactive toplevel loop +after the evaluation of a sexpr. This procedure is called with the +result of this evaluation as parameter. + +

      +A simple form, mimicking the MIT Scheme way of presenting results, could be: + +

      (define (repl-display-result value)
      +  (format #t "\\n;Value: ~S\\n\\n" value))
      +

      + Back to the STk main page + diff --git a/Help/repl-display-result.n.html b/Help/repl-display-result.n.html new file mode 100644 index 0000000..232d4d3 --- /dev/null +++ b/Help/repl-display-result.n.html @@ -0,0 +1,33 @@ +STk procedure - repl-display-prompt manual page +
      + +

      repl-display-prompt, repl-display-result

      +Display a prompt/result in +interactive mode

      +

      SYNOPSIS

      +(repl-display-prompt module)
      +(repl-display-result value)
      +

      DESCRIPTION

      +Repl-display-prompt is called by the interactive toplevel loop +before reading a sexpr. This procedure is called with one parameter: +the selected module in the toplevel loop. +

      +A simple form of this procedure could be: + +

      (define (repl-display-prompt module)
      +  (let ((p (current-error-port)))
      +    (format p "~A> " (module-name module))
      +    (flush p)))
      +

      +Repl-display-result is called by the interactive toplevel loop +after the evaluation of a sexpr. This procedure is called with the +result of this evaluation as parameter. + +

      +A simple form, mimicking the MIT Scheme way of presenting results, could be: + +

      (define (repl-display-result value)
      +  (format #t "\\n;Value: ~S\\n\\n" value))
      +

      + Back to the STk main page + diff --git a/Help/report-error.n.html b/Help/report-error.n.html index 5e3626f..a93ed46 100644 --- a/Help/report-error.n.html +++ b/Help/report-error.n.html @@ -16,7 +16,7 @@ causes the error (or the empty list when there is no object to incriminate). The STk library includes a default report-error procedure that posts a dialog box containing the error message and offers the user a chance to see a stack trace showing where the -error occurred and its associated environment.. +error occurred and its associated environment.

      If an error occurs while is report-error execution, the interpreter detect that the procedure is buggy and it redirect further diff --git a/Help/stk.1.html b/Help/stk.1.html index df93729..e784f54 100644 --- a/Help/stk.1.html +++ b/Help/stk.1.html @@ -159,14 +159,19 @@ variable is a list of paths to try when in a load command. This variable serves to initialize the *help-path* Scheme variable. It must contain a list of documentation directories. This variable is used by the help procedure. +

      +

      STK_IMAGE_PATH
      +This variable serves to initialize the *image-path* Scheme variable. It +must contain a list of images directories. This variable is used by the make-image +procedure.

      -

      FILES

      +

      FILES

      -
      ./init.stk
      -
      $STK_LIBRARY/STk/init.stk
      +
      ./init.stk
      +
      $STK_LIBRARY/STk/init.stk
      When stk starts running, it tries to load the file init.stk in the current directory. If this file is not present, it tries to load this file in the STk_LIBRARY directory (the value of STk_LIBRARY @@ -174,14 +179,14 @@ is automatically computed to be in a sibling directory of the interpreter executable.

      -

      ~/.stkrc
      +
      ~/.stkrc
      Standard init.stk file tries to load the file ~/.stkrc. This file can be used to store functions definitions or variables settings that you want to be executed at each interpreter invocation.

      -

      SEE ALSO

      +

      SEE ALSO

      wish(1)

      Back to the STk main page diff --git a/Help/text.n.html b/Help/text.n.html index ee2350c..98ef09b 100644 --- a/Help/text.n.html +++ b/Help/text.n.html @@ -149,8 +149,8 @@ path name of the new window.

      A text widget displays one or more lines of text and allows that text to be edited. -Text widgets support three different kinds of annotations on the -text, called tags, marks, and embedded windows. +Text widgets support four different kinds of annotations on the +text, called tags, marks, embedded windows or embedded images. Tags allow different portions of the text to be displayed with different fonts and colors. In addition, STk procedures can be associated with tags so @@ -167,6 +167,10 @@ See MARKS below for more details. The third form of annotation allows arbitrary windows to be embedded in a text widget. See EMBEDDED WINDOWS below for more details. +

      +The fourth form of annotation allows Tk images to be embedded in a text +widget. +See EMBEDDED IMAGES below for more details.

      INDICES

      Many of the widget procedures for texts take one or more indices @@ -220,28 +224,38 @@ Indicates the position of the embedded window whose name is This form generates an error if there is no embedded window by the given name.

      +

      .VS
      +imageName +Indicates the position of the embedded image whose name is +imageName. +This form generates an error if there is no embedded image +by the given name. +

      +If the base could match more than one of the above forms, such +as a mark and imageName both having the same value, then +the form earlier in the above list takes precedence. If modifiers follow the base index, each one of them must have one of the forms listed below. Keywords such as chars and wordend may be abbreviated as long as the abbreviation is unambiguous.

      -
      + count chars
      +
      + count chars
      Adjust the index forward by count characters, moving to later lines in the text if necessary. If there are fewer than count characters in the text after the current index, then set the index to the last character in the text. Spaces on either side of count are optional.

      -

      : count chars
      +
      : count chars
      Adjust the index backward by count characters, moving to earlier lines in the text if necessary. If there are fewer than count characters in the text before the current index, then set the index to the first character in the text. Spaces on either side of count are optional.

      -

      + count lines
      +
      + count lines
      Adjust the index forward by count lines, retaining the same character position within the line. If there are fewer than count lines after the line containing the current index, then set the index @@ -251,7 +265,7 @@ character position, adjust the character position to refer to the last character of the line (the newline). Spaces on either side of count are optional.

      -

      - count lines
      +
      - count lines
      Adjust the index backward by count lines, retaining the same character position within the line. If there are fewer than count lines before the line containing the current index, then set the index @@ -261,19 +275,19 @@ character position, adjust the character position to refer to the last character of the line (the newline). Spaces on either side of count are optional.

      -

      linestart
      +
      linestart
      Adjust the index to refer to the first character on the line.

      -

      lineend
      +
      lineend
      Adjust the index to refer to the last character on the line (the newline).

      -

      wordstart
      +
      wordstart
      Adjust the index to refer to the first character of the word containing the current index. A word consists of any number of adjacent characters that are letters, digits, or underscores, or a single character that is not one of these.

      -

      wordend
      +
      wordend
      Adjust the index to refer to the character just after the last one of the word containing the current index. If the current index refers to the last character of the text then it is not modified. @@ -285,7 +299,7 @@ left-to-right order. For example, the index ``end - 1 chars'' refers to the next-to-last character in the text and ``insert wordstart - 1 c'' refers to the character just before the first one in the word containing the insertion cursor. -

      TAGS

      +

      TAGS

      The first form of annotation in text widgets is a tag. A tag is a textual string that is associated with some of the characters in a text. @@ -320,12 +334,12 @@ with the tag override the default display style. The following options are currently supported for tags:

      -
      :background color
      +
      :background color
      Color specifies the background color to use for characters associated with the tag. It may have any of the forms accepted by Tk_GetColor.

      -

      :bgstipple bitmap
      +
      :bgstipple bitmap
      Bitmap specifies a bitmap that is used as a stipple pattern for the background. It may have any of the forms accepted by Tk_GetBitmap. @@ -333,7 +347,7 @@ If bitmap hasn't been specified, or if it is specified as an empty string, then a solid fill will be used for the background.

      -

      :borderwidth pixels
      +
      :borderwidth pixels
      Pixels specifies the width of a 3-D border to draw around the background. It may have any of the forms accepted by Tk_GetPixels. @@ -342,7 +356,7 @@ option to give a 3-D appearance to the background for characters; it is ignored unless the :background option has been set for the tag.

      -

      :fgstipple bitmap
      +
      :fgstipple bitmap
      Bitmap specifies a bitmap that is used as a stipple pattern when drawing text and other foreground information such as underlines. @@ -350,16 +364,16 @@ It may have any of the forms accepted by Tk_GetBitmap. If bitmap hasn't been specified, or if it is specified as an empty string, then a solid fill will be used.

      -

      :font fontName
      +
      :font fontName
      FontName is the name of a font to use for drawing characters. It may have any of the forms accepted by Tk_GetFontStruct.

      -

      :foreground color
      +
      :foreground color
      Color specifies the color to use when drawing text and other foreground information such as underlines. It may have any of the forms accepted by Tk_GetColor.

      -

      :justify justify
      +
      :justify justify
      If the first character of a display line has a tag for which this option has been specified, then justify determines how to justify the line. @@ -367,7 +381,7 @@ It must be one of left, right, or center. If a line wraps, then the justification for each line on the display is determined by the first character of that display line.

      -

      :lmargin1 pixels
      +
      :lmargin1 pixels
      If the first character of a text line has a tag for which this option has been specified, then pixels specifies how much the line should be indented from the left edge of the @@ -378,7 +392,7 @@ If a line of text wraps, this option only applies to the first line on the display; the :lmargin2 option controls the indentation for subsequent lines.

      -

      :lmargin2 pixels
      +
      :lmargin2 pixels
      If the first character of a display line has a tag for which this option has been specified, and if the display line is not the first for its text line (i.e., the text line has wrapped), then @@ -389,7 +403,7 @@ distances. This option is only used when wrapping is enabled, and it only applies to the second and later display lines for a text line.

      -

      :offset pixels
      +
      :offset pixels
      Pixels specifies an amount by which the text's baseline should be offset vertically from the baseline of the overall line, in pixels. @@ -398,12 +412,12 @@ and a negative offset can be used for subscripts. Pixels may have any of the standard forms for screen distances.

      -

      :overstrike boolean
      +
      :overstrike boolean
      Specifies whether or not to draw a horizontal rule through the middle of characters. Boolean may have any of the forms accepted by Tk_GetBoolean.

      -

      :relief relief
      +
      :relief relief
      Relief specifies the 3-D relief to use for drawing backgrounds, in any of the forms accepted by Tk_GetRelief. This option is used in conjunction with the :borderwidth @@ -411,7 +425,7 @@ option to give a 3-D appearance to the background for characters; it is ignored unless the :background option has been set for the tag.

      -

      :rmargin pixels
      +
      :rmargin pixels
      If the first character of a display line has a tag for which this option has been specified, then pixels specifies how wide a margin to leave between the end of the line and the right @@ -423,27 +437,27 @@ If a text line wraps, the right margin for each line on the display is determined by the first character of that display line.

      -

      :spacing1 pixels
      +
      :spacing1 pixels
      Pixels specifies how much additional space should be left above each text line, using any of the standard forms for screen distances. If a line wraps, this option only applies to the first line on the display.

      -

      :spacing2 pixels
      +
      :spacing2 pixels
      For lines that wrap, this option specifies how much additional space to leave between the display lines for a single text line. Pixels may have any of the standard forms for screen distances.

      -

      :spacing3 pixels
      +
      :spacing3 pixels
      Pixels specifies how much additional space should be left below each text line, using any of the standard forms for screen distances. If a line wraps, this option only applies to the last line on the display.

      -

      :tabs tabList
      +
      :tabs tabList
      TabList specifies a set of tab stops in the same form as for the :tabs option for the text widget. This option only applies to a display line if it applies to the @@ -455,12 +469,12 @@ an empty list, such as :tags " ", then it requests default 8-character tabs as described for the tags widget option.

      -

      :underline boolean
      +
      :underline boolean
      Boolean specifies whether or not to draw an underline underneath characters. It may have any of the forms accepted by Tk_GetBoolean.

      -

      :wrap mode
      +
      :wrap mode
      Mode specifies how to handle lines that are wider than the text's window. It has the same legal values as the :wrap option @@ -494,7 +508,7 @@ procedure below. The third use for tags is in managing the selection. See THE SELECTION below. -

      MARKS

      +

      MARKS

      The second form of annotation in text widgets is a mark. Marks are used for remembering particular places in a text. They are something like tags, in that they have names and @@ -538,7 +552,7 @@ motions if a mouse button is down; the update will be deferred until all mouse buttons have been released). Neither of these special marks may be deleted. -

      EMBEDDED WINDOWS

      +

      EMBEDDED WINDOWS

      The third form of annotation in text widgets is an embedded window. Each embedded window annotation causes a window to be displayed at a particular point in the text. @@ -565,7 +579,7 @@ widget procedure. The following options are currently supported:

      -
      :align where
      +
      :align where
      If the window is not as tall as the line in which it is displayed, this option determines where the window is displayed in the line. Where must have one of the values top (align the top of the window @@ -575,7 +589,7 @@ window with the bottom of the line's area), or baseline (align the bottom of the window with the baseline of the line).

      -

      :create procedure
      +
      :create procedure
      Specifies a STk procedure that may be evaluated to create the window for the annotation. If no :window option has been specified for the annotation @@ -586,17 +600,17 @@ that window as its result. If the annotation's window should ever be deleted, procedure will be evaluated again the next time the annotation is displayed.

      -

      :padx pixels
      +
      :padx pixels
      Pixels specifies the amount of extra space to leave on each side of the embedded window. It may have any of the usual forms defined for a screen distance.

      -

      :pady pixels
      +
      :pady pixels
      Pixels specifies the amount of extra space to leave on the top and on the bottom of the embedded window. It may have any of the usual forms defined for a screen distance.

      -

      :stretch boolean
      +
      :stretch boolean
      If the requested height of the embedded window is less than the height of the line in which it is displayed, this option can be used to specify whether the window should be stretched vertically @@ -605,13 +619,84 @@ If the :pady option has been specified as well, then the requested padding will be retained even if the window is stretched.

      -

      :window widget-name
      +
      :window widget-name
      Specifies the window to display in the annotation.

      -

      THE SELECTION

      -Text widgets support the standard X selection. +

      EMBEDDED IMAGES

      +The final form of annotation in text widgets is an embedded image. +Each embedded image annotation causes an image to be displayed +at a particular point in the text. +There may be any number of embedded images in a text widget, +and a particular image may be embedded in multiple places in the same +text widget. +The embedded image's position on the screen will be updated as the +text is modified or scrolled. +Each embedded image occupies one character's worth of index space +in the text widget, and it may be referred to either by +its position in the widget's index space, or the name it is assigned +when the image is inserted into the text widget widh image create. +If the range of text containing the embedded image is deleted then +that copy of the image is removed from the screen. +

      +When an embedded image is added to a text widget with the image +create widget command, a name unique to this instance of the image +is returned. This name may then be used to refer to this image +instance. The name is taken to be the value of the :name option +(described below). If the :name option is not provided, the +:image name is used instead. If the imageName is already +in use in the text widget, then #nn is added to the end of the +imageName, where nn is an arbitrary integer. This insures +the imageName is unique. +Once this name is assigned to this instance of the image, it does not +change, even though the :image or :name values can be changed +with image configure. +

      +When an embedded image is added to a text widget with the +image create widget command, several configuration +options may be associated with it. +These options may be modified later with the image configure +widget command. +The following options are currently supported: +

      +

      +
      \fB\:align \fIwhere\fR
      +If the image is not as tall as the line in which it is displayed, +this option determines where the image is displayed in the line. +Where must have one of the values top (align the top of the image +with the top of the line), center (center the image +within the range of the line), bottom (align the bottom of the +image with the bottom of the line's area), +or baseline (align the bottom of the image with the baseline +of the line). +

      +

      \fB\:image \fIimage\fR
      +Specifies the name of the Tk image to display in the annotation. +If image is not a valid Tk image, then an error is returned. +

      +

      \fB\:name \fIImageName\fR
      +Specifies the name by which this image instance may be referenced in +the text widget. If ImageName is not supplied, then the +name of the Tk image is used instead. +If the imageName is already in use, #nn is appended to +the end of the name as described above. +

      +

      \fB\:padx \fIpixels\fR
      +Pixels specifies the amount of extra space to leave on +each side of the embedded image. +It may have any of the usual forms defined for a screen distance. +

      +

      \fB\:pady \fIpixels\fR
      +Pixels specifies the amount of extra space to leave on +the top and on the bottom of the embedded image. +It may have any of the usual forms defined for a screen distance. + + + +

      +

      +

      THE SELECTION

      Selection support is implemented via tags. If the exportSelection option for the text widget is true then the sel tag will be associated with the selection: @@ -638,7 +723,7 @@ the text widget are tied to the :background, tag: changes in either will automatically be reflected in the other. -

      THE INSERTION CURSOR

      +

      THE INSERTION CURSOR

      The mark named insert has special significance in text widgets. It is defined automatically when a text widget is created and it may not be unset with the ``widget-name mark unset'' widget @@ -647,7 +732,7 @@ The insert mark represents the position of the insertion cursor, and the insertion cursor will automatically be drawn at this point whenever the text widget has the input focus. -

      WIDGET PROCEDURE

      +

      WIDGET PROCEDURE

      The text procedure creates a new STk procedure whose name is the same as the path name of the text's window. This procedure may be used to invoke various @@ -659,7 +744,7 @@ determine the exact behavior of the procedure. The following procedures are possible for text widgets:

      -
      (widget-name 'bbox index)
      +
      (widget-name 'bbox index)
      Returns a list of four elements describing the screen area of the character given by index. The first two elements of the list give the x and y coordinates @@ -671,13 +756,13 @@ the return value reflects just the visible part. If the character is not visible on the screen then the return value is an empty list.

      -

      (widget-name 'cget option)
      +
      (widget-name 'cget option)
      Returns the current value of the configuration option given by option. Option may have any of the values accepted by the text procedure.

      -

      (widget-name 'compare index1 op index2)
      +
      (widget-name 'compare index1 op index2)
      Compares the indices given by index1 and index2 according to the relational operator given by op, and returns 1 if the relationship is satisfied and 0 if it isn't. @@ -687,7 +772,7 @@ the same character, if op is < then 1 is returned if index1 refers to an earlier character in the text than index2, and so on.

      -

      (widget-name 'configure ?option? ?value option value ...?)
      +
      (widget-name 'configure ?option? ?value option value ...?)
      Query or modify the configuration options of the widget. If no option is specified, returns a list describing all of the available options for widget-name (see Tk_ConfigureInfo for @@ -701,8 +786,8 @@ this case the procedure returns an empty string. Option may have any of the values accepted by the text procedure.

      -

      (widget-name 'debug )
      -
      (widget-name 'debug boolean)
      +
      (widget-name 'debug )
      +
      (widget-name 'debug boolean)
      If boolean is specified, then it must have one of the true or false values accepted by Tcl_GetBoolean. If the value is a true one then internal consistency checks will be @@ -717,8 +802,8 @@ debugging on or off in any widget turns it on or off for all widgets. For widgets with large amounts of text, the consistency checks may cause a noticeable slow-down.

      -

      (widget-name 'delete index1 )
      -
      (widget-name 'delete index1 index2)
      +
      (widget-name 'delete index1 )
      +
      (widget-name 'delete index1 index2)
      Delete a range of characters from the text. If both index1 and index2 are specified, then delete all the characters starting with the one given by index1 @@ -732,7 +817,7 @@ It is not allowable to delete characters in a way that would leave the text without a newline as the last character. The procedure returns an empty string.

      -

      (widget-name 'dlineinfo index)
      +
      (widget-name 'dlineinfo index)
      Returns a list with five elements describing the area occupied by the display line containing index. The first two elements of the list give the x and y coordinates @@ -751,7 +836,7 @@ by characters and embedded windows. If the display line containing index is not visible on the screen then the return value is an empty list.

      -

      (widget-name 'dump ?switches? index1 ?index2?)
      +
      (widget-name 'dump ?switches? index1 ?index2?)
      Return the contents of the text widget from index1 up to, but not including index2, including the text and @@ -774,24 +859,24 @@ One or more of the following switches (or abbreviations thereof) may be specified to control the dump:

      -
      :all
      +
      :all
      Return information about all elements: text, marks, tags, and windows. This is the default.

      -

      :command closure
      +
      :command closure
      Instead of returning the information as the result of the dump operation, invoke the closure on each element of the text widget within the range. The command must have three arguments: key, value, and index.

      -

      :mark
      +
      :mark
      Include information about marks in the dump results.

      -

      :tag
      +
      :tag
      Include information about tag transitions in the dump results. Tag information is returned as tagon and tagoff elements that indicate the begin and end of each range of each tag, respectively.

      -

      :text
      +
      :text
      Include information about text in the dump results. The value is the text up to the next element or the end of range indicated by index2. A text element does not span newlines. A multi-line block of text that @@ -799,7 +884,7 @@ contains no marks or tag transitions will still be dumped as a set of text seqments that each end with a newline. The newline is part of the value.

      -

      :window
      +
      :window
      Include information about embedded windows in the dump results. The value of a window is its Tk pathname, unless the window has not been created yet. (It must have a create script.) @@ -810,8 +895,8 @@ window by its index position to get more information.

      -
      (widget-name 'get index1 )
      -
      (widget-name 'get index1 index2)
      +
      (widget-name 'get index1 )
      +
      (widget-name 'get index1 index2)
      Return a range of characters from the text. The return value will be all the characters in the text starting with the one whose index is index1 and ending just before @@ -824,14 +909,59 @@ is past the end of the file or index2 is less than or equal to index1) then an empty string is returned. If the specified range contains embedded windows, no information about them is included in the returned string. +

      -

      (widget-name 'index index)
      +
      (\fwidget-name \fB'image \fIoption \fR?\fIarg arg ...\fR?)
      +This command is used to manipulate embedded images. +The behavior of the command depends on the option argument +that follows the tag argument. +The following forms of the command are currently supported: +

      +

      +

      +
      (\fwidget-name \fB'image 'cget\fR \fIindex option\fR)
      +Returns the value of a configuration option for an embedded image. +Index identifies the embedded image, and option +specifies a particular configuration option, which must be one of +the ones listed in the section EMBEDDED IMAGES. +

      +

      (\fwidget-name \fB'image 'configure \fIindex\fR ?\fIoption value ...\fR?)
      +Query or modify the configuration options for an embedded image. +If no option is specified, returns a list describing all of +the available options for the embedded image at index +(see Tk_ConfigureInfo for information on the format of this list). +If option is specified with no value, then the command +returns a list describing the one named option (this list will be +identical to the corresponding sublist of the value returned if no +option is specified). +If one or more option-value pairs are specified, then the command +modifies the given option(s) to have the given value(s); in +this case the command returns an empty string. +See EMBEDDED IMAGES for information on the options that +are supported. +

      +

      (\fwidget-name \fB'image 'create \fIindex\fR ?\fIoption value ...\fR?)
      +This command creates a new image annotation, which will appear +in the text at the position given by index. +Any number of option-value pairs may be specified to +configure the annotation. +Returns a unique identifier that may be used as an index to refer to +this image. +See EMBEDDED IMAGES for information on the options that +are supported, and a description of the identifier returned. +

      +

      (\fwidget-name \fB'image 'names\fR)
      +Returns a list whose elements are the names of all image instances currently +embedded in window. +

      +

      +
      (widget-name 'index index)
      Returns the position corresponding to index in the form (line . char) where line is the line number and char is the character number. Index may have any of the forms described under INDICES above.

      -

      (widget-name 'insert index chars ?tagList chars tagList ...?)
      +
      (widget-name 'insert index chars ?tagList chars tagList ...?)
      Inserts all of the chars arguments just before the character at index. If index refers to the end of the text (the character after @@ -851,7 +981,7 @@ they produce the same effect as if a separate insert widget procedure had been issued for each pair, in order. The last tagList argument may be omitted.

      -

      (widget-name 'mark option ?arg arg ...?)
      +
      (widget-name 'mark option ?arg arg ...?)
      This procedure is used to manipulate marks. The exact behavior of the procedure depends on the option argument that follows the mark argument. The following forms of the procedure @@ -859,19 +989,19 @@ are currently supported:

      -
      (widget-name 'mark 'gravity markName)
      -
      (widget-name 'mark 'gravity markName direction)
      +
      (widget-name 'mark 'gravity markName)
      +
      (widget-name 'mark 'gravity markName direction)
      If direction is not specified, returns left or right to indicate which of its adjacent characters markName is attached to. If direction is specified, it must be left or right; the gravity of markName is set to the given value.

      -

      (widget-name 'mark 'names)
      +
      (widget-name 'mark 'names)
      Returns a list whose elements are the names of all the marks that are currently set.

      -

      (widget-name 'mark 'next index)
      +
      (widget-name 'mark 'next index)
      Returns the name of the next mark at or after index. If index is specified in numerical form, then the search for the next mark begins at that index. @@ -886,7 +1016,7 @@ If a mark has been set to the special end index, then it appears to be after end with respect to the mark next operation. An empty list is returned if there are no marks after index.

      -

      (widget-name 'mark 'previous index)
      +
      (widget-name 'mark 'previous index)
      Returns the name of the mark at or before index. If index is specified in numerical form, then the search for the previous mark begins with the character just before that index. @@ -899,33 +1029,33 @@ step through all the marks in a text widget in the reverse order as the mark information returned by the dump operation. An empty list is returned if there are no marks before index.

      -

      (widget-name 'mark 'set markName index)
      +
      (widget-name 'mark 'set markName index)
      Sets the mark named markName to a position just before the character at index. If markName already exists, it is moved from its old position; if it doesn't exist, a new mark is created. This procedure returns an empty string.

      -

      (widget-name 'mark 'unset markName ?markName markName ...?)
      +
      (widget-name 'mark 'unset markName ?markName markName ...?)
      Remove the mark corresponding to each of the markName arguments. The removed marks will not be usable in indices and will not be returned by future calls to ``widget-name mark names''. This procedure returns an empty string.

      -
      (widget-name 'scan option args)
      +
      (widget-name 'scan option args)
      This procedure is used to implement scanning on texts. It has two forms, depending on option:

      -
      (widget-name 'scan 'mark x y)
      +
      (widget-name 'scan 'mark x y)
      Records x and y and the current view in the text window, for use in conjunction with later scan dragto procedures. Typically this procedure is associated with a mouse button press in the widget. It returns an empty string.

      -

      (widget-name 'scan 'dragto x y)
      +
      (widget-name 'scan 'dragto x y)
      This procedure computes the difference between its x and y arguments and the x and y arguments to the last scan mark procedure for the widget. @@ -936,7 +1066,7 @@ dragging the text at high speed through the window. The return value is an empty string.

      -
      (widget-name search ?switches? pattern index ?stopIndex?)
      +
      (widget-name search ?switches? pattern index ?stopIndex?)
      Searches the text in widget-name starting at index for a range of characters that matches pattern. If a match is found, the index of the first character in the match is @@ -946,35 +1076,35 @@ may be specified to control the search:

      -
      :forwards
      +
      :forwards
      The search will proceed forward through the text, finding the first matching range starting at or after the position given by index. This is the default.

      -

      :backwards
      +
      :backwards
      The search will proceed backward through the text, finding the matching range closest to index whose first character is before index.

      -

      :exact
      +
      :exact
      Use exact matching: the characters in the matching range must be identical to those in pattern. This is the default.

      -

      :regexp
      +
      :regexp
      Treat pattern as a regular expression and match it against the text using the rules for regular expressions (see the regexp procedure for details).

      -

      :nocase
      +
      :nocase
      Ignore case differences between the pattern and the text.

      -

      :count varName
      +
      :count varName
      The argument following :count gives the name of a variable; if a match is found, the number of characters in the matching range will be stored in the variable.

      -

      :-
      +
      :-
      This switch has no effect except to terminate the list of switches: the next argument will be treated as pattern even if it starts with :. @@ -996,7 +1126,7 @@ when the beginning or end of the text is reached, the search continues at the other end until the starting location is reached again; if stopIndex is specified, no wrap-around will occur. -
      (widget-name 'see index)
      +
      (widget-name 'see index)
      Adjusts the view in the window so that the character given by index is completely visible. If index is already visible then the procedure does nothing. @@ -1006,7 +1136,7 @@ edge of the window. If index is far out of view, then the procedure centers index in the window.

      -

      (widget-name 'tag option ?arg arg ...?)
      +
      (widget-name 'tag option ?arg arg ...?)
      This procedure is used to manipulate tags. The exact behavior of the procedure depends on the option argument that follows the tag argument. The following forms of the procedure are currently @@ -1014,7 +1144,7 @@ supported:

      -
      (widget-name 'tag 'add tagName index1 ?index2 index1 index2 ...?)
      +
      (widget-name 'tag 'add tagName index1 ?index2 index1 index2 ...?)
      Associate the tag tagName with all of the characters starting with index1 and ending just before index2 (the character at index2 isn't tagged). @@ -1026,9 +1156,9 @@ If there are no characters in the specified range (e.g. index1 is past the end of the file or index2 is less than or equal to index1) then the procedure has no effect.

      -

      (widget-name 'tag 'bind tagName)
      -
      (widget-name 'tag 'bind tagName sequence)
      -
      (widget-name 'tag 'bind tagName sequence script)
      +
      (widget-name 'tag 'bind tagName)
      +
      (widget-name 'tag 'bind tagName sequence)
      +
      (widget-name 'tag 'bind tagName sequence script)
      This procedure associates script with the tag given by tagName. Whenever the event sequence given by sequence occurs for a @@ -1052,20 +1182,19 @@ defined for tagName.

        The only events for which bindings may be specified are those related -to the mouse and keyboard, such as Enter, Leave, -ButtonPress, Motion, and KeyPress. -Event bindings for a text widget use the current mark -described under MARKS above. -An Enter event triggers for a tag when the tag first -becomes present on the current character, and a Leave -event triggers for a tag when it ceases to be present on -the current character. +to the mouse and keyboard (such as Enter, Leave, +ButtonPress, Motion, and KeyPress) or virtual events. +Event bindings for a text widget use the current mark described +under MARKS above. An Enter event triggers for a tag when the tag +first becomes present on the current character, and a Leave event +triggers for a tag when it ceases to be present on the current character. Enter and Leave events can happen either because the -current mark moved or because the character at that -position changed. -Note that these events are different than Enter and Leave -events for windows. -Mouse and keyboard events are directed to the current character. +current mark moved or because the character at that position +changed. Note that these events are different than Enter and +Leave events for windows. Mouse and keyboard events are directed +to the current character. If a virtual event is used in a binding, that +binding can trigger only if the virtual event is defined by an underlying +mouse-related or keyboard-related event.

        It is possible for the current character to have multiple tags, and for each of them to have a binding for a particular event @@ -1085,13 +1214,13 @@ tag bindings. The tag bindings will be invoked first, followed by bindings for the window as a whole.

      -
      (widget-name 'tag 'cget tagName option)
      +
      (widget-name 'tag 'cget tagName option)
      This procedure returns the current value of the option named option associated with the tag given by tagName. Option may have any of the values accepted by the tag configure widget procedure.

      -

      (widget-name 'tag 'configure tagName ?option? ?value? ?option value ...?)
      +
      (widget-name 'tag 'configure tagName ?option? ?value? ?option value ...?)
      This procedure is similar to the configure widget procedure except that it modifies options associated with the tag given by tagName instead of modifying options for the overall text widget. @@ -1107,7 +1236,7 @@ modifies the given option(s) to have the given value(s) in tagName; in this case the procedure returns an empty list. See TAGS above for details on the options available for tags.

      -

      (widget-name 'tag 'delete tagName ?tagName ...?)
      +
      (widget-name 'tag 'delete tagName ?tagName ...?)
      Deletes all tag information for each of the tagName arguments. The procedure removes the tags from all characters in the file @@ -1115,15 +1244,15 @@ and also deletes any other information associated with the tags, such as bindings and display information. The procedure returns an empty list.

      -

      (widget-name'tag 'lower tagName )
      -
      (widget-name'tag 'lower tagName belowThis)
      +
      (widget-name'tag 'lower tagName )
      +
      (widget-name'tag 'lower tagName belowThis)
      Changes the priority of tag tagName so that it is just lower in priority than the tag whose name is belowThis. If belowThis is omitted, then tagName's priority is changed to make it lowest priority of all tags.

      -

      (widget-name 'tag 'names )
      -
      (widget-name 'tag 'names index)
      +
      (widget-name 'tag 'names )
      +
      (widget-name 'tag 'names index)
      Returns a list whose elements are the names of all the tags that are active at the character position given by index. If index is omitted, then the return value will describe @@ -1135,8 +1264,8 @@ the tag). The list will be sorted in order from lowest priority to highest priority.

      -

      (widget-name 'tag 'nextrange tagName index1 )
      -
      (widget-name 'tag 'nextrange tagName index1 index2)
      +
      (widget-name 'tag 'nextrange tagName index1 )
      +
      (widget-name 'tag 'nextrange tagName index1 index2)
      This procedure searches the text for a range of characters tagged with tagName where the first character of the range is no earlier than the character at index1 and no later than @@ -1151,8 +1280,8 @@ If no matching range is found then the return value is an empty list. If index2 is not given then it defaults to the end of the text.

      -

      (widget-name 'tag 'prevrange tagName index1 )
      -
      (widget-name 'tag 'prevrange tagName index1 index2)
      +
      (widget-name 'tag 'prevrange tagName index1 )
      +
      (widget-name 'tag 'prevrange tagName index1 index2)
      This command searches the text for a range of characters tagged with tagName where the first character of the range is before the character at index1 and no earlier than @@ -1167,14 +1296,14 @@ If no matching range is found then the return value is an empty string. If index2 is not given then it defaults to the beginning of the text.

      -

      (widget-name'tag 'raise tagName )
      -
      (widget-name'tag 'raise tagName aboveThis)
      +
      (widget-name'tag 'raise tagName )
      +
      (widget-name'tag 'raise tagName aboveThis)
      Changes the priority of tag tagName so that it is just higher in priority than the tag whose name is aboveThis. If aboveThis is omitted, then tagName's priority is changed to make it highest priority of all tags.

      -

      (widget-name 'tag 'ranges tagName)
      +
      (widget-name 'tag 'ranges tagName)
      Returns a list describing all of the ranges of text that have been tagged with tagName. The first two elements of the list describe the first tagged range @@ -1187,7 +1316,7 @@ range. If there are no characters tagged with tag then an empty list is returned.

      -

      (widget-name 'tag 'remove tagName index1 ?index2 index1 index2 ...?)
      +
      (widget-name 'tag 'remove tagName index1 ?index2 index1 index2 ...?)
      Remove the tag tagName from all of the characters starting at index1 and ending just before index2 (the character at index2 isn't affected). @@ -1201,7 +1330,7 @@ to index1) then the procedure has no effect. This procedure returns an empty list.

      -
      (widget-name 'window option ?arg arg ...?)
      +
      (widget-name 'window option ?arg arg ...?)
      This procedure is used to manipulate embedded windows. The behavior of the procedure depends on the option argument that follows the tag argument. @@ -1209,13 +1338,13 @@ The following forms of the procedure are currently supported:

      -
      (widget-name 'window 'cget index option)
      +
      (widget-name 'window 'cget index option)
      Returns the value of a configuration option for an embedded window. Index identifies the embedded window, and option specifies a particular configuration option, which must be one of the ones listed in the section EMBEDDED WINDOWS.

      -

      (widget-name 'window 'configure index ?option value ...?)
      +
      (widget-name 'window 'configure index ?option value ...?)
      Query or modify the configuration options for an embedded window. If no option is specified, returns a list describing all of the available options for the embedded window at index @@ -1230,7 +1359,7 @@ this case the procedure returns an empty list. See EMBEDDED WINDOWS for information on the options that are supported.

      -

      (widget-name 'window 'create index ?option value ...?)
      +
      (widget-name 'window 'create index ?option value ...?)
      This procedure creates a new window annotation, which will appear in the text at the position given by index. Any number of option-value pairs may be specified to @@ -1239,19 +1368,19 @@ See EMBEDDED WINDOWS for information on the options that are supported. Returns an empty list.

      -

      (widget-name 'window 'names)
      +
      (widget-name 'window 'names)
      Returns a list whose elements are the names of all windows currently embedded in window.

      -
      (widget-name 'xview option args)
      +
      (widget-name 'xview option args)
      This procedure is used to query and change the horizontal position of the text in the widget's window. It can take any of the following forms:

      -
      (widget-name 'xview)
      +
      (widget-name 'xview)
      Returns a list containing two elements. Each element is a real fraction between 0 and 1; together they describe the portion of the document's horizontal span that is visible in @@ -1267,12 +1396,12 @@ much wider than the window. These are the same values passed to scrollbars via the :xscrollprocedure option.

      -

      (widget-name 'xview 'moveto fraction)
      +
      (widget-name 'xview 'moveto fraction)
      Adjusts the view in the window so that fraction of the horizontal span of the text is off-screen to the left. Fraction is a fraction between 0 and 1.

      -

      (widget-name 'xview 'scroll number what)
      +
      (widget-name 'xview 'scroll number what)
      This procedure shifts the view in the window left or right according to number and what. Number must be an integer. @@ -1286,14 +1415,14 @@ become visible; if it is positive then characters farther to the right become visible.

      -
      (widget-name 'yview ?args?)
      +
      (widget-name 'yview ?args?)
      This procedure is used to query and change the vertical position of the text in the widget's window. It can take any of the following forms:

      -
      (widget-name 'yview)
      +
      (widget-name 'yview)
      Returns a list containing two elements, both of which are real fractions between 0 and 1. The first element gives the position of the first character in the @@ -1305,14 +1434,14 @@ relative to the text as a whole. These are the same values passed to scrollbars via the :yscrollprocedure option.

      -

      (widget-name 'yview 'moveto fraction)
      +
      (widget-name 'yview 'moveto fraction)
      Adjusts the view in the window so that the character given by fraction appears on the top line of the window. Fraction is a fraction between 0 and 1; 0 indicates the first character in the text, 0.33 indicates the character one-third the way through the text, and so on.

      -

      (widget-name 'yview 'scroll number what)
      +
      (widget-name 'yview 'scroll number what)
      This procedure adjust the view in the window up or down according to number and what. Number must be an integer. @@ -1324,8 +1453,8 @@ If number is negative then earlier positions in the text become visible; if it is positive then later positions in the text become visible.

      -

      (widget-name yview index)
      -
      (widget-name yview :pickplace index)
      +
      (widget-name yview index)
      +
      (widget-name yview :pickplace index)
      Changes the view in the widget's window to make index visible. If the :pickplace option isn't specified then index will appear at the top of the window. @@ -1351,7 +1480,7 @@ The :pickplace option has been obsoleted by the see widget procedure (see handles both x- and y-motion to make a location visible, whereas :pickplace only handles motion in y). -
      (widget-name 'yview number)
      +
      (widget-name 'yview number)
      This procedure makes the first character on the line after the one given by number visible at the top of the window. Number must be an integer. @@ -1359,7 +1488,7 @@ This procedure used to be used for scrolling, but now it is obsolete.

      -

      BINDINGS

      +

      BINDINGS

      Tk automatically creates class bindings for texts that give them the following default behavior. In the descriptions below, ``word'' refers to a contiguous group @@ -1508,7 +1637,7 @@ take place. The behavior of texts can be changed by defining new bindings for individual widgets or by redefining the class bindings. -

      PERFORMANCE ISSUES

      +

      PERFORMANCE ISSUES

      Text widgets should run efficiently under a variety of conditions. The text widget uses about 2-3 bytes of main memory for each byte of text, so texts containing a megabyte diff --git a/INSTALL b/INSTALL index 209957a..e4f780d 100644 --- a/INSTALL +++ b/INSTALL @@ -169,11 +169,8 @@ To install stk in the definitive place, type $ make install -Intalling STk and Tk manual pages is done with - - $ make install.man - -Intalling STk and Tk libraries is done with +Intalling STk and Tk libraries (useless if you don't plan to write some C code) +is done with. $ make install.lib diff --git a/Lib/Makefile b/Lib/Makefile index 7f4e82a..a6f3918 100644 --- a/Lib/Makefile +++ b/Lib/Makefile @@ -3,7 +3,7 @@ # # Author: Erick Gallesio [eg@unice.fr] # Creation date: ??? -# Last file update: 28-Oct-1997 21:23 +# Last file update: 30-Apr-1998 16:28 include ../config.make @@ -29,7 +29,7 @@ install: chmod 0644 $(STK_IMAGES)/* $(CP) Match/*.scm $(STK_STK_MATCH) chmod 0644 $(STK_STK_MATCH)/* - + chmod 0755 $(SITE_SCHEME) $(STK_IMAGES) $(STK_STK) $(STK_STK_MATCH) install.libs: clean: diff --git a/Lib/bigloo.stk b/Lib/bigloo.stk index 426a803..32b54eb 100644 --- a/Lib/bigloo.stk +++ b/Lib/bigloo.stk @@ -11,11 +11,11 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: bigloo.stk 1.2 Wed, 14 Jan 1998 14:58:05 +0100 eg $ +;;;; $Id: bigloo.stk 1.3 Thu, 30 Apr 1998 14:16:40 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 28-Oct-1997 11:09 -;;;; Last file update: 14-Jan-1998 11:05 +;;;; Last file update: 30-Apr-1998 15:26 ;;; @@ -65,18 +65,18 @@ x)) x))) - `(define-module ,name - ,@(map (lambda (clause) - (case (car clause) - ((export) (export-directive (cdr clause))) - ((import) (import-directive (cdr clause))) - ((use) '()) - (else (error "module" "Unknown clause" (cons name clause))))) - clauses) - (define error bigloo:error) + `(begin + (define-module ,name + ,@(map (lambda (clause) + (case (car clause) + ((export) (export-directive (cdr clause))) + ((import) (import-directive (cdr clause))) + ((use) '()) + (else (error "module" "Unknown clause" (cons name clause))))) + clauses) + (define error bigloo:error)) (select-module ,name))) - ;;; ;;; Error ;;; diff --git a/Lib/init.stk b/Lib/init.stk index 94bcfad..0b933a4 100644 --- a/Lib/init.stk +++ b/Lib/init.stk @@ -11,11 +11,11 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: init.stk 1.13 Fri, 10 Apr 1998 09:13:18 +0200 eg $ +;;;; $Id: init.stk 1.14 Mon, 20 Apr 1998 20:15:01 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@kaolin.unice.fr] ;;;; Creation date: ??-Sep-1993 ??:?? -;;;; Last file update: 8-Apr-1998 11:41 +;;;; Last file update: 20-Apr-1998 19:31 ;;;; ;;;============================================================================== diff --git a/Lib/match.stk b/Lib/match.stk index ed87e61..438707c 100644 --- a/Lib/match.stk +++ b/Lib/match.stk @@ -1,7 +1,7 @@ ;;;; ;;;; m a t c h . s t k -- The bigloo match-case and match-lambda ;;;; -;;;; Copyright © 1997 Erick Gallesio - I3S-CNRS/ESSI +;;;; Copyright © 1997-1998 Erick Gallesio - I3S-CNRS/ESSI ;;;; ;;;; Permission to use, copy, and/or distribute this software and its ;;;; documentation for any purpose and without fee is hereby granted, provided @@ -13,7 +13,7 @@ ;;;; ;;;; Author: Erick Gallesio [eg@kaolin.unice.fr] ;;;; Creation date: 28-Oct-1997 20:47 -;;;; Last file update: 28-Oct-1997 21:16 +;;;; Last file update: 30-Apr-1998 15:27 ;;;; ;;;; This file implements code for loading the MATCH-CASE and MATCH-LAMBDA @@ -33,7 +33,7 @@ (load "Match/compiler.scm") (load "Match/mexpand.scm") -(with-module Scheme +(with-module STk (import __match_expand) (define-macro (match-lambda . clauses) diff --git a/Lib/menu.stk b/Lib/menu.stk index 9483912..78dbdf4 100644 --- a/Lib/menu.stk +++ b/Lib/menu.stk @@ -15,7 +15,7 @@ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 17-May-1993 12:35 -;;;; Last file update: 8-Apr-1998 11:40 +;;;; Last file update: 27-Apr-1998 12:34 ;;;; (select-module Tk) @@ -734,7 +734,7 @@ (define (Tk:menu-find w char) (let ((char (string-lower char)) (window-list (winfo 'child w))) - (DEBUG " Tk:menu-find (à debugger) ~S ~S" w char) + ; FIXME: (DEBUG " Tk:menu-find (à debugger) ~S ~S" w char) (call/cc (lambda (exit) (for-each (lambda (child) @@ -905,8 +905,7 @@ ;; s - String to look for. (define (Tk:menu-find-name menu s) - (DEBUG "Tk:menu-find-name manque des test pour les chaines speciales ~S " s) - + ; FIXME: Tk:menu-find-name manque des test pour les chaines speciales (let ((last (menu 'index 'last)) (label #f)) (if (equal? last "none") diff --git a/Lib/sterm.stk b/Lib/sterm.stk index 81665bb..66496c8 100644 --- a/Lib/sterm.stk +++ b/Lib/sterm.stk @@ -11,7 +11,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: sterm.stk 1.3 Tue, 03 Mar 1998 23:48:24 +0100 eg $ +;;;; $Id: sterm.stk 1.3 Tue, 03 Mar 1998 22:48:24 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 2-Oct-1995 22:57 diff --git a/Lib/text.stk b/Lib/text.stk index 2076f05..5b8de09 100644 --- a/Lib/text.stk +++ b/Lib/text.stk @@ -14,7 +14,7 @@ ;;;; This software is a derivative work of other copyrighted softwares; the ;;;; copyright notices of these softwares are placed in the file COPYRIGHTS ;;;; -;;;; $Id: text.stk 1.3 Sun, 22 Mar 1998 17:16:09 +0100 eg $ +;;;; $Id: text.stk 1.3 Sun, 22 Mar 1998 16:16:09 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 17-May-1993 12:35 diff --git a/Lib/tk-init.stk b/Lib/tk-init.stk index 5d57de3..686947d 100644 --- a/Lib/tk-init.stk +++ b/Lib/tk-init.stk @@ -17,7 +17,7 @@ ;;;; This software is a derivative work of other copyrighted softwares; the ;;;; copyright notices of these softwares are placed in the file COPYRIGHTS ;;;; -;;;; $Id: tk-init.stk 1.11 Fri, 10 Apr 1998 09:13:18 +0200 eg $ +;;;; $Id: tk-init.stk 1.11 Fri, 10 Apr 1998 07:13:18 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 17-May-1993 12:35 diff --git a/Lib/tk-unix.stk b/Lib/tk-unix.stk index 0d5f49d..4be7da1 100644 --- a/Lib/tk-unix.stk +++ b/Lib/tk-unix.stk @@ -12,7 +12,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: tk-unix.stk 1.1 Fri, 10 Apr 1998 09:13:18 +0200 eg $ +;;;; $Id: tk-unix.stk 1.1 Fri, 10 Apr 1998 07:13:18 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 1-Feb-1998 19:03 diff --git a/Lib/trace.stk b/Lib/trace.stk index 329f036..cd0aca1 100644 --- a/Lib/trace.stk +++ b/Lib/trace.stk @@ -11,7 +11,7 @@ ;;;; permission of the copyright holder. ;;;; This software is provided ``as is'' without express or implied warranty. ;;;; -;;;; $Id: trace.stk 1.2 Sun, 18 Jan 1998 20:17:48 +0100 eg $ +;;;; $Id: trace.stk 1.2 Sun, 18 Jan 1998 19:17:48 +0000 eg $ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 26-Apr-1997 16:02 diff --git a/Lib/www-browser.stklos b/Lib/www-browser.stklos index eaae6a9..27b2afa 100644 --- a/Lib/www-browser.stklos +++ b/Lib/www-browser.stklos @@ -13,7 +13,7 @@ ;;;; ;;;; Author: Erick Gallesio [eg@unice.fr] ;;;; Creation date: 21-Oct-1996 14:02 -;;;; Last file update: 2-Mar-1998 10:47 +;;;; Last file update: 16-Apr-1998 11:45 ;;;; (require "Tk-classes") @@ -77,7 +77,7 @@ (f1 (make :parent parent)) (lab (make