Summary of Forms

The table that follows summarizes the Scheme syntactic forms and procedures described in Chapters 4 through 8. It shows the category of the form and the page number where it is defined. The category states whether the form describes a syntactic form or a procedure.

All page numbers appearing here refer to the printed version of this book and also serve as hypertext links to the corresponding locations in the electronic version of this book.


(* num ...)procedure143
(+ num ...)procedure142
(- num1)procedure143
(- num1 num2 num3 ...)procedure143
(/ num1)procedure143
(/ num1 num2 num3 ...)procedure143
(< real1 real2 real3 ...)procedure141
(<= real1 real2 real3 ...)procedure141
(= num1 num2 num3 ...)procedure141
(> real1 real2 real3 ...)procedure141
(>= real1 real2 real3 ...)procedure141
(abs real)procedure146
(acos num)procedure152
(and exp ...)syntax97
(angle num)procedure150
(append list ...)procedure136
(apply procedure obj ... list)procedure95
(asin num)procedure152
(assoc obj alist)procedure138
(assq obj alist)procedure138
(assv obj alist)procedure138
(atan num)procedure152
(atan real1 real2)procedure152
(begin exp1 exp2 ...)syntax96
(boolean? obj)procedure129
(bound-identifier=? identifier1 identifier2)procedure193
(caaaar pair)procedure134
(caaadr pair)procedure134
(caaar pair)procedure134
(caadar pair)procedure134
(caaddr pair)procedure134
(caadr pair)procedure134
(caar pair)procedure134
(cadaar pair)procedure134
(cadadr pair)procedure134
(cadar pair)procedure134
(caddar pair)procedure134
(cadddr pair)procedure134
(caddr pair)procedure134
(cadr pair)procedure134
(call-with-current-continuation procedure)procedure104
(call-with-input-file filename proc)procedure172
(call-with-output-file filename proc)procedure176
(call-with-values producer consumer)procedure111
(car pair)procedure133
(case exp0 clause1 clause2 ...)syntax99
(cdaaar pair)procedure134
(cdaadr pair)procedure134
(cdaar pair)procedure134
(cdadar pair)procedure134
(cdaddr pair)procedure134
(cdadr pair)procedure134
(cdar pair)procedure134
(cddaar pair)procedure134
(cddadr pair)procedure134
(cddar pair)procedure134
(cdddar pair)procedure134
(cddddr pair)procedure134
(cdddr pair)procedure134
(cddr pair)procedure134
(cdr pair)procedure133
(ceiling real)procedure146
(char->integer char)procedure156
(char-alphabetic? char)procedure155
(char-ci<=? char1 char2 char3 ...)procedure154
(char-ci<? char1 char2 char3 ...)procedure154
(char-ci=? char1 char2 char3 ...)procedure154
(char-ci>=? char1 char2 char3 ...)procedure154
(char-ci>? char1 char2 char3 ...)procedure154
(char-downcase char)procedure156
(char-lower-case? letter)procedure155
(char-numeric? char)procedure155
(char-ready? input-port)procedure175
(char-upcase char)procedure156
(char-upper-case? letter)procedure155
(char-whitespace? char)procedure156
(char<=? char1 char2 char3 ...)procedure153
(char<? char1 char2 char3 ...)procedure153
(char=? char1 char2 char3 ...)procedure153
(char>=? char1 char2 char3 ...)procedure153
(char>? char1 char2 char3 ...)procedure153
(char? obj)procedure131
(close-input-port input-port)procedure172
(close-output-port output-port)procedure175
(complex? obj)procedure130
(cond clause1 clause2 ...)syntax98
(cons obj1 obj2)procedure133
(cos num)procedure152
(datum->syntax-object template-identifier obj)procedure197
(define var exp)syntax89
(define (var0 var1 ...) exp1 exp2 ...)syntax89
(define (var0 . varrexp1 exp2 ...)syntax89
(define (var0 var1 var2 ... . varrexp1 exp2 ...)syntax89
(define-syntax keyword exp)syntax184
(delay exp)syntax108
(denominator rat)procedure149
(display obj)procedure178
(display obj output-port)procedure178
(do ((var val update) ...) (test res ...) exp ...)syntax101
(dynamic-wind in body out)procedure105
(eof-object? obj)procedure174
(eq? obj1 obj2)procedure123
(equal? obj1 obj2)procedure127
(eqv? obj1 obj2)procedure125
(eval obj env-spec)procedure116
(even? int)procedure145
(exact->inexact num)procedure148
(exact? num)procedure141
(exp num)procedure151
(expt num1 num2)procedure148
(floor real)procedure146
(fluid-let-syntax ((keyword exp) ...) form1 form2 ...)syntax186
(for-each procedure list1 list2 ...)procedure103
(force promise)procedure109
(free-identifier=? identifier1 identifier2)procedure193
(gcd int ...)procedure147
(generate-temporaries list)procedure199
(identifier? obj)procedure193
(if test consequent alternative)syntax97
(if test consequent)syntax97
(imag-part num)procedure150
(inexact->exact num)procedure148
(inexact? num)procedure141
(input-port? obj)procedure171
(integer->char int)procedure158
(integer? obj)procedure130
(lambda formals exp1 exp2 ...)syntax86
(lcm int ...)procedure147
(length list)procedure135
(let ((var val) ...) exp1 exp2 ...)syntax87
(let name ((var val) ...) exp1 exp2 ...)syntax100
(let* ((var val) ...) exp1 exp2 ...)syntax88
(let-syntax ((keyword exp) ...) form1 form2 ...)syntax185
(letrec ((var val) ...) exp1 exp2 ...)syntax88
(letrec-syntax ((keyword exp) ...) form1 form2 ...)syntax185
(list obj ...)procedure134
(list->string list)procedure163
(list->vector list)procedure166
(list-ref list n)procedure135
(list-tail list n)procedure135
(list? obj)procedure134
(load filename)procedure179
(log num)procedure151
(magnitude num)procedure150
(make-polar real1 real2)procedure150
(make-rectangular real1 real2)procedure150
(make-string n)procedure160
(make-string n char)procedure160
(make-vector n)procedure164
(make-vector n obj)procedure164
(map procedure list1 list2 ...)procedure102
(max real1 real2 ...)procedure147
(member obj list)procedure137
(memq obj list)procedure137
(memv obj list)procedure137
(min real1 real2 ...)procedure147
(modulo int1 int2)procedure145
(negative? real)procedure144
(newline output-port)procedure178
(not obj)procedure97
(null-environment version)procedure117
(null? obj)procedure129
(number->string num)procedure153
(number->string num radix)procedure153
(number? obj)procedure130
(numerator rat)procedure149
(odd? int)procedure145
(open-input-file filename)procedure171
(open-output-file filename)procedure175
(or exp ...)syntax98
(output-port? obj)procedure175
(pair? obj)procedure130
(peek-char input-port)procedure174
(positive? real)procedure144
(procedure exp ...)syntax95
(procedure? obj)procedure132
(quasiquote obj)syntax122
(quote obj)syntax121
(quotient int1 int2)procedure145
(rational? obj)procedure130
(rationalize real1 real2)procedure149
(read input-port)procedure173
(read-char input-port)procedure174
(real-part num)procedure149
(real? obj)procedure130
(remainder int1 int2)procedure145
(reverse list)procedure137
(round real)procedure146
(scheme-report-environment version)procedure117
(set! var exp)syntax91
(set-car! pair obj)procedure133
(set-cdr! pair obj)procedure134
(sin num)procedure152
(sqrt num)procedure151
(string char ...)procedure160
(string->list string)procedure163
(string->number string)procedure152
(string->number string radix)procedure152
(string->symbol string)procedure167
(string-append string ...)procedure161
(string-ci<=? string1 string2 string3 ...)procedure160
(string-ci<? string1 string2 string3 ...)procedure160
(string-ci=? string1 string2 string3 ...)procedure160
(string-ci>=? string1 string2 string3 ...)procedure160
(string-ci>? string1 string2 string3 ...)procedure160
(string-copy string)procedure161
(string-fill! string char)procedure162
(string-length string)procedure160
(string-ref string n)procedure161
(string-set! string n char)procedure161
(string<=? string1 string2 string3 ...)procedure158
(string<? string1 string2 string3 ...)procedure158
(string=? string1 string2 string3 ...)procedure158
(string>=? string1 string2 string3 ...)procedure158
(string>? string1 string2 string3 ...)procedure158
(string? obj)procedure131
(substring string start end)procedure162
(symbol->string symbol)procedure168
(symbol? obj)procedure132
(syntax template)syntax192
(syntax-case exp (literal ...) clause ...)syntax191
(syntax-object->datum obj)procedure197
(syntax-rules (literal ...) clause ...)syntax187
(tan num)procedure152
(transcript-on filename)procedure179
(truncate real)procedure146
(unquote obj)syntax122
(unquote-splicing obj)syntax122
(values obj ...)procedure110
(vector obj ...)procedure164
(vector->list vector)procedure166
(vector-fill! vector obj)procedure165
(vector-length vector)procedure164
(vector-ref vector n)procedure165
(vector-set! vector n obj)procedure165
(vector? obj)procedure132
(with-input-from-file filename thunk)procedure173
(with-output-to-file filename thunk)procedure177
(with-syntax ((pattern val) ...) exp1 exp2 ...)syntax196
(write obj)procedure177
(write obj output-port)procedure177
(write-char char)procedure178
(write-char char output-port)procedure178
(zero? num)procedure144

R. Kent Dybvig / The Scheme Programming Language, Third Edition
Copyright © 2003 The MIT Press. Electronically reproduced by permission.
Illustrations © 2003 Jean-Pierre Hébert
ISBN 0-262-54148-3 / LOC QA76.73.S34D93
to order this book / about this book