Table of Contents Chapter 2 Exercise 2.3 page 39 firsts-of-both Program 2.1 page 44 singleton-list? Program 2.2 page 47 last-item Program 2.3 page 50 member? Program 2.4 page 52 remove-1st Program 2.5 page 62 remove-1st-trace Program 2.6 page 62 entering Program 2.7 page 62 leaving Program 2.8 page 66 swapper Exercise 2.24 page 70 describe Chapter 3 Program 3.1 page 75 add1 Program 3.2 page 75 sub1 Program 3.4 page 77 harmonic-sum Program 3.5 page 78 list-of-zeros Program 3.6 page 79 length Program 3.7 page 81 list-ref Program 3.8 page 85 rzero? Program 3.9 page 86 r+ Program 3.10 page 86 r* Program 3.11 page 86 r- Program 3.12 page 87 rinvert Program 3.13 page 87 r/ Program 3.14 page 87 r= Program 3.15 page 87 rpositive? Program 3.16 page 88 r> Program 3.17 page 88 max Program 3.18 page 88 rmax Program 3.19 page 89 extreme-value Program 3.20 page 90 rprint Program 3.21 page 91 numr denr make-ratl Exercise 3.15 page 92 rpositive? Chapter 4 Program 4.1 page 96 append Program 4.2 page 97 reverse Program 4.3 page 98 merge Program 4.4 page 98 even? Program 4.5 page 99 odd? Program 4.6 page 100 remove Program 4.7 page 102 count-all Program 4.8 page 105 remove-all Program 4.9 page 105 remq-all Program 4.10 page 107 reverse-all Program 4.13 page 110 depth Program 4.14 page 111 flatten Program 4.15 page 113 remove-left-most Program 4.16 page 113 member-all? Program 4.17 page 114 remove-left-most Program 4.18 page 116 fact Program 4.19 page 118 fact-it Program 4.20 page 121 fib Program 4.24 page 124 fib-it Program 4.25 page 127 reverse-it Chapter 5 Program 5.3 page 137 remove-leftmost Program 5.4 page 139 fact Program 5.5 page 139 swapper Exercise 5.5 page 141 mystery Program 5.6 page 144 zero-poly? Program 5.7 page 145 make-term Program 5.8 page 145 leading-term Program 5.9 page 146 p+ Program 5.10 page 148 p* Program 5.11 page 148 negative-poly Program 5.12 page 148 p- Program 5.13 page 150 poly-value Program 5.14 page 151 the-zero-poly degree leading-coef rest-of-poly poly-cons Program 5.15 page 153 the-zero-poly degree leading-coef rest-of-poly poly-cons Program 5.16 page 157 digits->poly Program 5.17 page 157 binary->decimal Program 5.18 page 158 poly->digits Program 5.20 page 160 decimal->binary Chapter 6 Program 6.1 page 165 string-insert Exercise 6.4 page 167 mystery Program 6.2 page 169 square-root Program 6.3 page 171 square-root-display Program 6.5 page 172 round-n-places Program 6.6 page 174 read-demo Program 6.7 page 175 interactive-square-root Program 6.9 page 181 tower-of-hanoi Program 6.10 page 182 display-tower-of-hanoi Program 6.12 page 184 legal? solution? fresh-try Program 6.13 page 185 build-solution Program 6.14 page 186 forward Program 6.15 page 186 backtrack Program 6.16 page 188 searcher Exercise 6.16 page 191 blanks Chapter 7 Program 7.1 page 196 map Program 7.2 page 197 for-each Program 7.3 page 198 add Program 7.4 page 199 list Program 7.5 page 199 writeln Program 7.6 page 199 error Program 7.7 page 200 add Program 7.8 page 201 compose Program 7.9 page 203 plus Program 7.10 page 203 times Program 7.11 page 203 exponent Program 7.12 page 203 super Program 7.13 page 204 superduper Program 7.14 page 204 super-order Program 7.15 page 205 ackermann Exercise 7.5 page 206 iota mystery Exercise 7.8 page 208 andmap Exercise 7.10 page 209 ormap Program 7.16 page 212 member?-c Program 7.17 page 213 apply-to-all Program 7.18 page 213 sum Program 7.19 page 213 product Program 7.20 page 214 swapper-m Exercise 7.14 page 215 round-5-places Exercise 7.19 page 216 andmap-c all-positive? ormap some-positive? Exercise 7.20 page 217 divides-by Program 7.23 page 221 flat-recur Program 7.24 page 222 filter-in-c Program 7.25 page 225 filter-in-all-c Program 7.26 page 225 filter-in-all Program 7.27 page 225 sum-all Program 7.28 page 227 deep-recur Chapter 8 Program 8.1 page 232 both Program 8.2 page 232 neither Program 8.3 page 233 at-least-one Program 8.4 page 237 make-set Program 8.5 page 238 none Program 8.6 page 238 there-exists Program 8.7 page 239 for-all Program 8.8 page 240 set-equal Program 8.9 page 241 element Program 8.10 page 241 contains Program 8.11 page 242 superset Program 8.12 page 242 subset Program 8.13 page 242 cardinal Program 8.14 page 243 intersection Program 8.15 page 244 union Program 8.16 page 244 difference Program 8.17 page 245 set-builder Program 8.19 page 246 family-union Program 8.20 page 246 family-intersection Program 8.21 page 247 set-map Program 8.22 page 247 list->set Program 8.23 page 248 set->list Exercise 8.5 page 248 for-one Exercise 8.6 page 249 superset Program 8.24 page 250 the-empty-set empty-set? set? pick Program 8.25 page 251 adjoin residue Program 8.26 page 252 adjoin residue Exercise 8.7 page 253 pick Program 8.27 page 256 make-op op? op-1st op-2nd Program 8.28 page 257 make-op op? op-1st op-2nd Program 8.29 page 257 make-op op? op-1st op-2nd Program 8.30 page 258 cartesian-product Program 8.31 page 259 domain range Program 8.32 page 260 subrelation/1st Program 8.33 page 260 function? Program 8.34 page 261 value Chapter 9 Program 9.1 page 269 view Program 9.2 page 270 make-vector Program 9.3 page 271 list->vector Program 9.4 page 271 vector Program 9.5 page 272 vector-stretch Program 9.6 page 272 vector-copy Program 9.7 page 272 vector-update Program 9.8 page 273 list->vector Program 9.9 page 273 vector-map Program 9.10 page 274 multiply-by-scalar Program 9.11 page 274 vector-apply-elementwise-to-both Program 9.12 page 275 vec+ vec* Program 9.13 page 275 vector-sum Program 9.14 page 276 vector-product Program 9.15 page 277 vector-accumulate Program 9.16 page 277 vector->list Program 9.17 page 279 dot-product Program 9.18 page 279 vector? vector-length Program 9.19 page 280 vector-ref vector-generator Program 9.20 page 280 vector-ref vector-generator Program 9.21 page 283 vector-generator Program 9.22 page 283 vector-update! Program 9.23 page 284 list->vector Program 9.24 page 286 vector-reverse Program 9.25 page 286 swap-maker Program 9.26 page 287 vector-reverse! Program 9.27 page 288 swap-maker Program 9.30 page 293 num-cols Program 9.31 page 294 num-rows Program 9.32 page 294 matrix-ref Program 9.33 page 295 matrix-generator Program 9.34 page 296 row-of Program 9.35 page 296 column-of Program 9.37 page 297 matrix-transpose Program 9.38 page 299 matrix-product Program 9.39 page 300 matrix-set! Chapter 10 Program 10.1 page 304 insertsort Program 10.2 page 304 insert Program 10.5 page 306 vector-insertsort! Program 10.6 page 307 vector-insert! Program 10.7 page 310 make-groups Program 10.8 page 311 pair-merge Program 10.9 page 311 nat-mergesort Program 10.10 page 313 vector-merge! Program 10.11 page 314 vector-mergesort! Program 10.12 page 315 vector-change! Program 10.13 page 317 quicksort Program 10.14 page 320 vector-quicksort! Program 10.15 page 321 partition Program 10.16 page 321 vector-swap! Program 10.18 page 324 random-list Program 10.19 page 325 timer Program 10.22 page 331 binary-search Program 10.23 page 333 unlist Program 10.25 page 337 find-supervisor Program 10.26 page 338 closest-common-supervisor Chapter 11 Program 11.1 page 344 stk empty? top print-stack push! pop! Program 11.2 page 346 lookup Program 11.3 page 347 assoc Program 11.4 page 347 memoize Program 11.5 page 348 memo-fib Program 11.6 page 350 vector-memoize Program 11.7 page 352 member? Program 11.8 page 353 while-proc Program 11.9 page 355 swapper Program 11.11 page 359 mystery Program 11.21 page 368 last-pair Program 11.22 page 368 append! Exercise 11.14 page 371 mystery Exercise 11.16 page 371 efface test-efface Exercise 11.17 page 372 test-efface2 test-efface3 Exercise 11.18 page 372 smudge shift-down test-smudge Exercise 11.19 page 373 *seen-pairs* count-pairs dont-count? test-count-pairs count-pairs Exercise 11.20 page 375 reconfigure at overwrite right check-null test-reconfigure Exercise 11.22 page 378 shifter overwrite Exercise 11.23 page 379 busy-beaver endless-growth perpetual-motion pendulum Exercise 11.24 page 380 busy-beaver-lines run-lines Exercise 11.26 page 382 overwrite right Chapter 12 Program 12.1 page 386 for-effect-only Program 12.2 page 388 box-maker Program 12.3 page 388 delegate Program 12.4 page 389 base-object Program 12.5 page 389 send Program 12.6 page 390 box-maker Program 12.7 page 391 counter-maker Program 12.8 page 392 counter-maker Program 12.9 page 393 accumulator-maker Program 12.10 page 394 gauge-maker Program 12.12 page 398 stack-maker Program 12.13 page 400 queue-maker Program 12.15 page 402 queue-maker Program 12.18 page 406 circular-list-maker Program 12.19 page 407 stack-maker Program 12.20 page 408 queue-maker Exercise 12.21 page 411 memoize Program 12.23 page 412 bucket-maker Program 12.24 page 412 memoize Program 12.25 page 414 hash-table-maker Program 12.26 page 415 memoize Exercise 12.29 page 418 theater-maker Exercise 12.30 page 418 theater-maker Program 12.27 page 419 combine Exercise 12.30 page 418 theater-maker Exercise 12.32 page 420 theater-maker Program 12.28 page 421 send Exercise 12.33 page 421 counter-maker Exercise 12.34 page 422 cartesian-point-maker Exercise 12.35 page 423 manhattan-point-maker Exercise 12.36 page 423 cartesian-origin-maker Chapter 13 Program 13.1 page 426 unif-rand-var-0-1 Program 13.2 page 427 exponential-random-variable Program 13.3 page 427 arrival-time-generator Program 13.4 page 428 normal-random-variable Program 13.5 page 428 gallons-generator Exercise 13.3 page 429 random-maker random-time random Program 13.8 page 434 simulation-setup&run Program 13.9 page 435 simulation Program 13.10 page 436 station-maker Program 13.11 page 437 pump-maker Program 13.12 page 438 customer-maker Program 13.13 page 439 service-maker Program 13.14 page 439 report Program 13.15 page 440 prompt-read Program 13.16 page 441 gas-station-simulator Exercise 13.9 page 444 prompt-read Chapter 14 Program 14.1 page 453 freeze Program 14.2 page 356 freeze Program 14.3 page 456 thaw Program 14.4 page 457 make-promise Program 14.5 page 458 delay Program 14.6 page 458 delay-transformer delay Program 14.7 page 459 let Program 14.8 page 460 let-transformer let Program 14.9 page 461 letrec Program 14.10 page 462 letrec Program 14.11 page 463 cycle-proc Program 14.12 page 464 or-proc Program 14.13 page 465 or-transformer or Program 14.14 page 465 or Exercise 14.3 page 466 or Exercise 14.12 page 470 vector-sum Exercise 14.16 page 472 member-trace factorial Chapter 15 Program 15.1 page 477 delayed-list-car Program 15.2 page 478 delayed-list-cdr Program 15.3 page 478 the-null-delayed-list Program 15.4 page 479 random-delayed-list Program 15.5 page 483 stream-car stream-cdr Program 15.6 page 483 random-stream-generator Program 15.7 page 483 random-stream Program 15.8 page 484 the-null-stream Program 15.9 page 484 list->stream Program 15.10 page 484 end-of-stream? Program 15.11 page 485 stream-null? Program 15.12 page 485 stream->list finite-stream->list Program 15.13 page 486 positive-integers Program 15.14 page 486 even-positive-integers Program 15.15 page 486 powers-of-2 Program 15.16 page 487 build-stream Program 15.17 page 488 factorials Program 15.18 page 488 stream-map Program 15.19 page 489 odd-positive-integers Program 15.20 page 489 stream-apply-to-both Program 15.21 page 489 stream-plus stream-times Program 15.22 page 490 stream-filter-out Program 15.23 page 490 positive-integers Program 15.24 page 491 factorials Program 15.25 page 491 fibonacci-numbers Program 15.26 page 492 sieve Program 15.27 page 492 prime-numbers Exercise 15.14 page 495 stream-append int-pairs-generator stream-append/delay Exercise 15.17 page 499 string-tester Program 15.29 page 504 file-copier Program 15.30 page 505 file->stream Program 15.31 page 506 formatter Program 15.32 page 506 remove-newlines Program 15.33 page 506 remove-extra-spaces Program 15.34 page 507 trim-spaces Program 15.35 page 507 insert-double-spaces Program 15.36 page 507 end-of-sentence? Program 15.37 page 508 insert-newlines Program 15.38 page 508 count-chars-to-next-space Program 15.39 page 509 stream->file Exercise 15.28 page 510 formatter Exercise 15.29 page 511 formatter Exercise 15.30 page 511 apply-procedures Exercise 15.31 page 511 formatter Chapter 16 Exercise 16.6 page 526 reset Program 16.1 page 527 call/cc Program 16.2 page 530 receiver-1 receiver-2 receiver-3 Program 16.3 page 531 result resultcc Program 16.4 page 531 writeln/return answer-maker call Exercise 16.16 page 537 deep map-sub1 Program 16.5 page 538 *escape/thunk* escaper Program 16.6 page 539 receiver-4 Program 16.7 page 540 escaper Exercise 16.22 page 541 new-escaper Program 16.8 page 542 how-many-til Program 16.9 page 543 how-many-til Program 16.10 page 543 random-data Program 16.11 page 544 product+ Program 16.12 page 545 product+ Program 16.13 page 546 product+ Program 16.14 page 546 product+ Program 16.15 page 547 product+ Program 16.16 page 547 *-and-count-maker Program 16.17 page 548 product+ Chapter 17 Program 17.1 page 553 countdown Program 17.2 page 554 message Program 17.3 page 554 attempt Program 17.4 page 555 attempt Program 17.5 page 557 receiver Program 17.6 page 557 tester Program 17.7 page 560 flatten-number-list Program 17.8 page 560 break Program 17.9 page 560 break Program 17.10 page 561 get-back break Program 17.11 page 561 any-action Program 17.12 page 561 any-action Program 17.13 page 562 get-back break Program 17.14 page 563 break-argument any-action Program 17.15 page 564 get-back break Program 17.16 page 564 flatten-number-list Program 17.17 page 564 extract Program 17.18 page 565 store Exercise 17.4 page 565 flatten-number-list Exercise 17.6 page 565 product+ Program 17.19 page 569 A B C Program 17.20 page 570 coroutine-maker Program 17.21 page 570 resume-maker Exercise 17.12 page 571 ping pong Program 17.22 page 573 reader Program 17.23 page 574 writer Program 17.24 page 574 x->y Program 17.25 page 575 grune Exercise 17.16 page 576 grune Exercise 17.17 page 577 process-maker