home *** CD-ROM | disk | FTP | other *** search
/ Dream 44 / Amiga_Dream_44.iso / RiscPc / programmation / scm4e2.arc / !Scm / docs / QUICKREF < prev    next >
Text File  |  1994-10-06  |  7KB  |  202 lines

  1. ;; FILE             "Scheme Sigs"
  2. ;; IMPLEMENTS   R^4RS Function Signature Synopsis
  3. ;; AUTHOR           Kenneth A Dickey
  4. ;; DATE             1992 October 2
  5. ;; LAST UPDATED 1992 October 3
  6. ;; NOTES:  Extracted from Amiga Gambit QuickTour file
  7.  
  8. === FUNCTION SYNOPSIS ===
  9.  
  10. Notation:
  11.   <object>      any Scheme data object.
  12.   <object>*     zero or more objects
  13.   <object>+     one or more objects
  14.   [<object>]    optional object
  15.   ( <whatever> )...   Zero or more occurances of ( <whatever> )
  16.  
  17. ; SYNTAX
  18.  
  19.   (LAMBDA <name> <exp>+ )
  20.   (LAMBDA (<name>* ) <exp>+ )
  21.   (AND <exp>*)
  22.   (OR  <exp>*)
  23.   (IF <test-exp> <if-true> [<if-false>] )
  24.   (COND (<test> <exp>* )... [(ELSE <exp>+)] )
  25.   (CASE <key-exp> ((<datum>+ ) <exp>* )... [(ELSE <exp>+)] )
  26.   (DEFINE ( <name> <name>* ) <exp>+ )
  27.   (DEFINE <name> <exp> )
  28.   (LET [<name>] ( (<vname> <value-exp>)... ) <exp>+ )
  29.   (LET*   ( (<vname> <value-exp>)... ) <exp>+ )
  30.   (LETREC ( (<vname> <value-exp>)... ) <exp>+ )
  31.   (BEGIN <expression>+ )
  32.   (DO ( (<var> <init> <step>)... ) ( <test> <exp>* ) <exp>* )
  33.   ;; Note also R^4RS syntax, below
  34.  
  35.  
  36. ; IEEE Scheme
  37.  
  38.   (NOT <object>)
  39.   (BOOLEAN? <object>)
  40.  
  41.   (EQ?    <obj1> <obj2>)
  42.   (EQV?   <obj1> <obj2>)
  43.   (EQUAL? <obj1> <obj2>)
  44.  
  45.   (PAIR? <object>)
  46.   (CONS <obj1> <obj2>)
  47.   (CAR <pair>)
  48.   (CDR <pair>)
  49.   (SET-CAR! <pair> <object>)
  50.   (SET-CDR! <pair> <object>)
  51.   (CAAR  <list>)   (CADR  <list>)   (CDAR  <list>)   (CDDR <list>)
  52.   (CAAAR <list>)   (CAADR <list>)   (CADAR <list>)   (CADDR <list>)
  53.   (CDAAR <list>)   (CDADR <list>)   (CDDAR <list>)   (CDDDR <list>)
  54.   (CAAAAR <list>)  (CAAADR <list>)  (CAADAR <list>)  (CAADDR <list>)
  55.   (CADAAR <list>)  (CADADR <list>)  (CADDAR <list>)  (CADDDR <list>)
  56.   (CDAAAR <list>)  (CDAADR <list>)  (CDADAR <list>)  (CDADDR <list>)
  57.   (CDDAAR <list>)  (CDDADR <list>)  (CDDDAR <list>)  (CDDDDR <list>)
  58.   (NULL? <object>)
  59.   (LIST? <object>)
  60.   (LIST <object>* )
  61.   (LENGTH <list>)
  62.   (APPEND <list>+ )
  63.   (REVERSE <list>)
  64.   (LIST-REF <list> <index>)
  65.  
  66.   (MEMQ  <object> <list>)
  67.   (MEMV  <object> <list>)
  68.   (MEMBER <object> <list>)
  69.  
  70.   (ASSQ  <object> <alist>)
  71.   (ASSV  <object> <alist>)
  72.   (ASSOC <object> <alist>)
  73.  
  74.   (SYMBOL? <object>)  (SYMBOL->STRING <symbol>)  (STRING->SYMBOL <string>)
  75.  
  76.   (NUMBER? <object>)
  77.   (COMPLEX? <object>)
  78.   (REAL? <object>)
  79.   (RATIONAL? <object>)
  80.   (INTEGER? <object>)
  81.   (EXACT? <number>)     (INEXACT? <number>)
  82.   (=  <number>+ )
  83.   (<  <number>+ )  (>  <number>+ )
  84.   (<= <number>+ )  (>= <number>+ )
  85.   (ZERO? <number>)
  86.   (POSITIVE? <number>)  (NEGATIVE? <number>)
  87.   (ODD? <number>)       (EVEN? <number>)
  88.   (MAX <number>+ )      (MIN <number>+ )
  89.   (+ <number>+ )
  90.   (* <number>+ )
  91.   (- <number>+ )
  92.   (/ <number>+ )
  93.   (ABS <number>)
  94.   (QUOTIENT <num1> <num2>)  (REMAINDER <num1> <num2>)
  95.   (MODULO <num1> <num2>)
  96.   (GCD <number>* )          (LCM <number>* )
  97.   (NUMERATOR <rational>)    (DENOMINATOR <rational>)
  98.   (FLOOR <number>)          (CEILING <number>)
  99.   (TRUNCATE <number>)       (ROUND <number>)
  100.   (RATIONALIZE <num1> <num2>)
  101.   (EXP <number>)            (LOG <number>)
  102.   (SIN <number>)   (COS <number>)   (TAN <number>)
  103.   (ASIN <number>)  (ACOS <number>)  (ATAN <number> [<number>])
  104.   (SQRT <number>)
  105.   (EXPT <num1> <num2>)
  106.   (MAKE-RECTANGULAR <num1> <num2>)  (MAKE-POLAR <num1> <num2>)
  107.   (REAL-PART <number>)       (IMAG-PART <number>)
  108.   (MAGNITUDE <number>)       (ANGLE <number>)
  109.   (EXACT->INEXACT <number>)  (INEXACT->EXACT <number>)
  110.   (NUMBER->STRING <number>)  (STRING->NUMBER <string>)
  111.  
  112.   (CHAR? <object>)
  113.   (CHAR=?  <char1> <char2>)  (CHAR-CI=?  <char1> <char2>)
  114.   (CHAR<?  <char1> <char2>)  (CHAR-CI<?  <char1> <char2>)
  115.   (CHAR>?  <char1> <char2>)  (CHAR-CI>?  <char1> <char2>)
  116.   (CHAR<=? <char1> <char2>)  (CHAR-CI<=? <char1> <char2>)
  117.   (CHAR>=? <char1> <char2>)  (CHAR-CI>=? <char1> <char2>)
  118.   (CHAR-ALPHABETIC? <character>)
  119.   (CHAR-NUMERIC?    <character>)
  120.   (CHAR-WHITESPACE? <character>)
  121.   (CHAR-UPPER-CASE? <character>)  (CHAR-LOWER-CASE? <character>)
  122.   (CHAR->INTEGER <character>)     (INTEGER->CHAR    <integer>)
  123.   (CHAR-UPCASE   <character>)     (CHAR-DOWNCASE    <character>)
  124.  
  125.   (STRING? <object>)
  126.   (MAKE-STRING <length> [<character>] )
  127.   (STRING <character>+ )
  128.   (STRING-LENGTH <string>)
  129.   (STRING-REF <string> <index>)
  130.   (STRING-SET! <string> <index> <character>)
  131.   (STRING=?  <string1> <string2>)  (STRING-CI=?  <string1> <string2>)
  132.   (STRING<?  <string1> <string2>)  (STRING-CI<?  <string1> <string2>)
  133.   (STRING>?  <string1> <string2>)  (STRING-CI>?  <string1> <string2>)
  134.   (STRING<=? <string1> <string2>)  (STRING-CI<=? <string1> <string2>)
  135.   (STRING>=? <string1> <string2>)  (STRING-CI>=? <string1> <string2>)
  136.   (SUBSTRING <string> <start-index> <end-index>)
  137.   (STRING-APPEND <string>+ )
  138.  
  139.   (VECTOR? <object>)
  140.   (MAKE-VECTOR <length> [<object>] )
  141.   (VECTOR <object>* )
  142.   (VECTOR-LENGTH <vector>)
  143.   (VECTOR-REF  <vector> <index>)
  144.   (VECTOR-SET! <vector> <index> <object>)
  145.  
  146.   (PROCEDURE? <object>)
  147.   (APPLY <procedure> <arg>* <arg-list>)
  148.   (MAP   <procedure> <list>+ )
  149.   (FOR-EACH <procedure> <list>+ )
  150.   (CALL-WITH-CURRENT-CONTINUATION <one-argument-procedure>)
  151.  
  152.   (CALL-WITH-INPUT-FILE  <string> <procedure>)
  153.   (CALL-WITH-OUTPUT-FILE <string> <procedure>)
  154.   (INPUT-PORT? <object>)  (OUTPUT-PORT? <object>)
  155.   (CURRENT-INPUT-PORT)    (CURRENT-OUTPUT-PORT)
  156.   (OPEN-INPUT-FILE  <string>)       (OPEN-OUTPUT-FILE <string>)
  157.   (CLOSE-INPUT-PORT  <input-port>)  (CLOSE-OUTPUT-PORT <output-port>)
  158.   (EOF-OBJECT? <object>)
  159.   (READ [<input-port>] )
  160.   (READ-CHAR [<input-port>] )
  161.   (PEEK-CHAR [<input-port>] )
  162.   (WRITE   <object> [<output-port>] )
  163.   (DISPLAY <object> [<output-port>] )
  164.   (NEWLINE [<output-port>] )
  165.   (WRITE-CHAR <character> [<output-port>] )
  166.  
  167.  
  168. ; R4RS Scheme
  169.  
  170.   (LIST-TAIL <list> <index>)
  171.   (STRING->LIST <string>)
  172.   (LIST->STRING <list-of-characters>)
  173.   (STRING-COPY  <string>)
  174.   (STRING-FILL! <string> <character>)
  175.   (VECTOR->LIST <vector>)
  176.   (LIST->VECTOR <list>)
  177.   (VECTOR-FILL! <vector> <object>)
  178.   (DELAY <expression>)
  179.   (FORCE <promise>)
  180.   (WITH-INPUT-FROM-FILE <string> <thunk>)
  181.   (WITH-OUTPUT-TO-FILE  <string> <thunk>)
  182.   (CHAR-READY? [<input-port>] )
  183.   (LOAD <string>)
  184.   (TRANSCRIPT-ON <string>)
  185.   (TRANSCRIPT-OFF)
  186.  
  187.   (DEFINE-SYNTAX <name> <transformer-spec>)     -- High-Level macros (only)
  188.   (LET-SYNTAX    ( <syntax-spec>* ) <exp>+ )
  189.   (LETREC-SYNTAX ( <syntax-spec>* ) <exp>+ )
  190.  
  191.  
  192.  
  193. === STANDARDS REFERENCES ===
  194.  
  195.  
  196. IEEE Standard 1178-1990. "IEEE Standard for the Scheme Programming
  197. Language", IEEE, New York, 1991, ISBN 1-55937-125-0 [1-800-678-IEEE:
  198. order # SH14209].  -- now also an ANSI standard.
  199.  
  200. W. Clinger and J. Rees, eds., "Revised^4 Report on the Algorithmic
  201. Language Scheme", ACM LISP Pointers IV, 3 (July-September 1991).
  202.