home *** CD-ROM | disk | FTP | other *** search
- ;; FILE "Scheme Sigs"
- ;; IMPLEMENTS R^4RS Function Signature Synopsis
- ;; AUTHOR Kenneth A Dickey
- ;; DATE 1992 October 2
- ;; LAST UPDATED 1992 October 3
- ;; NOTES: Extracted from Amiga Gambit QuickTour file
-
- === FUNCTION SYNOPSIS ===
-
- Notation:
- <object> any Scheme data object.
- <object>* zero or more objects
- <object>+ one or more objects
- [<object>] optional object
- ( <whatever> )... Zero or more occurances of ( <whatever> )
-
- ; SYNTAX
-
- (LAMBDA <name> <exp>+ )
- (LAMBDA (<name>* ) <exp>+ )
- (AND <object>*)
- (OR <object>*)
- (IF <test-exp> <if-true> [<if-false>] )
- (COND (<test> <exp>* )... [(ELSE <exp>+)] )
- (CASE <key-exp> ((<datum>+ ) <exp>* )... [(ELSE <exp>+)] )
- (DEFINE <name> ( <name>* ) <body-exp> )
- (DEFINE <name> <name> <body-exp> )
- (LET [<name>] ( (<vname> <value-exp>)... ) <body-exp> )
- (LET* ( (<vname> <value-exp>)... ) <body-exp> )
- (LETREC ( (<vname> <value-exp>)... ) <body-exp> )
- (BEGIN <expression>+ )
- (DO ( (<var> <init> <step>)... ) ( <test> <exp>* ) <exp>* )
- ;; Note also R^4RS syntax, below
-
-
- ; IEEE Scheme
-
- (NOT <object>)
- (BOOLEAN? <object>)
-
- (EQ? <obj1> <obj2>)
- (EQV? <obj1> <obj2>)
- (EQUAL? <obj1> <obj2>)
-
- (PAIR? <object>)
- (CONS <obj1> <obj2>)
- (CAR <pair>)
- (CDR <pair>)
- (SET-CAR! <pair> <object>)
- (SET-CDR! <pair> <object>)
- (CAAR <list>) (CADR <list>) (CDAR <list>) (CDDR <list>)
- (CAAAR <list>) (CAADR <list>) (CADAR <list>) (CADDR <list>)
- (CDAAR <list>) (CDADR <list>) (CDDAR <list>) (CDDDR <list>)
- (CAAAAR <list>) (CAAADR <list>) (CAADAR <list>) (CAADDR <list>)
- (CADAAR <list>) (CADADR <list>) (CADDAR <list>) (CADDDR <list>)
- (CDAAAR <list>) (CDAADR <list>) (CDADAR <list>) (CDADDR <list>)
- (CDDAAR <list>) (CDDADR <list>) (CDDDAR <list>) (CDDDDR <list>)
- (NULL? <object>)
- (LIST? <object>)
- (LIST <object>* )
- (LENGTH <list>)
- (APPEND <list>+ )
- (REVERSE <list>)
- (LIST-REF <list> <index>)
-
- (MEMQ <object> <list>)
- (MEMV <object> <list>)
- (MEMBER <object> <list>)
-
- (ASSQ <object> <alist>)
- (ASSV <object> <alist>)
- (ASSOC <object> <alist>)
-
- (SYMBOL? <object>) (SYMBOL->STRING <symbol>) (STRING->SYMBOL <string>)
-
- (NUMBER? <object>)
- (COMPLEX? <object>)
- (REAL? <object>)
- (RATIONAL? <object>)
- (INTEGER? <object>)
- (EXACT? <number>) (INEXACT? <number>)
- (= <number>+ )
- (< <number>+ ) (> <number>+ )
- (<= <number>+ ) (>= <number>+ )
- (ZERO? <number>)
- (POSITIVE? <number>) (NEGATIVE? <number>)
- (ODD? <number>) (EVEN? <number>)
- (MAX <number>+ ) (MIN <number>+ )
- (+ <number>+ )
- (* <number>+ )
- (- <number>+ )
- (/ <number>+ )
- (ABS <number>)
- (QUOTIENT <num1> <num2>) (REMAINDER <num1> <num2>)
- (MODULO <num1> <num2>)
- (GCD <number>* ) (LCM <number>* )
- (NUMERATOR <rational>) (DENOMINATOR <rational>)
- (FLOOR <number>) (CEILING <number>)
- (TRUNCATE <number>) (ROUND <number>)
- (RATIONALIZE <num1> <num2>)
- (EXP <number>) (LOG <number>)
- (SIN <number>) (COS <number>) (TAN <number>)
- (ASIN <number>) (ACOS <number>) (ATAN <number> [<number>])
- (SQRT <number>)
- (EXPT <num1> <num2>)
- (MAKE-RECTANGULAR <num1> <num2>) (MAKE-POLAR <num1> <num2>)
- (REAL-PART <number>) (IMAG-PART <number>)
- (MAGNITUDE <number>) (ANGLE <number>)
- (EXACT->INEXACT <number>) (INEXACT->EXACT <number>)
- (NUMBER->STRING <number>) (STRING->NUMBER <string>)
-
- (CHAR? <object>)
- (CHAR=? <char1> <char2>) (CHAR-CI=? <char1> <char2>)
- (CHAR<? <char1> <char2>) (CHAR-CI<? <char1> <char2>)
- (CHAR>? <char1> <char2>) (CHAR-CI>? <char1> <char2>)
- (CHAR<=? <char1> <char2>) (CHAR-CI<=? <char1> <char2>)
- (CHAR>=? <char1> <char2>) (CHAR-CI>=? <char1> <char2>)
- (CHAR-ALPHABETIC? <character>)
- (CHAR-NUMERIC? <character>)
- (CHAR-WHITESPACE? <character>)
- (CHAR-UPPER-CASE? <character>) (CHAR-LOWER-CASE? <character>)
- (CHAR->INTEGER <character>) (INTEGER->CHAR <integer>)
- (CHAR-UPCASE <character>) (CHAR-DOWNCASE <character>)
-
- (STRING? <object>)
- (MAKE-STRING <length> [<character>] )
- (STRING <character>+ )
- (STRING-LENGTH <string>)
- (STRING-REF <string> <index>)
- (STRING-SET! <string> <index> <character>)
- (STRING=? <string1> <string2>) (STRING-CI=? <string1> <string2>)
- (STRING<? <string1> <string2>) (STRING-CI<? <string1> <string2>)
- (STRING>? <string1> <string2>) (STRING-CI>? <string1> <string2>)
- (STRING<=? <string1> <string2>) (STRING-CI<=? <string1> <string2>)
- (STRING>=? <string1> <string2>) (STRING-CI>=? <string1> <string2>)
- (SUBSTRING <string> <start-index> <end-index>)
- (STRING-APPEND <string>+ )
-
- (VECTOR? <object>)
- (MAKE-VECTOR <length> [<object>] )
- (VECTOR <object>* )
- (VECTOR-LENGTH <vector>)
- (VECTOR-REF <vector> <index>)
- (VECTOR-SET! <vector> <index> <object>)
-
- (PROCEDURE? <object>)
- (APPLY <procedure> <arg>* <arg-list>)
- (MAP <procedure> <list>+ )
- (FOR-EACH <procedure> <list>+ )
- (CALL-WITH-CURRENT-CONTINUATION <one-argument-procedure>)
-
- (CALL-WITH-INPUT-FILE <string> <procedure>)
- (CALL-WITH-OUTPUT-FILE <string> <procedure>)
- (INPUT-PORT? <object>) (OUTPUT-PORT? <object>)
- (CURRENT-INPUT-PORT) (CURRENT-OUTPUT-PORT)
- (OPEN-INPUT-FILE <string>) (OPEN-OUTPUT-FILE <string>)
- (CLOSE-INPUT-PORT <input-port>) (CLOSE-OUTPUT-PORT <output-port>)
- (EOF-OBJECT? <object>)
- (READ [<input-port>] )
- (READ-CHAR [<input-port>] )
- (PEEK-CHAR [<input-port>] )
- (WRITE <object> [<output-port>] )
- (DISPLAY <object> [<output-port>] )
- (NEWLINE [<output-port>] )
- (WRITE-CHAR <character> [<output-port>] )
-
-
- ; R4RS Scheme
-
- (LIST-TAIL <list>)
- (STRING->LIST <string>)
- (LIST->STRING <list-of-characters>)
- (STRING-COPY <string>)
- (STRING-FILL! <string> <character>)
- (VECTOR->LIST <vector>)
- (LIST->VECTOR <list>)
- (VECTOR-FILL! <vector> <object>)
- (DELAY <expression>)
- (FORCE <promise>)
- (WITH-INPUT-FROM-FILE <string> <thunk>)
- (WITH-OUTPUT-TO-FILE <string> <thunk>)
- (CHAR-READY? [<input-port>] )
- (LOAD <string>)
- (TRANSCRIPT-ON <string>)
- (TRANSCRIPT-OFF)
-
- (DEFINE-SYNTAX <name> <transformer-spec>) -- High-Level macros (only)
- (LET-SYNTAX ( <syntax-spec>* ) <exp>+ )
- (LETREC-SYNTAX ( <syntax-spec>* ) <exp>+ )
-
-
-
- === STANDARDS REFERENCES ===
-
-
- IEEE Standard 1178-1990. "IEEE Standard for the Scheme Programming
- Language", IEEE, New York, 1991, ISBN 1-55937-125-0 [1-800-678-IEEE:
- order # SH14209]. -- now also an ANSI standard.
-
- W. Clinger and J. Rees, eds., "Revised^4 Report on the Algorithmic
- Language Scheme", ACM LISP Pointers IV, 3 (July-September 1991).
-