This index is a unified index for this book and The Scheme Programming Language, Third Edition. Page numbers prefixed by "t" refer the latter document. Italicized page numbers refer to the primary description of a syntactic form or procedure.
All page numbers appearing here refer to the printed version of these books and also serve as hypertext links to the corresponding locations in the electronic versions of these books.
! (exclamation point), t8
" (double quote), t158
# (hash), t140
#!false, 333
#!null, 333
#!true, 333
#n# (graph reference), 4, 192, 333
#% (\#primitive), 4, 262, 333
#2% (\#primitive), 262
#3% (\#primitive), 262
#&, 336
#& (box prefix), 4, 112
#' (syntax prefix), 4
#' (syntax), 216, 336
#( (vector prefix), 4, 336
#n( (vector prefix), 4, 336
#, (unsyntax), 222, 336
#,@ (unsyntax-splicing), 222, 336
#: (gensym prefix), 3, 114, 193, 335
#; (datum comment prefix), 4, 333
#n= (graph mark), 4, 192, 333
#[ (record prefix), 4, 336
#\, t153
#\backspace, 3, 336
#\linefeed, 3, 336
#\newline, 3, 336
#\nul, 3, 336
#\page, 3, 336
#\return, 3, 336
#\rubout, 3, 336
#{ (gensym prefix), 3, 114, 193, 335
#\space, 3, 336
#\tab, 3, 336
#` (quasisyntax), 222, 336
#| (block comment prefix), 4, 333
#b (binary), t140
#d (decimal), t140
#f, t7, t35, t122
#o (octal), t140
#nr (radix prefix), 3, 336
#t, t7, t35, t122
#x (hexadecimal), t140
' (quote), 336, t17, t22, t57, t121
(), t7, t18
*, t16, t143
+, t16, t142
+inf.0, 3, 336
+nan.0, 3, 336
, (unquote), 87, 336, t122
,@ (unquote-splicing), 87, 336, t122
-, t16, t143
-- command-line option, 20
--boot command-line option, 20
--compact command-line option, 20
--eedisable command-line-option, 20
--eehistory command-line-option, 20, 304
--heap command-line option, 20
--help command-line option, 20
--quiet command-line option, 20
--saveheap command-line option, 20
--script command-line option, 20, 22, 274, 275
--verbose command-line option, 20
--version command-line option, 20
->, t8
-1+, 163
-b command-line option, 20
-c command-line option, 20
-h command-line option, 20
-inf.0, 3, 336
-nan.0, 3, 336
-q command-line option, 20
-s command-line option, 20
. (dot), t19
... (ellipses), 192, 212, 321, t59, t187
/, t16, t143
; (comment), 333, t7, t277
<, t141
<=, t141
=, t141
=>, t98
>, t141
>=, t141
? (question mark), t8, t36
[, 3, 186, 333
\#primitive ( #% ), 262
\#primitive ( #2% ), 262
\#primitive ( #3% ), 262
\#system, 238
\#system module, 238
], 3, 186, 333
_ (underscore), 213, t59, t189, t203
` (quasiquote), 87, 336, t122
|# (block comment suffix), 4, 333
1+, 163
1-, 163
abort, 10, 273
abort-handler, 273
abs, 152, t33, t146, t150
abstract objects, t51, t238
acos, t152
acosh, 165
actual parameters, t26, t86
add1, 163
Algol 60, t5
alias, 77, 241, 334
and, 322, t35, t60, t97
andmap, 91, 323
angle, t150
append, t44, t136
append!, 107
applications, 23
apply, t95
apropos, 250
apropos-list, 250
arbitrary precision, t139
ash, 158
asin, t152
asinh, 165
assignable variables, 38
assignment, t91
assignments, 83, 85, t45, t91
assoc, t138
association list, 106, t138, t234
assp, 106
assq, t138
assv, t138
atan, t152
atanh, 165
atom?, 102, t39
auxiliary keywords, 212, t59, t187
base case, t40
be-like-begin, t202
begin, 77, 78, 334, t49, t58, t90, t96, t277
bignum, 143
bignum?, 144
binary trees, t132
binding, t4
block structure, t4
block-read, 178
block-write, 183
boolean, 52, 53
boolean values, t7
boolean=?, 117
boolean?, t129
boot files, 20, 27
bound-identifier=?, 219, t193
box, 113
box?, 112
boxes, 112
brackets ( [ ] ), t7, t132
break, 225, 245, t198
break-handler, 245
broadcast streams, 167
bwp-object?, 291
bytes-allocated, 281
C, t224
C (programming language), 49, 50, 57, 59, 61
C preprocessor macros, 61
C-callable library functions, 61
caaaar, t134
caaadr, t134
caaar, t134
caadar, t134
caaddr, t134
caadr, t134
caar, t134
caar, cadr, ..., cddddr, t33
cadaar, t134
cadadr, t134
cadar, t134
caddar, t134
cadddr, t134
caddr, t134
cadr, t30, t31, t33, t134
café, 10, 271
call-by-name, t238
call-by-reference, 112
call-by-value, t237
call-with-current-continuation, t71, t104, t107, t113, t256
call-with-input-file, 176, t172
call-with-output-file, 182, t176
call-with-values, 5, t110, t111
call/1cc, 93
call/cc, 93, t71, t104, t107, t113, t255, t256
car, t18, t132, t133
case, 221, t52, t99, t196
case-lambda, 32, 80, 283
case-sensitive, 191
cd, 196
cdaaar, t134
cdaadr, t134
cdaar, t134
cdadar, t134
cdaddr, t134
cdadr, t134
cdar, t134
cddaar, t134
cddadr, t134
cddar, t134
cdddar, t134
cddddr, t134
cdddr, t134
cddr, t30, t33, t134
cdr, t18, t36, t132, t133
ceiling, t146
cfl*, 154
cfl+, 154
cfl-, 154
cfl-conjugate, 154
cfl-imag-part, 154
cfl-magnitude-squared, 155
cfl-real-part, 154
cfl/, 154
cfl=, 154
cflonum?, 145
cflonums, 153
char, 52, 53
char-, 109
char->integer, t156
char-alphabetic?, t155
char-ci<=?, t154
char-ci<?, t154
char-ci=?, t154
char-ci>=?, t154
char-ci>?, t154
char-downcase, t156
char-lower-case?, t155
char-name, 190
char-numeric?, t155
char-ready?, 50, t175
char-upcase, t156
char-upper-case?, t155
char-whitespace?, t156
char<=?, t153
char<?, t153
char=?, t153
char>=?, t153
char>?, t153
char?, t131
characters, t153
Chez Scheme, tix, t37, t40, t114, t216
chmod, 197
circular lists, t133
clear-input-port, 173
clear-output-port, 173
close-input-port, t172
close-output-port, t175
close-port, 172
collect, 288
collect-generation-radix, 289
collect-maximum-generation, 287, 288
collect-notify, 289
collect-request-handler, 289
collect-trip-bytes, 289
command-line, 274, 275
command-line options, 20
command-line-arguments, 274, 275
comments, 4, 333, t7, t277
Common Lisp, t6
compilation, 253
compile, 251, 263
compile-compressed, 254, 264
compile-file, 13, 16, 25, 253, 262
compile-interpret-simple, 263
compile-port, 254
compile-profile, 269
compile-script, 23, 254
compiler, t4
complete, see engines
complex numbers, 153, t139, t242
complex?, t130, t139
compose, t33
concatenated streams, 167
cond, 221, 322, t38, t42, t98, t196
condition-broadcast, 311
condition-signal, 311
condition-wait, 311
condition?, 311
conditionals, t97
conjugate, 155, 164
cons, t19, t133
cons cell, t132
cons*, 103
consing, t19
console-input-port, 175, 272
console-output-port, 180, 272
constant, t121
constants, t21, t121
continuation passing style, t248
continuation-passing style, t75
continuations, 94, t5, t70, t105, t250
control structures, t95
copy propagation, 16
copy-environment, 249
core syntactic forms, t4, t22, t57, t234
cos, t152
cosh, 165
cp0-effort-limit, 264
cp0-outer-unroll-limit, 264
cp0-score-limit, 264
CPS, t75
cpu-time, 281
creating subprocesses, 49
critical-section, 247, 289
current-date, 278
current-date offset, 278
current-directory, 196
current-eval, 251
current-expand, 255, 319
current-input-port, 175, t171
current-output-port, 180, t175
current-time, 276
current-time time-type, 276
custom.c, 23
customization, 23
cyclic lists, t54
d (double), t140
data, t121
date-and-time, 280
date-day, 279
date-hour, 279
date-minute, 279
date-month, 279
date-nanosecond, 279
date-second, 279
date-week-day, 279
date-year, 279
date-year-day, 279
date-zone-offset, 279
date?, 279
datum, 224
datum, 336, t279
datum->syntax, 225, 329
datum->syntax-object, 225, t197, t205, t209
debug, 38, 244
debugger, 245
decode-float, 152
default-prompt-and-read, 272
define, 77, 85, t29, t77, t89
define-integrable, t206
define-object, t238
define-record, 127, 129
define-structure, 327, t207
define-syntax, 77, 207, 209, t59, t183, t184, t220
define-syntax-expander, 319
define-top-level-value, 85
defining syntactic extensions, t58
definitions, 77, 334, t277
defun syntax, t31, t58
delay, t108
delayed evaluation, t238
delete-directory, 197
delete-file, 197
delq!, t52
denominator, t149
derived definitions, 77
derived
expression, 335, t278
describe-segment, t112
directory-list, 196
directory-separator, 198
directory-separator?, 198
disable-interrupts, 246, 289
display, t178, t228
display-statistics, 280
display-string, 182
distributing applications, 23
divisors, t100, t102
do, 33, t101, t201
dot ( . ), t19
dotted pair, t19, t133
double, t26, t31
double quotes, t158
double-any, t29
double-cons, t26, t31
double-float, 52, 53, 54
doubler, t31
doubly recursive, t67
dxdy, t111
dynamic allocation, t3
dynamic-wind, 94, t105
echo streams, 167
ee-accept, 305
ee-auto-indent, 297, 300
ee-auto-paren-balance, 297, 300
ee-backward-char, 300
ee-backward-delete-char, 302
ee-backward-delete-sexp, 303
ee-backward-page, 302
ee-backward-sexp, 302
ee-backward-word, 302
ee-beginning-of-entry, 301
ee-beginning-of-line, 301
ee-bind-key, 299
ee-command-repeat, 306
ee-common-identifiers, 298, 303
ee-compose, 299, 307
ee-default-repeat, 298, 306
ee-delete-between-point-and-mark, 303
ee-delete-char, 302
ee-delete-entry, 303
ee-delete-line, 302
ee-delete-sexp, 303
ee-delete-to-eol, 302
ee-end-of-entry, 301
ee-end-of-line, 301
ee-eof, 305
ee-eof/delete-char, 306
ee-exchange-point-and-mark, 301
ee-flash-matching-delimiter, 301
ee-flash-parens, 298, 300
ee-forward-char, 300
ee-forward-page, 302
ee-forward-sexp, 302
ee-forward-word, 302
ee-goto-matching-delimiter, 301
ee-history-bwd, 301, 304
ee-history-bwd-contains, 304
ee-history-bwd-prefix, 304
ee-history-fwd, 301, 304
ee-history-fwd-contains, 304
ee-history-fwd-prefix, 304
ee-history-limit, 298
ee-id-completion, 303
ee-id-completion/indent, 303, 306
ee-indent, 305
ee-indent-all, 305
ee-insert-paren, 300
ee-insert-self, 299
ee-newline, 300
ee-newline/accept, 306
ee-next-id-completion, 303
ee-next-id-completion/indent, 304, 306
ee-next-line, 301
ee-noisy, 298
ee-open-line, 300
ee-paren-flash-delay, 298, 300, 301
ee-previous-line, 301
ee-redisplay, 305
ee-reset-entry, 303
ee-set-mark, 305
ee-standard-indent, 297
ee-string-macro, 299, 306
ee-suspend-process, 305
ee-yank-kill-buffer, 300
ee-yank-selection, 300
ellipses ( ... ), 192, 212, 321, t59, t187
else, 88, t98, t99
empty list, t7, t18
enable-interrupts, 246
engine-block, 99
engine-return, 99
engines, 94, 95, t250
enumerate, 104
environment, t234
environment-symbols, 250
environment?, 248
eof object, t171
eof-object, 175
eof-object?, t171, t174
eps-expand, 255, 319
eps-expand-once, 255, 319
eq-hashtable-cell, 126
eq-hashtable-contains?, 125
eq-hashtable-delete!, 127
eq-hashtable-ref, 125
eq-hashtable-set!, 125
eq-hashtable-update!, 126
eq-hashtable-weak?, 120
eq-hashtable?, 120
eq?, t123
equal?, 101, t127
equivalence predicates, t123
eqv?, 101, t36, t125
error, 243, t37, t216
error-handler, 16, 244
errors, 5, t8
eval, 251, t116
eval-syntax-expanders-when, 260
eval-when, 14, 256, 262, 319
evaluation, 261
even?, t45, t63, t78, t145
exact, 150, 165
exact complexnum, 143
exact->inexact, t148
exact?, t139, t141
exactness, 165, t139, t148
exactness preserving, t139
exception handling, 243
exclamation point ( ! ), t8
exists, 90
exit, 10, 274
exit-handler, 274
exp, t151
expand, 255, 271, 319
expand-time generativity, 128
expand/optimize, 265
expansion, t57
expansion process, 208
expansion-passing style, 318
expire, see engines
expression-editor, 297
expressions, t7
expt, t148
expt-mod, 163
extend-syntax, 318, 319, 320
extended examples, t213
f (single), t140
factor, t68, t69, t70
factorial, t66, t73, t101
false, t7, t35
fasl-file, 195
fasl-write, 195
fast Fourier transform (FFT), t242
fast loading format, 195
fenders, 215, 217, 320, 323, t191, t193
fibonacci, 96, t66, t92, t101, t252
Fibonacci numbers, t66, t92
file, t171
file-directory?, 196
file-exists?, 196
file-length, 172
file-position, 173
file-regular?, 196
file-symbolic-link?, 197
filter, 105
find, 106
first-class data values, t3
first-class procedures, t5
fixnum, 52, 53
fixnum, 143
fixnum->flonum, 150
fixnum?, 144
fl*, 152
fl+, 151
fl-, 151
fl-make-rectangular, 153
fl/, 152
fl<, 150
fl<=, 150
fl=, 150
fl>, 150
fl>=, 150
flabs, 152
flip-flop, t91
fllp, 153
floating point, t139
flonum, 143
flonum->fixnum, 150
flonum?, 145
floor, t146
flround, 152
fluid binding, 83, t106
fluid-let, 83
fluid-let-syntax, 207, 211, t186, t206
flush-output-port, 173
fold-left, 92
fold-right, 92
folding, 92
for-all, 91
for-each, t103
force, t109
foreign entry, 51
foreign-callable, 59
foreign-callable-entry-point, 59, 61
foreign-entry?, 56, 59
foreign-procedure, 51, 55, 59
foreign-procedure interface, 50
fork-thread, 309
formal parameters, t26, t28, t86
format, 188, 325
formatted output, 188, t231
fprintf, 190, t231
Fred, 116
free variable, t27
free-identifier=?, 219, t193
frequency, t224
fresh-line, 183
fx*, 148
fx+, 147
fx-, 147
fx/, 148
fx<, 146
fx<=, 146
fx=, 146
fx>, 146
fx>=, 146
fx1+, 148
fx1-, 148
fxabs, 149
fxeven?, 147
fxlogand, 159
fxlogbit?, 160
fxlogbit0, 161
fxlogbit1, 161
fxlogior, 159
fxlognot, 160
fxlogor, 159
fxlogtest, 160
fxlogxor, 159
fxmax, 149
fxmin, 149
fxmodulo, 149
fxnegative?, 146
fxnonnegative?, 147
fxnonpositive?, 147
fxodd?, 147
fxpositive?, 146
fxquotient, 149
fxremainder, 149
fxsll, 161
fxsra, 162
fxsrl, 162
fxvector, 110
fxvector->list, 112
fxvector-copy, 112
fxvector-fill!, 111
fxvector-length, 111
fxvector-ref, 111
fxvector-set!, 111
fxvector?, 110
fxzero?, 146
garbage collector, 287, t3
gcd, t147
generate-inspector-information, 263
generate-interrupt-trap, 263
generate-temporaries, 227, t199
generated symbols, 113
generativity of record definitions, 128
generic port, 167, 170
gensym, 113, 114, 193, 324
gensym->unique-string, 115
gensym-count, 114
gensym-prefix, 114
gensym?, 115
gensyms, 113
get-hash-table, 318
get-output-string, 175
get-registry, 285
getenv, 284
getprop, 116
getq, t52
goodbye, t40
guardians, 290
half, 31
hare and tortoise, t54, t64
hash ( # ), t140
hash-table-for-each, 318
hash-table-map, 318
hash-table?, 317
hashtable-cell, 122
hashtable-clear!, 124
hashtable-contains?, 121
hashtable-copy, 123
hashtable-delete!, 123
hashtable-entries, 124
hashtable-keys, 124
hashtable-mutable?, 121
hashtable-ref, 121
hashtable-set!, 121
hashtable-size, 123
hashtable-update!, 122
hashtable?, 120
hashtables, 119
heap files, 20
identifier-syntax, 218, t204, t205
identifier?, 217, t193
identifiers, 335, t6, t7, t278
ieee, 238
ieee module, 238
ieee-environment, 238, 248
if, t33, t34, t38, t49, t57, t97
imag-part, t150
imaginary numbers, 153
implicit begin, t96
import, 17, 77, 230, 334
import-only, 77, 230, 334
improper list, t19, t132
include, 18, 227, t198
inexact, 150, 165
inexact complexnum, 143
inexact->exact, t148
inexact?, t139, t141
inheritance, t242
inheritance in records, 128, 130
inlining, 16
input-port?, t171
inspect, 38
inspect/object, 43
inspector, 38
install-expander, 319
integer->char, t158
integer-32, 51, 53
integer-64, 52, 53
integer-divide, t76
integer-length, 164
integer?, t130, t139
integers, t139
integrable procedures, t206
interaction-environment, 249, t117
internal define-syntax, 207, t183
internal definitions, 208, t77, t86, t90
internal state, t47
internal syntactic definitions, 77
internal-defines-as-letrec*, 80
interpret, 251, t234
interpreter, t4, t234
iota, 104
iptr, 52, 53
isqrt, 163
iteration, 91, 92, t5, t43, t65, t100, t101, t102, t103
kernel, 23
keyboard-interrupt-handler, 245
keywords, 209, t4, t59, t184
l (long), t140
lambda, 31, 80, t25, t28, t57, t86
lambda*, 80
last-pair, 103
lazy, t49
lazy evaluation, t49, t108
lcm, t147
length, t40, t135
let, 32, 321, t23, t27, t62, t87, t100
let*, 319, 321, t61, t88
let*-values, 83
let-bound variables, t23
let-syntax, 77, 78, 207, 210, 334, 335, t183, t185, t203, t277, t278
let-values, 83, 228, t115, t200
letrec, 228, t63, t78, t88, t90, t199
letrec*, 82
letrec-syntax, 77, 78, 207, 210, 334, 335, t183, t185, t203, t277, t278
lexical scoping, t4, t5, t24, t61
light-weight threads, t250
Lisp, tix, t5
lisp-cdr, t36
list, t19, t30, t31, t134
list constants, t7
list*, 103
list->fxvector, 112
list->string, t163
list->vector, t166
list-copy, 103, t41
list-head, 102
list-ref, t135
list-sort, 118
list-tail, t135
list?, t54, t64, t65, t78, t134
lists, t17, t18, t132
literal-identifier=?, 219
literals, 211, t187
load, 9, 252, 253, t13, t179
load-shared-object, 56
local variable bindings, t87
lock-object, 59, 68, 294
log, t151
logand, 155
logbit?, 157
logbit0, 158
logbit1, 158
logior, 156
lognot, 156
logor, 156
logtest, 157
logxor, 156
loop, 225, t198
looping, t5
machine-type, 254, 255
macro definitions, 77
macros, 207, t183
magnitude, 152, 155, t146, t150
magnitude-squared, 155, 165
make-boot-header, 27, 254
make-condition, 311
make-counter, t48, t52
make-date, 278
make-engine, 95
make-eq-hashtable, 119
make-fxvector, 111
make-guardian, 291
make-hash-table, 317
make-input-port, 169
make-input/output-port, 169
make-list, 81, 104, t44
make-mutex, 310
make-output-port, 169
make-parameter, 283
make-pare, 327
make-polar, t150
make-promise, t109, t113
make-queue, t52
make-record-type, 127, 136
make-rectangular, t150
make-sstats, 281
make-stack, t50, t52
make-string, t160
make-thread-parameter, 312
make-time, 276
make-vector, t164
make-weak-eq-hashtable, 120
map, t43, t45, t102, t223
map1, t44
mapping, 91, t43, t102, t103
mark-port-closed!, 171
matrix multiplication, t213
max, t147
member, t137
memp, 106
memq, t137
memv, t41, t137
merge, 118, t219
merge!, 118
messages, t50, t238
meta, 77, 239, 334
meta-circular interpreter, t234
meta-cond, 240
method, t205
min, t147
mkdir, 197
module, 17, 77, 230, 334
modules, 17, 77, 229
modulo, t145
most-negative-fixnum, 145
most-positive-fixnum, 145
mul, t214
multiple values, 5, t8
multiprocessing, 94, t250
mutex-acquire, 310
mutex-release, 310
mutex?, 310
mutually recursive procedures, t63, t88
mvlet, 256
named let, t64, t68, t100
naming conventions, t7
negative?, t144
nested engines, t258
nested let expressions, t88
new-cafe, 10, 271
newline, t178
nodups?, 256
nondeterministic computations, 95, 98, t250, t253
nongenerative record definitions, 128, 132
nonlocal exits, t104, t105
nonnegative?, 164
nonpositive?, 164
not, t34, t97
null-environment, 238, 248, t117
null?, t36, t129
number->string, t153
number?, t37, t130
numbers, 336, t16, t139, t279
numerator, t149
object identity, t123
object-oriented programming, t205, t238
objects, t3
oblist, 116
occur free, t27, t29
odd?, t45, t63, t78, t145
one-shot continuations, 93
open-input-file, 176, t171
open-input-output-file, 183
open-input-string, 174
open-output-file, 180, t175
open-output-string, 174
operating system, 97, t253, t258
operations on objects, t121
operator precedence, t16
optimization, 16, 261
optimization level, 5
optimize-level, 19, 261
optional arguments, 80
or, t34, t35, t61, t98
order of evaluation, t22, t95
ordinals, 137
ormap, 90
output-port?, t175
pair?, t37, t130
pairs, t19, t132
parameterize, 283
parameters, 6
pares, 327
partition, 105
path-extension, 198
path-last, 198
path-parent, 198
path-root, 198
pattern matching, 320
pattern variable, 212, t187
pattern variables, 215, t59, t191
patterns, 212, t187
peek-char, t174
petite.boot, 23
Petite Chez Scheme, 1, 23, tix
pointer, 112
pointers, t4
por (parallel-or), 98, t254
port-closed?, 172
port-handler, 170
port-input-buffer, 170
port-input-index, 170
port-input-size, 170
port-name, 172
port-output-buffer, 171
port-output-index, 171
port-output-size, 171
port?, 172
ports, t171
positive?, t144
predicates, t8, t36, t122
prefix notation, t15, t16
pretty-file, 184
pretty-format, 185
pretty-initial-indent, 36, 187
pretty-line-length, 187
pretty-maximum-lines, 187
pretty-one-line-limit, 187
pretty-print, 184, 187, 194
pretty-standard-indent, 187
primitive procedures, t4
print-brackets, 194
print-gensym, 114, 193
print-graph, 135, 191
print-length, 135, 192
print-level, 6, 192
print-radix, 193
print-record, 136
print-vector-length, 4, 194
printf, 190, t232
procedure application, t16, t17, t21, t26, t95
procedure definition, t5, t30, t89
procedure?, t132
procedures, t25, t85, t86
process, 49
process ports, 202
product, t72, t76
profile-clear, 269
profile-dump, 271
profile-dump-html, 269
profile-dump-list, 270
profile-palette, 270
profiling, 19
program, 333, t277
proper list, t19, t54, t132
property lists, 115, 116
property-list, 116
put-hash-table!, 318
put-registry!, 285
putenv, 285
putprop, 115
putq!, t52
quadratic-formula, t46
quasiquote ( ` ), 87, t122
quasisyntax ( #` ), 222
question mark ( ? ), t8, t36
queue, t51
quote ( ' ), t17, t22, t57, t121
quotient, t145
r5rs, 238
r5rs module, 238
r5rs-syntax, 238
r5rs-syntax module, 238
random, 162
random number generator, 162
random-seed, 162
rational numbers, t139
rational?, t130, t139
rationalize, t149
ratnum, 143
ratnum?, 145
read, 192, t173
read-char, t174
read-token, 178
real numbers, t139
real-part, t149
real-time, 281
real?, t130, t139
rec, 81, 321, t200
reciprocal, t15, t35, t37, t77
record field ordinals, 137
record generativity, 128
record inheritance, 128, 130
record-case, 88
record-constructor, 138
record-field-accessible?, 138
record-field-accessor, 138
record-field-mutable?, 139
record-field-mutator, 139
record-predicate, 138
record-reader, 133
record-type-descriptor, 141
record-type-descriptor?, 138
record-type-field-decls, 140
record-type-field-names, 140
record-type-name, 139
record-type-parent, 140
record-type-symbol, 139
record-writer, 134
record?, 140
records, 88, 127
recursion, t5, t39, t62, t100
recursion step, t40
recursive object, 81
recursive procedure, t40
reference, 112
register-signal-handler, 247
remainder, t145
remove, 104
remove!, 104
remove-foreign-entry, 58
remove-hash-table!, 318
remove-registry!, 285
remp, 105
remprop, 116
remq, 104
remq!, 104
remv, 104, t42
remv!, 104
reset, 273
reset-handler, 16, 274
retry, t73, t77
reverse, t137
reverse!, 107
Revised Reports, tix, t3
revisit, 15, 253
round, t146
round-robin, 97, t253
run-cp0, 264
run-time generativity, 128
s (short), t140
Sactivate_thread, 71
safety, 19
Sbignump, 64
Sboolean, 66
Sboolean_value, 64
Sbooleanp, 64
Sbox, 67
Sboxp, 64
Sbuild_heap, 62
Sbwp_object, 66
Sbwp_objectp, 64
sc-expand, 255
Scall, 69
Scall0, 69
Scall1, 69
Scall2, 69
Scall3, 69
Scar, 65
Scdr, 65
Schar, 66
Schar_value, 64
Scharp, 64
scheme, 238
scheme module, 18, 238
Scheme shell scripts, 22
Scheme standard, 1, tix, t3
scheme-environment, 249
scheme-object, 51, 53, 54
scheme-report-environment, 238, 248, t117
scheme-script, 26, 274
scheme-start, 26, 274
scheme.boot, 23
SCHEMEHEAPDIRS, 20
Scompact_heap, 63, 68, 287, 288, 294
Scons, 67
scope, t24
scripting, 22
Sdeactivate_thread, 71
Sdestroy_thread, 71
segment-length, t111
segment-slope, t111
semicolon ( ; ), 333, t7, t277
Senable_expeditor, 62
Seof_object, 66
Seof_objectp, 64
sequence, t202
sequence of definitions, 77
sequencing, t96
set!, 85, t45, t57, t91
set-box!, 113
set-car!, t133
set-cdr!, t54, t134
set-of, t220
set-port-bol!, 171
set-port-input-index!, 170
set-port-input-size!, 170
set-port-output-index!, 171
set-port-output-size!, 171
set-sstats-bytes!, 282
set-sstats-cpu!, 282
set-sstats-gc-bytes!, 282
set-sstats-gc-count!, 282
set-sstats-gc-cpu!, 282
set-sstats-gc-real!, 282
set-sstats-real!, 282
set-time-nanosecond!, 277
set-time-second!, 277
set-time-type!, 277
set-timer, 95, 246
set-top-level-value!, 85
sets, t220
Sexactnump, 64
Sfalse, 66
Sfixnum, 66
Sfixnum_value, 64
Sfixnump, 64
Sflonum, 66
Sflonum_value, 64
Sflonump, 64
Sforeign_callable_entry_point, 69
Sforeign_symbol, 68
Sfxvector_length, 65
Sfxvector_ref, 65
Sfxvector_set, 65
Sfxvectorp, 64
shadowing, t4, t24, t30
shhh, t48
shorter, t39, t45
shorter?, t45
side effects, t8, t96
sin, t152
Sinexactnump, 64
single-float, 52, 54
sinh, 165
Sinitframe, 69
Sinputportp, 64
Sinteger, 66
Sinteger_value, 64
Slock_object, 68, 294
Smake_fxvector, 67
Smake_string, 67
Smake_uninitialized_string, 67
Smake_vector, 67
Snil, 66
Snullp, 64
sockets, 72, 202
sort, 118, t218
sort!, 118
source-directories, 261
Soutputportp, 64
Spairp, 64
special bindings (in Lisp), 84
split, t112
Sprocedurep, 64
Sput_arg, 69
sqrt, t151
square, t14
Sratnump, 64
Srecordp, 64
Sregister_boot_file, 62
Sregister_heap_file, 62
Sregister_symbol, 68
Ssave_heap, 63
Sscheme_deinit, 63
Sscheme_init, 62
Sscheme_script, 62
Sscheme_start, 62
Sset_box, 65
Sset_car, 65
Sset_cdr, 65
Sset_top_level_value, 67
Sset_verbose, 62
sstats-bytes, 282
sstats-cpu, 282
sstats-difference, 282
sstats-gc-bytes, 282
sstats-gc-count, 282
sstats-gc-cpu, 282
sstats-gc-real, 282
sstats-print, 282
sstats-real, 282
sstats?, 281
Sstring, 66
Sstring_length, 65
Sstring_of_length, 66
Sstring_ref, 65
Sstring_set, 65
Sstring_to_symbol, 67
Sstring_value, 65
Sstringp, 64
Ssymbol_to_string, 65
Ssymbolp, 64
stack objects, t50
statistics, 281
Stop_level_value, 67
storage management, 287
streams, t109
stretch strings, 328
string, 51, 52, 53, t160
string input port, 174
string output port, 174
string streams, 167
string->list, t163
string->number, t152
string->symbol, t167
string-append, t161
string-ci<=?, t160
string-ci<?, t160
string-ci=?, t160
string-ci>=?, t160
string-ci>?, t160
string-copy, t161
string-fill!, t162
string-length, t160
string-ref, t161
string-set!, t161
string<=?, t158
string<?, t158
string=?, t158
string>=?, t158
string>?, t158
string?, t37, t131
strings, t14, t158
structured forms, t6
structures, 326, t207
Strue, 66
sub1, 163
subset-mode, 285
subst, 107
subst!, 107
substq, 107
substq!, 107
substring, 81, t162
substring-fill!, 108
substv, 107
substv!, 107
sum, t62
Sunbox, 65
Sunlock_object, 68, 294
Sunsigned, 66
Sunsigned_value, 64
suppress-greeting, 275
Svector_length, 65
Svector_ref, 65
Svector_set, 65
Svectorp, 64
Svoid, 66
symbol table, t167
symbol->string, t168
symbol=?, 113
symbol?, t37, t132
symbols, t18, t166
synonym streams, 167
syntactic definitions, 77
syntactic extensions, 207, 334, t5, t22, t57, t58, t183, t277
syntactic forms, 207, t17, t57, t183, t277
syntax, t192
syntax ( #' ), 216
syntax->datum, 224
syntax->list, 223
syntax->vector, 224
syntax-case, 207, 215, 328, t183, t191
syntax-error, 229
syntax-object->datum, 224, t197
syntax-rules, 207, 211, 216, t183, t187, t192, t221
system, 49
tagged lists, 88
tail call, t5, t65
tail recursion, t5, t65
tan, t152
tanh, 165
tconc, t51
tell, t48
templates, 213, t188
The Scheme Programming Language, Third Edition, 1, 339
thread-safe primitives, 309
thread?, 310
threads, 309, t250
thunk, 94, t49, t105
ticks, see engines
time, 280
time-nanosecond, 277
time-second, 277
time-type, 277
time<=?, 277
time<?, 277
time=?, 277
time>=?, 277
time>?, 277
time?, 276
timed preemption, 94, t250
timer interrupts, 246, t254
timer-interrupt-handler, 246
tokens, 333, t277
top-level definitions, t29, t89
top-level values, 84
top-level-bound?, 86
top-level-value, 85
trace, 34, t40
trace-case-lambda, 32
trace-define, 36
trace-define-syntax, 36
trace-do, 33
trace-lambda, 31
trace-let, 32
trace-output-port, 36
trace-print, 36
tracing, t40
transcript, t13, t179
transcript ports, 199
transcript-cafe, 272
transcript-off, t13, t179
transcript-on, t13, t179
transformer, t59
tree-copy, t42
true, t7, t35
truncate, t146
truncate-file, 183
two-way ports, 198
two-way streams, 167
type predicates, t37
type-descriptor, 133
unbox, 113
underscore ( _ ), 213, t59, t189, t203
unification, t247
unify, t248
uninterned symbols, 114
uninterned-symbol?, 114
Unix, 59
unless, 89, t62
unlock-object, 68, 294
unquote ( , ), 87, t122
unquote-splicing ( ,@ ), 87, t122
unread-char, 177
unsigned-32, 51, 53
unsigned-64, 52, 53
unspecified, 5, t8
unsyntax ( #, ), 222
unsyntax-splicing ( #,@ ), 222
untrace, 35
unwind-protect (in Lisp), t105
uptr, 52, 53
values, 5, t110
variable binding, t23, t85
variable definition, 77
variable reference, t85
variables, t4, t18, t22, t29, t45
vector, t164
vector printing, 194
vector->list, t166
vector-copy, 109
vector-fill!, t165
vector-for-each, 91
vector-length, t164
vector-map, 91
vector-ref, t165
vector-set!, t165
vector-set-fixnum!, 110
vector-sort, 119
vector-sort!, 119
vector?, t132
vectors, t53, t164, t215
visit, 15, 252
void, 5, 53, 117
void *, 52
void object, 5
waiter, 10, 271
waiter-prompt-and-read, 272
waiter-prompt-string, 272
waiter-write, 273
warning, 244
warning-handler, 245
weak pairs, 290
weak pointers, 290
weak-cons, 290
weak-pair?, 291
when, 89, 321, t62
whitespace, 3, 333, t156, t277
whitespace characters, t7
winders, see dynamic-wind
with, 323, 325
with-implicit, 226
with-input-from-file, 177, t173
with-input-from-string, 174
with-mutex, 311
with-output-to-file, 182, t177
with-output-to-string, 175
with-source-path, 261
with-syntax, 221, t196
write, t177, t228
write-char, t178
x++, t204
zero?, t144
R. Kent Dybvig /
Copyright © 2005 R. Kent Dybvig
Revised July 2007 for Chez Scheme Version 7.4
Cadence Research Systems / www.scheme.com
Cover illustration © 1998 Jean-Pierre Hébert
ISBN: 0-9667139-1-5
to order this book /
about this book