;; 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 <exp>*) (OR <exp>*) (IF <test-exp> <if-true> [<if-false>] ) (COND (<test> <exp>* )... [(ELSE <exp>+)] ) (CASE <key-exp> ((<datum>+ ) <exp>* )... [(ELSE <exp>+)] ) (DEFINE ( <name> <name>* ) <exp>+ ) (DEFINE <name> <exp> ) (LET [<name>] ( (<vname> <value-exp>)... ) <exp>+ ) (LET* ( (<vname> <value-exp>)... ) <exp>+ ) (LETREC ( (<vname> <value-exp>)... ) <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> <index>) (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).