CUR-SECTION ERRS SECTION RECORD-ERROR TEST REPORT-ERRS SECTION(2 1) #t (+ - ... !.. $.+ %.- &.! *.: /:. :+. <-. =. >. ?. ~. _. ^.) SECTION(3 4) #t DISJOINT-TYPE-FUNCTIONS TYPE-EXAMPLES I # # # # # # # # # # (#t #f #f #f #f #f #f #f #f)#t (#t #f #f #f #f #f #f #f #f)#f (#f #t #f #f #f #f #f #f #f)#\a (#f #f #t #f #f #f #f #f #f)() (#f #f #f #t #f #f #f #f #f)9739 (#f #f #f #f #t #f #f #f #f)(TEST) (#f #f #f #f #f #t #f #f #f)# (#f #f #f #f #f #f #t #f #f)"test" (#f #f #f #f #f #f #t #f #f)"" (#f #f #f #f #f #f #f #t #f)TEST (#f #f #f #f #f #f #f #f #t)#() (#f #f #f #f #f #f #f #f #t)#(A B C) TYPE-MATRIX SECTION(4 1 2) #t (QUOTE (QUOTE A)) ==> (QUOTE A) #t (QUOTE (QUOTE A)) ==> (QUOTE A) #t SECTION(4 1 3) #t (# 3 4) ==> 12 #t SECTION(4 1 4) #t (# 4) ==> 8 #t REVERSE-SUBTRACT (# 7 10) ==> 3 #t ADD4 (# 6) ==> 10 #t (# 3 4 5 6) ==> (3 4 5 6) #t (# 3 4 5 6) ==> (5 6) #t SECTION(4 1 5) #t (IF YES) ==> YES #t (IF NO) ==> NO #t (IF 1) ==> 1 #t SECTION(4 1 6) #t X (DEFINE 3) ==> 3 #t 4 (SET! 5) ==> 5 #t SECTION(4 2 1) #t (COND GREATER) ==> GREATER #t (COND EQUAL) ==> EQUAL #t (COND 2) ==> 2 #t (CASE COMPOSITE) ==> COMPOSITE #t (CASE CONSONANT) ==> CONSONANT #t (AND #t) ==> #t #t (AND #f) ==> #f #t (AND (F G)) ==> (F G) #t (AND #t) ==> #t #t (OR #t) ==> #t #t (OR #t) ==> #t #t (OR #f) ==> #f #t (OR #f) ==> #f #t (OR (B C)) ==> (B C) #t SECTION(4 2 2) #t (LET 6) ==> 6 #t (LET 35) ==> 35 #t (LET* 70) ==> 70 #t (LETREC #t) ==> #t #t X (LET 5) ==> 5 #t (LET 34) ==> 34 #t (LET 6) ==> 6 #t (LET 34) ==> 34 #t (LET* 7) ==> 7 #t (LET* 34) ==> 34 #t (LET* 8) ==> 8 #t (LET* 34) ==> 34 #t (LETREC 9) ==> 9 #t (LETREC 34) ==> 34 #t (LETREC 10) ==> 10 #t (LETREC 34) ==> 34 #t SECTION(4 2 3) #t X (BEGIN 6) ==> 6 #t SECTION(4 2 4) #t (DO #(0 1 2 3 4)) ==> #(0 1 2 3 4) #t (DO 25) ==> 25 #t (LET 1) ==> 1 #t (LET ((6 1 3) (-5 -2))) ==> ((6 1 3) (-5 -2)) #t SECTION(4 2 6) #t (QUASIQUOTE (LIST 3 4)) ==> (LIST 3 4) #t (QUASIQUOTE (LIST A (QUOTE A))) ==> (LIST A (QUOTE A)) #t (QUASIQUOTE (A 3 4 5 6 B)) ==> (A 3 4 5 6 B) #t (QUASIQUOTE ((FOO 7) . CONS)) ==> ((FOO 7) . CONS) #t SQT (QUASIQUOTE #(10 5 2 4 3 8)) ==> #(10 5 2 4 3 8) #t (QUASIQUOTE 5) ==> 5 #t (QUASIQUOTE (A (QUASIQUOTE (B (UNQUOTE (+ 1 2)) (UNQUOTE (FOO 4 D)) E)) F)) ==> (A (QUASIQUOTE (B (UNQUOTE (+ 1 2)) (UNQUOTE (FOO 4 D)) E)) F) #t (QUASIQUOTE (A (QUASIQUOTE (B (UNQUOTE X) (UNQUOTE (QUOTE Y)) D)) E)) ==> (A (QUASIQUOTE (B (UNQUOTE X) (UNQUOTE (QUOTE Y)) D)) E) #t (QUASIQUOTE (LIST 3 4)) ==> (LIST 3 4) #t (QUASIQUOTE (QUASIQUOTE (LIST (UNQUOTE (+ 1 2)) 4))) ==> (QUASIQUOTE (LIST (UNQUOTE (+ 1 2)) 4)) #t SECTION(5 2 1) #t ADD3 (DEFINE 6) ==> 6 #t FIRST (DEFINE 1) ==> 1 #t SECTION(5 2 2) #t (DEFINE 45) ==> 45 #t X FOO (#) ==> 5 #t (DEFINE 34) ==> 34 #t FOO (#) ==> 5 #t (DEFINE 34) ==> 34 #t FOO (# 88) ==> 88 #t (# 4) ==> 4 #t (DEFINE 34) ==> 34 #t SECTION(6 1) #t (# #t) ==> #f #t (# 3) ==> #f #t (# (3)) ==> #f #t (# #f) ==> #t #t (# ()) ==> #f #t (# ()) ==> #f #t (# NIL) ==> #f #t (# #f) ==> #t #t (# 0) ==> #f #t (# ()) ==> #f #t SECTION(6 2) #t (# A A) ==> #t #t (# A B) ==> #f #t (# 2 2) ==> #t #t (# () ()) ==> #t #t (# 10000 10000) ==> #t #t (# (1 . 2) (1 . 2)) ==> #f #t (# # #) ==> #f #t (# #f NIL) ==> #f #t (# # #) ==> #t #t GEN-COUNTER (# # #) ==> #t #t (# # #) ==> #f #t (# # #) ==> #f #t (# A A) ==> #t #t (# (A) (A)) ==> #f #t (# () ()) ==> #t #t (# # #) ==> #t #t (# (A) (A)) ==> #t #t (# #() #()) ==> #t #t (# # #) ==> #t #t (# A A) ==> #t #t (# (A) (A)) ==> #t #t (# (A (B) C) (A (B) C)) ==> #t #t (# "abc" "abc") ==> #t #t (# 2 2) ==> #t #t (# #(A A A A A) #(A A A A A)) ==> #t #t SECTION(6 3) #t (DOT (A B C D E)) ==> (A B C D E) #t X Y (# (A B C)) ==> #t #t 4 (SET-CDR! (A . 4)) ==> (A . 4) #t (# (A . 4) (A . 4)) ==> #t #t (DOT (A B C . D)) ==> (A B C . D) #t (# (A . 4)) ==> #f #t (LIST? #f) ==> #f #t (# (A . B)) ==> #t #t (# (A . 1)) ==> #t #t (# (A B C)) ==> #t #t (# ()) ==> #f #t (# #(A B)) ==> #f #t (# A ()) ==> (A) #t (# (A) (B C D)) ==> ((A) B C D) #t (# "a" (B C)) ==> ("a" B C) #t (# A 3) ==> (A . 3) #t (# (A B) C) ==> ((A B) . C) #t (# (A B C)) ==> A #t (# ((A) B C D)) ==> (A) #t (# (1 . 2)) ==> 1 #t (# ((A) B C D)) ==> (B C D) #t (# (1 . 2)) ==> 2 #t (# A 7 C) ==> (A 7 C) #t (#) ==> () #t (# (A B C)) ==> 3 #t (# (A (B) (C D E))) ==> 3 #t (# ()) ==> 0 #t (# (X) (Y)) ==> (X Y) #t (# (A) (B C D)) ==> (A B C D) #t (# (A (B)) ((C))) ==> (A (B) (C)) #t (#) ==> () #t (# (A B) (C . D)) ==> (A B C . D) #t (# () A) ==> A #t (# (A B C)) ==> (C B A) #t (# (A (B C) D (E (F)))) ==> ((E (F)) D (B C) A) #t (# (A B C D) 2) ==> C #t (# A (A B C)) ==> (A B C) #t (# B (A B C)) ==> (B C) #t (# A (B C D)) ==> #f #t (# (A) (B (A) C)) ==> #f #t (# (A) (B (A) C)) ==> ((A) C) #t (# 101 (100 101 102)) ==> (101 102) #t E (# A ((A 1) (B 2) (C 3))) ==> (A 1) #t (# B ((A 1) (B 2) (C 3))) ==> (B 2) #t (# D ((A 1) (B 2) (C 3))) ==> #f #t (# (A) (((A)) ((B)) ((C)))) ==> #f #t (# (A) (((A)) ((B)) ((C)))) ==> ((A)) #t (# 5 ((2 3) (5 7) (11 13))) ==> (5 7) #t SECTION(6 4) #t (# FOO) ==> #t #t (# A) ==> #t #t (# "bar") ==> #f #t (# NIL) ==> #t #t (# ()) ==> #f #t (# #f) ==> #f #t CHAR-STANDARD-CASE #f (STANDARD-CASE #t) ==> #t #t (STANDARD-CASE #t) ==> #t #t STR-COPY STRING-STANDARD-CASE (# FLYING-FISH) ==> "FLYING-FISH" #t (# MARTIN) ==> "MARTIN" #t (# |Malvina|) ==> "Malvina" #t (STANDARD-CASE #t) ==> #t #t X Y "cb" (STRING-SET! "cb") ==> "cb" #t (# |ab|) ==> "ab" #t (# "ab") ==> |ab| #t (# MISSISSIPPI MISSISSIPPI) ==> #t #t (STRING->SYMBOL #f) ==> #f #t (# "JOLLYWOG") ==> JOLLYWOG #t SECTION(6 5 5) #t (# 3) ==> #t #t (# 3) ==> #t #t (# 3) ==> #t #t (# 3) ==> #t #t (# 3) ==> #t #t (# 3) ==> #t #t (# 3) ==> #f #t (# 22 22 22) ==> #t #t (# 22 22) ==> #t #t (# 34 34 35) ==> #f #t (# 34 35) ==> #f #t (# 3 -6246) ==> #t #t (# 9 9 -2424) ==> #f #t (# 3 -4 -6246) ==> #t #t (# 9 9) ==> #t #t (# 8 9) ==> #f #t (# -1 2 3 4 5 6 7 8) ==> #t #t (# -1 2 3 4 4 5 6 7) ==> #f #t (# -1 2 3 4 5 6 7 8) ==> #t #t (# -1 2 3 4 4 5 6 7) ==> #t #t (# 1 3 2) ==> #f #t (# 1 3 2) ==> #f #t (# 0) ==> #t #t (# 1) ==> #f #t (# -1) ==> #f #t (# -100) ==> #f #t (# 4) ==> #t #t (# -4) ==> #f #t (# 0) ==> #f #t (# 4) ==> #f #t (# -4) ==> #t #t (# 0) ==> #f #t (# 3) ==> #t #t (# 2) ==> #f #t (# -4) ==> #f #t (# -1) ==> #t #t (# 3) ==> #f #t (# 2) ==> #t #t (# -4) ==> #t #t (# -1) ==> #f #t (# 34 5 7 38 6) ==> 38 #t (# 3 5 5 330 4 -24) ==> -24 #t (# 3 4) ==> 7 #t (# 3) ==> 3 #t (#) ==> 0 #t (# 4) ==> 4 #t (#) ==> 1 #t (# 3 4) ==> -1 #t (# 3) ==> -3 #t (# -7) ==> 7 #t (# 7) ==> 7 #t (# 0) ==> 0 #t (# 35 7) ==> 5 #t (# -35 7) ==> -5 #t (# 35 -7) ==> -5 #t (# -35 -7) ==> 5 #t (# 13 4) ==> 1 #t (# 13 4) ==> 1 #t (# -13 4) ==> 3 #t (# -13 4) ==> -1 #t (# 13 -4) ==> -3 #t (# 13 -4) ==> 1 #t (# -13 -4) ==> -1 #t (# -13 -4) ==> -1 #t DIVTEST (# 238 9) ==> #t #t (# -238 9) ==> #t #t (# 238 -9) ==> #t #t (# -238 -9) ==> #t #t (# 0 4) ==> 4 #t (# -4 0) ==> 4 #t (# 32 -36) ==> 4 #t (#) ==> 0 #t (# 32 -36) ==> 288 #t (#) ==> 1 #t TEST-INEXACT TEST-BIGNUM SECTION(6 5 6) #t (# 0) ==> "0" #t (# 100) ==> "100" #t (# 256 16) ==> "100" #t (# "100") ==> 100 #t (# "100" 16) ==> 256 #t (# "") ==> #f #t (# ".") ==> #f #t (# "d") ==> #f #t (# "D") ==> #f #t (# "i") ==> #f #t (# "I") ==> #f #t (# "3i") ==> #f #t (# "3I") ==> #f #t (# "33i") ==> #f #t (# "33I") ==> #f #t (# "3.3i") ==> #f #t (# "3.3I") ==> #f #t (# "-") ==> #f #t (# "+") ==> #f #t SECTION(6 6) #t (# #\space #\space) ==> #t #t (# #\space #\space) ==> #t #t (# #\a) ==> #t #t (# #\() ==> #t #t (# #\space) ==> #t #t (# #\newline) ==> #t #t (# #\A #\B) ==> #f #t (# #\a #\b) ==> #f #t (# #\9 #\0) ==> #f #t (# #\A #\A) ==> #t #t (# #\A #\B) ==> #t #t (# #\a #\b) ==> #t #t (# #\9 #\0) ==> #f #t (# #\A #\A) ==> #f #t (# #\A #\B) ==> #f #t (# #\a #\b) ==> #f #t (# #\9 #\0) ==> #t #t (# #\A #\A) ==> #f #t (# #\A #\B) ==> #t #t (# #\a #\b) ==> #t #t (# #\9 #\0) ==> #f #t (# #\A #\A) ==> #t #t (# #\A #\B) ==> #f #t (# #\a #\b) ==> #f #t (# #\9 #\0) ==> #t #t (# #\A #\A) ==> #t #t (# #\A #\B) ==> #f #t (# #\a #\B) ==> #f #t (# #\A #\b) ==> #f #t (# #\a #\b) ==> #f #t (# #\9 #\0) ==> #f #t (# #\A #\A) ==> #t #t (# #\A #\a) ==> #t #t (# #\A #\B) ==> #t #t (# #\a #\B) ==> #t #t (# #\A #\b) ==> #t #t (# #\a #\b) ==> #t #t (# #\9 #\0) ==> #f #t (# #\A #\A) ==> #f #t (# #\A #\a) ==> #f #t (# #\A #\B) ==> #f #t (# #\a #\B) ==> #f #t (# #\A #\b) ==> #f #t (# #\a #\b) ==> #f #t (# #\9 #\0) ==> #t #t (# #\A #\A) ==> #f #t (# #\A #\a) ==> #f #t (# #\A #\B) ==> #t #t (# #\a #\B) ==> #t #t (# #\A #\b) ==> #t #t (# #\a #\b) ==> #t #t (# #\9 #\0) ==> #f #t (# #\A #\A) ==> #t #t (# #\A #\a) ==> #t #t (# #\A #\B) ==> #f #t (# #\a #\B) ==> #f #t (# #\A #\b) ==> #f #t (# #\a #\b) ==> #f #t (# #\9 #\0) ==> #t #t (# #\A #\A) ==> #t #t (# #\A #\a) ==> #t #t (# #\a) ==> #t #t (# #\A) ==> #t #t (# #\z) ==> #t #t (# #\Z) ==> #t #t (# #\0) ==> #f #t (# #\9) ==> #f #t (# #\space) ==> #f #t (# #\;) ==> #f #t (# #\a) ==> #f #t (# #\A) ==> #f #t (# #\z) ==> #f #t (# #\Z) ==> #f #t (# #\0) ==> #t #t (# #\9) ==> #t #t (# #\space) ==> #f #t (# #\;) ==> #f #t (# #\a) ==> #f #t (# #\A) ==> #f #t (# #\z) ==> #f #t (# #\Z) ==> #f #t (# #\0) ==> #f #t (# #\9) ==> #f #t (# #\space) ==> #t #t (# #\;) ==> #f #t (# #\0) ==> #f #t (# #\9) ==> #f #t (# #\space) ==> #f #t (# #\;) ==> #f #t (# #\0) ==> #f #t (# #\9) ==> #f #t (# #\space) ==> #f #t (# #\;) ==> #f #t (# 46) ==> #\. #t (# 65) ==> #\A #t (# 97) ==> #\a #t (# #\A) ==> #\A #t (# #\a) ==> #\A #t (# #\A) ==> #\a #t (# #\a) ==> #\a #t SECTION(6 7) #t (# "The word \"recursion\\\" has many meanings.") ==> #t #t (# "") ==> #t #t F (STRING-SET! "?**") ==> "?**" #t (# #\a #\b #\c) ==> "abc" #t (#) ==> "" #t (# "abc") ==> 3 #t (# "abc" 0) ==> #\a #t (# "abc" 2) ==> #\c #t (# "") ==> 0 #t (# "ab" 0 0) ==> "" #t (# "ab" 1 1) ==> "" #t (# "ab" 2 2) ==> "" #t (# "ab" 0 1) ==> "a" #t (# "ab" 1 2) ==> "b" #t (# "ab" 0 2) ==> "ab" #t (# "foo" "bar") ==> "foobar" #t (# "foo") ==> "foo" #t (# "foo" "") ==> "foo" #t (# "" "foo") ==> "foo" #t (#) ==> "" #t (# 0) ==> "" #t (# "" "") ==> #t #t (# "" "") ==> #f #t (# "" "") ==> #f #t (# "" "") ==> #t #t (# "" "") ==> #t #t (# "" "") ==> #t #t (# "" "") ==> #f #t (# "" "") ==> #f #t (# "" "") ==> #t #t (# "" "") ==> #t #t (# "A" "B") ==> #f #t (# "a" "b") ==> #f #t (# "9" "0") ==> #f #t (# "A" "A") ==> #t #t (# "A" "B") ==> #t #t (# "a" "b") ==> #t #t (# "9" "0") ==> #f #t (# "A" "A") ==> #f #t (# "A" "B") ==> #f #t (# "a" "b") ==> #f #t (# "9" "0") ==> #t #t (# "A" "A") ==> #f #t (# "A" "B") ==> #t #t (# "a" "b") ==> #t #t (# "9" "0") ==> #f #t (# "A" "A") ==> #t #t (# "A" "B") ==> #f #t (# "a" "b") ==> #f #t (# "9" "0") ==> #t #t (# "A" "A") ==> #t #t (# "A" "B") ==> #f #t (# "a" "B") ==> #f #t (# "A" "b") ==> #f #t (# "a" "b") ==> #f #t (# "9" "0") ==> #f #t (# "A" "A") ==> #t #t (# "A" "a") ==> #t #t (# "A" "B") ==> #t #t (# "a" "B") ==> #t #t (# "A" "b") ==> #t #t (# "a" "b") ==> #t #t (# "9" "0") ==> #f #t (# "A" "A") ==> #f #t (# "A" "a") ==> #f #t (# "A" "B") ==> #f #t (# "a" "B") ==> #f #t (# "A" "b") ==> #f #t (# "a" "b") ==> #f #t (# "9" "0") ==> #t #t (# "A" "A") ==> #f #t (# "A" "a") ==> #f #t (# "A" "B") ==> #t #t (# "a" "B") ==> #t #t (# "A" "b") ==> #t #t (# "a" "b") ==> #t #t (# "9" "0") ==> #f #t (# "A" "A") ==> #t #t (# "A" "a") ==> #t #t (# "A" "B") ==> #f #t (# "a" "B") ==> #f #t (# "A" "b") ==> #f #t (# "a" "b") ==> #f #t (# "9" "0") ==> #t #t (# "A" "A") ==> #t #t (# "A" "a") ==> #t #t SECTION(6 8) #t (# #(0 (2 2 2 2) "Anna")) ==> #t #t (# #()) ==> #t #t (# A B C) ==> #(A B C) #t (#) ==> #() #t (# #(0 (2 2 2 2) "Anna")) ==> 3 #t (# #()) ==> 0 #t (# #(1 1 2 3 5 8 13 21) 5) ==> 8 #t (VECTOR-SET #(0 ("Sue" "Sue") "Anna")) ==> #(0 ("Sue" "Sue") "Anna") #t (# 2 HI) ==> #(HI HI) #t (# 0) ==> #() #t (# 0 A) ==> #() #t SECTION(6 9) #t (# #) ==> #t #t (# CAR) ==> #f #t (# #) ==> #t #t (# (LAMBDA (X) (* X X))) ==> #f #t (# #) ==> #t #t (# # (3 4)) ==> 7 #t (# # (3 4)) ==> 7 #t (# # 10 (3 4)) ==> 17 #t (# # ()) ==> () #t COMPOSE (# 12 75) ==> 30 #t (# # ((A B) (D E) (G H))) ==> (B E H) #t (# # (1 2 3) (4 5 6)) ==> (5 7 9) #t (FOR-EACH #(0 1 4 9 16)) ==> #(0 1 4 9 16) #t (# #) ==> -3 #t LIST-LENGTH (# (1 2 3 4)) ==> 4 #t (# (A B . C)) ==> #f #t (# # ()) ==> () #t NEXT-LEAF-GENERATOR LEAF-EQ? TEST-CONT TEST-DELAY SECTION(6 10 1) #t (# #) ==> #t #t (# #) ==> #t #t (# "test.scm" #) ==> #t #t THIS-FILE (# #) ==> #t #t SECTION(6 10 2) #t (# #) ==> #\; #t (# #) ==> #\; #t (# #) ==> (DEFINE CUR-SECTION (QUOTE ())) #t (# #) ==> #\( #t (# #) ==> (DEFINE ERRS (QUOTE ())) #t # # CHECK-TEST-FILE SECTION(6 10 3) #t WRITE-TEST-OBJ DISPLAY-TEST-OBJ LOAD-TEST-OBJ (# "tmp1" #) ==> #t #t (# #) ==> (DEFINE FOO (QUOTE (#t #f #\a () 9739 -3 . #((TEST) "te \" \" st" "" TEST #() B C)))) (# #) ==> #t (# #) ==> #t (INPUT-PORT? #t) ==> #t (# #) ==> #\; (# #) ==> (#t #f A () 9739 -3 . #((TEST) TE " " ST TEST #() B C)) (# #) ==> (DEFINE FOO (QUOTE (#t #f #\a () 9739 -3 . #((TEST) "te \" \" st" "" TEST #() B C)))) # TEST-FILE # # # # (# #) ==> #t #t # (# #) ==> (DEFINE FOO (QUOTE (#t #f #\a () 9739 -3 . #((TEST) "te \" \" st" "" TEST #() B C)))) (# #) ==> #t (# #) ==> #t (INPUT-PORT? #t) ==> #t (# #) ==> #\; (# #) ==> (#t #f A () 9739 -3 . #((TEST) TE " " ST TEST #() B C)) (# #) ==> (DEFINE FOO (QUOTE (#t #f #\a () 9739 -3 . #((TEST) "te \" \" st" "" TEST #() B C)))) # TEST-SC4 Passed all tests # ;testing inexact numbers; SECTION(6 5 5) (# 3.9) ==> #t (INEXACT? #t) ==> #t (MAX 4.0) ==> 4.0 (EXACT->INEXACT 4.0) ==> 4.0 (# -4.5) ==> -4.0 (# -3.5) ==> -4.0 (# -3.9) ==> -4.0 (# 0.0) ==> 0.0 (# 0.25) ==> 0.0 (# 0.8) ==> 1.0 (# 3.5) ==> 4.0 (# 4.5) ==> 4.0 (# "tmp3" #) ==> #t (# #) ==> (DEFINE FOO (QUOTE (0.25 -3.25))) (# #) ==> #t (# #) ==> #t (INPUT-PORT? #t) ==> #t (# #) ==> #\; (# #) ==> (0.25 -3.25) (# #) ==> (DEFINE FOO (QUOTE (0.25 -3.25))) (PENTIUM-FDIV-BUG #t) ==> #t Passed all tests # ;testing bignums; SECTION(6 5 5) (# -2177452800 86400) ==> 0 (# 2177452800 -86400) ==> 0 (# 2177452800 86400) ==> 0 (# -2177452800 -86400) ==> 0 (REMAINDER #t) ==> #t (REMAINDER #t) ==> #t SECTION(6 5 6) (# "281474976710655") ==> 281474976710655 (# 281474976710655) ==> "281474976710655" Passed all tests # # To fully test continuations, Scheme 4, and DELAY/FORCE do:# # (test-cont) (test-sc4) (test-delay)# # "last item in file"