Artifact
0cd33d7fa66ec5ed16a817210d992125f835cd7a:
- File
srfi/tests/vectors.sps
— part of check-in
[80c8c83034]
at
2016-07-07 18:11:39
on branch trunk
— initial import
(user:
ovenpasta@pizzahack.eu
size: 14262)
0000: 3b 20 54 65 73 74 20 73 75 69 74 65 20 66 6f 72 ; Test suite for
0010: 20 53 52 46 49 20 34 33 0a 3b 0a 3b 20 24 49 64 SRFI 43.;.; $Id
0020: 3a 20 73 72 66 69 2d 34 33 2d 74 65 73 74 2e 73 : srfi-43-test.s
0030: 70 73 20 36 31 35 32 20 32 30 30 39 2d 30 33 2d ps 6152 2009-03-
0040: 31 39 20 32 32 3a 33 30 3a 30 35 5a 20 77 69 6c 19 22:30:05Z wil
0050: 6c 20 24 0a 0a 28 69 6d 70 6f 72 74 20 28 65 78 l $..(import (ex
0060: 63 65 70 74 20 28 72 6e 72 73 20 62 61 73 65 29 cept (rnrs base)
0070: 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0080: 20 20 76 65 63 74 6f 72 2d 66 69 6c 6c 21 0a 20 vector-fill!.
0090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
00a0: 65 63 74 6f 72 2d 3e 6c 69 73 74 0a 20 20 20 20 ector->list.
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 list
00c0: 2d 3e 76 65 63 74 6f 72 0a 20 20 20 20 20 20 20 ->vector.
00d0: 20 20 20 20 20 20 20 20 20 76 65 63 74 6f 72 2d vector-
00e0: 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 map.
00f0: 20 20 20 20 76 65 63 74 6f 72 2d 66 6f 72 2d 65 vector-for-e
0100: 61 63 68 29 0a 20 20 20 20 20 20 20 20 28 72 6e ach). (rn
0110: 72 73 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 rs lists).
0120: 20 20 28 72 6e 72 73 20 69 6f 20 73 69 6d 70 6c (rnrs io simpl
0130: 65 29 0a 20 20 20 20 20 20 20 20 28 73 75 72 66 e). (surf
0140: 61 67 65 20 73 36 20 62 61 73 69 63 2d 73 74 72 age s6 basic-str
0150: 69 6e 67 2d 70 6f 72 74 73 29 0a 20 20 20 20 20 ing-ports).
0160: 20 20 20 28 73 75 72 66 61 67 65 20 73 34 33 20 (surfage s43
0170: 76 65 63 74 6f 72 73 29 29 0a 0a 28 64 65 66 69 vectors))..(defi
0180: 6e 65 20 28 77 72 69 74 65 6c 6e 20 2e 20 78 73 ne (writeln . xs
0190: 29 0a 20 20 28 66 6f 72 2d 65 61 63 68 20 64 69 ). (for-each di
01a0: 73 70 6c 61 79 20 78 73 29 0a 20 20 28 6e 65 77 splay xs). (new
01b0: 6c 69 6e 65 29 29 0a 0a 28 64 65 66 69 6e 65 20 line))..(define
01c0: 28 66 61 69 6c 20 74 6f 6b 65 6e 20 2e 20 6d 6f (fail token . mo
01d0: 72 65 29 0a 20 20 28 77 72 69 74 65 6c 6e 20 22 re). (writeln "
01e0: 45 72 72 6f 72 3a 20 74 65 73 74 20 66 61 69 6c Error: test fail
01f0: 65 64 3a 20 22 20 74 6f 6b 65 6e 29 0a 20 20 23 ed: " token). #
0200: 66 29 0a 0a 28 6f 72 20 28 76 65 63 74 6f 72 3f f)..(or (vector?
0210: 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 30 29 (make-vector 0)
0220: 29 0a 20 20 20 20 28 66 61 69 6c 20 27 6d 61 6b ). (fail 'mak
0230: 65 2d 76 65 63 74 6f 72 3a 30 29 29 0a 0a 28 6f e-vector:0))..(o
0240: 72 20 28 3d 20 31 30 20 28 76 65 63 74 6f 72 2d r (= 10 (vector-
0250: 6c 65 6e 67 74 68 20 28 6d 61 6b 65 2d 76 65 63 length (make-vec
0260: 74 6f 72 20 31 30 29 29 29 0a 20 20 20 20 28 66 tor 10))). (f
0270: 61 69 6c 20 27 76 65 63 74 6f 72 2d 6c 65 6e 67 ail 'vector-leng
0280: 74 68 3a 62 61 73 69 63 29 29 0a 0a 28 6f 72 20 th:basic))..(or
0290: 28 3d 20 39 37 20 28 76 65 63 74 6f 72 2d 72 65 (= 97 (vector-re
02a0: 66 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 35 f (make-vector 5
02b0: 30 30 20 39 37 29 20 34 39 39 29 29 0a 20 20 20 00 97) 499)).
02c0: 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 72 (fail 'vector-r
02d0: 65 66 3a 62 61 73 69 63 29 29 0a 0a 28 6f 72 20 ef:basic))..(or
02e0: 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 29 (equal? (vector)
02f0: 20 27 23 28 29 29 0a 20 20 20 20 28 66 61 69 6c '#()). (fail
0300: 20 27 76 65 63 74 6f 72 3a 30 29 29 0a 0a 28 6f 'vector:0))..(o
0310: 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f r (equal? (vecto
0320: 72 20 27 61 20 27 62 20 39 37 29 20 27 23 28 61 r 'a 'b 97) '#(a
0330: 20 62 20 39 37 29 29 0a 20 20 20 20 28 66 61 69 b 97)). (fai
0340: 6c 20 27 76 65 63 74 6f 72 29 29 0a 0a 28 6f 72 l 'vector))..(or
0350: 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 (equal? (vector
0360: 2d 75 6e 66 6f 6c 64 20 28 6c 61 6d 62 64 61 20 -unfold (lambda
0370: 28 69 20 78 29 20 28 76 61 6c 75 65 73 20 78 20 (i x) (values x
0380: 28 2d 20 78 20 31 29 29 29 0a 20 20 20 20 20 20 (- x 1))).
0390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
03a0: 20 20 20 20 20 31 30 20 30 29 0a 20 20 20 20 20 10 0).
03b0: 20 20 20 20 20 20 20 27 23 28 30 20 2d 31 20 2d '#(0 -1 -
03c0: 32 20 2d 33 20 2d 34 20 2d 35 20 2d 36 20 2d 37 2 -3 -4 -5 -6 -7
03d0: 20 2d 38 20 2d 39 29 29 20 3b 20 62 75 74 20 53 -8 -9)) ; but S
03e0: 52 46 49 20 34 33 20 73 61 79 73 20 2d 38 20 2d RFI 43 says -8 -
03f0: 38 20 61 74 20 65 6e 64 0a 20 20 20 20 28 66 61 8 at end. (fa
0400: 69 6c 20 27 76 65 63 74 6f 72 2d 75 6e 66 6f 6c il 'vector-unfol
0410: 64 3a 31 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 d:1))..(or (equa
0420: 6c 3f 20 28 76 65 63 74 6f 72 2d 75 6e 66 6f 6c l? (vector-unfol
0430: 64 20 76 61 6c 75 65 73 20 31 30 29 20 27 23 28 d values 10) '#(
0440: 30 20 31 20 32 20 33 20 34 20 35 20 36 20 37 20 0 1 2 3 4 5 6 7
0450: 38 20 39 29 29 0a 20 20 20 20 28 66 61 69 6c 20 8 9)). (fail
0460: 27 76 65 63 74 6f 72 2d 75 6e 66 6f 6c 64 3a 32 'vector-unfold:2
0470: 29 29 0a 0a 28 6f 72 20 28 6c 65 74 20 28 28 76 ))..(or (let ((v
0480: 65 63 74 6f 72 20 27 23 28 61 20 62 20 39 37 29 ector '#(a b 97)
0490: 29 29 0a 20 20 20 20 20 20 28 65 71 75 61 6c 3f )). (equal?
04a0: 20 28 76 65 63 74 6f 72 2d 75 6e 66 6f 6c 64 20 (vector-unfold
04b0: 28 6c 61 6d 62 64 61 20 28 69 29 20 28 76 65 63 (lambda (i) (vec
04c0: 74 6f 72 2d 72 65 66 20 76 65 63 74 6f 72 20 69 tor-ref vector i
04d0: 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).
04e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
04f0: 28 76 65 63 74 6f 72 2d 6c 65 6e 67 74 68 20 76 (vector-length v
0500: 65 63 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 ector)).
0510: 20 20 20 20 20 20 76 65 63 74 6f 72 29 29 0a 20 vector)).
0520: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
0530: 2d 75 6e 66 6f 6c 64 3a 33 29 29 0a 0a 28 6f 72 -unfold:3))..(or
0540: 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 (equal? (vector
0550: 2d 75 6e 66 6f 6c 64 2d 72 69 67 68 74 20 28 6c -unfold-right (l
0560: 61 6d 62 64 61 20 28 69 20 78 29 20 28 76 61 6c ambda (i x) (val
0570: 75 65 73 20 78 20 28 2b 20 78 20 31 29 29 29 20 ues x (+ x 1)))
0580: 38 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 8 0).
0590: 20 27 23 28 37 20 36 20 35 20 34 20 33 20 32 20 '#(7 6 5 4 3 2
05a0: 31 20 30 29 29 0a 20 20 20 20 28 66 61 69 6c 20 1 0)). (fail
05b0: 27 76 65 63 74 6f 72 2d 75 6e 66 6f 6c 64 2d 72 'vector-unfold-r
05c0: 69 67 68 74 3a 31 29 29 0a 0a 28 6f 72 20 28 6c ight:1))..(or (l
05d0: 65 74 20 28 28 76 65 63 74 6f 72 20 27 23 28 33 et ((vector '#(3
05e0: 20 31 20 34 20 35 20 39 29 29 29 0a 20 20 20 20 1 4 5 9))).
05f0: 20 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f (equal? (vecto
0600: 72 2d 75 6e 66 6f 6c 64 2d 72 69 67 68 74 20 28 r-unfold-right (
0610: 6c 61 6d 62 64 61 20 28 69 20 78 29 0a 20 20 20 lambda (i x).
0620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0640: 20 20 28 76 61 6c 75 65 73 20 28 76 65 63 74 6f (values (vecto
0650: 72 2d 72 65 66 20 76 65 63 74 6f 72 20 78 29 20 r-ref vector x)
0660: 28 2b 20 78 20 31 29 29 29 0a 20 20 20 20 20 20 (+ x 1))).
0670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0680: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 (ve
0690: 63 74 6f 72 2d 6c 65 6e 67 74 68 20 76 65 63 74 ctor-length vect
06a0: 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 or).
06b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
06c0: 20 20 20 20 20 20 20 30 29 0a 20 20 20 20 20 20 0).
06d0: 20 20 20 20 20 20 20 20 27 23 28 39 20 35 20 34 '#(9 5 4
06e0: 20 31 20 33 29 29 29 0a 20 20 20 20 28 66 61 69 1 3))). (fai
06f0: 6c 20 27 76 65 63 74 6f 72 2d 75 6e 66 6f 6c 64 l 'vector-unfold
0700: 2d 72 69 67 68 74 3a 32 29 29 0a 0a 28 6f 72 20 -right:2))..(or
0710: 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d (equal? (vector-
0720: 63 6f 70 79 20 27 23 28 61 20 62 20 63 20 64 20 copy '#(a b c d
0730: 65 20 66 20 67 20 68 20 69 29 29 0a 20 20 20 20 e f g h i)).
0740: 20 20 20 20 20 20 20 20 27 23 28 61 20 62 20 63 '#(a b c
0750: 20 64 20 65 20 66 20 67 20 68 20 69 29 29 0a 20 d e f g h i)).
0760: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
0770: 2d 63 6f 70 79 3a 31 29 29 0a 0a 28 6f 72 20 28 -copy:1))..(or (
0780: 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 63 equal? (vector-c
0790: 6f 70 79 20 27 23 28 61 20 62 20 63 20 64 20 65 opy '#(a b c d e
07a0: 20 66 20 67 20 68 20 69 29 20 36 29 0a 20 20 20 f g h i) 6).
07b0: 20 20 20 20 20 20 20 20 20 27 23 28 67 20 68 20 '#(g h
07c0: 69 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 i)). (fail 'v
07d0: 65 63 74 6f 72 2d 63 6f 70 79 3a 32 29 29 0a 0a ector-copy:2))..
07e0: 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 (or (equal? (vec
07f0: 74 6f 72 2d 63 6f 70 79 20 27 23 28 61 20 62 20 tor-copy '#(a b
0800: 63 20 64 20 65 20 66 20 67 20 68 20 69 29 20 33 c d e f g h i) 3
0810: 20 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6).
0820: 27 23 28 64 20 65 20 66 29 29 0a 20 20 20 20 28 '#(d e f)). (
0830: 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 63 6f 70 fail 'vector-cop
0840: 79 3a 33 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 y:3))..(or (equa
0850: 6c 3f 20 28 76 65 63 74 6f 72 2d 63 6f 70 79 20 l? (vector-copy
0860: 27 23 28 61 20 62 20 63 20 64 20 65 20 66 20 67 '#(a b c d e f g
0870: 20 68 20 69 29 20 36 20 31 32 20 27 78 29 0a 20 h i) 6 12 'x).
0880: 20 20 20 20 20 20 20 20 20 20 20 27 23 28 67 20 '#(g
0890: 68 20 69 20 78 20 78 20 78 29 29 0a 20 20 20 20 h i x x x)).
08a0: 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 63 6f (fail 'vector-co
08b0: 70 79 3a 34 29 29 0a 0a 28 6f 72 20 28 65 71 75 py:4))..(or (equ
08c0: 61 6c 3f 20 28 76 65 63 74 6f 72 2d 72 65 76 65 al? (vector-reve
08d0: 72 73 65 2d 63 6f 70 79 20 27 23 28 35 20 34 20 rse-copy '#(5 4
08e0: 33 20 32 20 31 20 30 29 20 31 20 35 29 0a 20 20 3 2 1 0) 1 5).
08f0: 20 20 20 20 20 20 20 20 20 20 27 23 28 31 20 32 '#(1 2
0900: 20 33 20 34 29 29 0a 20 20 20 20 28 66 61 69 6c 3 4)). (fail
0910: 20 27 76 65 63 74 6f 72 2d 72 65 76 65 72 73 65 'vector-reverse
0920: 2d 63 6f 70 79 29 29 0a 0a 28 6f 72 20 28 65 71 -copy))..(or (eq
0930: 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 61 70 70 ual? (vector-app
0940: 65 6e 64 20 27 23 28 78 29 20 27 23 28 79 29 29 end '#(x) '#(y))
0950: 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 23 28 . '#(
0960: 78 20 79 29 29 0a 20 20 20 20 28 66 61 69 6c 20 x y)). (fail
0970: 27 76 65 63 74 6f 72 2d 61 70 70 65 6e 64 3a 31 'vector-append:1
0980: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
0990: 28 76 65 63 74 6f 72 2d 61 70 70 65 6e 64 20 27 (vector-append '
09a0: 23 28 61 29 20 27 23 28 62 20 63 20 64 29 29 0a #(a) '#(b c d)).
09b0: 20 20 20 20 20 20 20 20 20 20 20 20 27 23 28 61 '#(a
09c0: 20 62 20 63 20 64 29 29 0a 20 20 20 20 28 66 61 b c d)). (fa
09d0: 69 6c 20 27 76 65 63 74 6f 72 2d 61 70 70 65 6e il 'vector-appen
09e0: 64 3a 32 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 d:2))..(or (equa
09f0: 6c 3f 20 28 76 65 63 74 6f 72 2d 61 70 70 65 6e l? (vector-appen
0a00: 64 20 27 23 28 61 20 23 28 62 29 29 20 27 23 28 d '#(a #(b)) '#(
0a10: 23 28 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 #(c))).
0a20: 20 20 20 27 23 28 61 20 23 28 62 29 20 23 28 63 '#(a #(b) #(c
0a30: 29 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 ))). (fail 'v
0a40: 65 63 74 6f 72 2d 61 70 70 65 6e 64 3a 33 29 29 ector-append:3))
0a50: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 ..(or (equal? (v
0a60: 65 63 74 6f 72 2d 63 6f 6e 63 61 74 65 6e 61 74 ector-concatenat
0a70: 65 20 27 28 23 28 61 20 62 29 20 23 28 63 20 64 e '(#(a b) #(c d
0a80: 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ))).
0a90: 27 23 28 61 20 62 20 63 20 64 29 29 0a 20 20 20 '#(a b c d)).
0aa0: 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 63 (fail 'vector-c
0ab0: 6f 6e 63 61 74 65 6e 61 74 65 29 29 0a 0a 28 6f oncatenate))..(o
0ac0: 72 20 28 61 6e 64 20 28 65 71 3f 20 28 76 65 63 r (and (eq? (vec
0ad0: 74 6f 72 3f 20 27 23 28 61 20 62 20 63 29 29 20 tor? '#(a b c))
0ae0: 23 74 29 0a 20 20 20 20 20 20 20 20 20 28 65 71 #t). (eq
0af0: 3f 20 28 76 65 63 74 6f 72 3f 20 27 28 61 20 62 ? (vector? '(a b
0b00: 20 63 29 29 20 23 66 29 0a 20 20 20 20 20 20 20 c)) #f).
0b10: 20 20 28 65 71 3f 20 28 76 65 63 74 6f 72 3f 20 (eq? (vector?
0b20: 23 74 29 20 23 66 29 0a 20 20 20 20 20 20 20 20 #t) #f).
0b30: 20 28 65 71 3f 20 28 76 65 63 74 6f 72 3f 20 27 (eq? (vector? '
0b40: 23 28 29 29 20 23 74 29 0a 20 20 20 20 20 20 20 #()) #t).
0b50: 20 20 28 65 71 3f 20 28 76 65 63 74 6f 72 3f 20 (eq? (vector?
0b60: 27 28 29 29 20 23 66 29 29 0a 20 20 20 20 28 66 '()) #f)). (f
0b70: 61 69 6c 20 27 76 65 63 74 6f 72 3f 29 29 0a 0a ail 'vector?))..
0b80: 28 6f 72 20 28 61 6e 64 20 28 65 71 3f 20 28 76 (or (and (eq? (v
0b90: 65 63 74 6f 72 2d 65 6d 70 74 79 3f 20 27 23 28 ector-empty? '#(
0ba0: 61 29 29 20 23 66 29 0a 20 20 20 20 20 20 20 20 a)) #f).
0bb0: 20 28 65 71 3f 20 28 76 65 63 74 6f 72 2d 65 6d (eq? (vector-em
0bc0: 70 74 79 3f 20 27 23 28 28 29 29 29 20 23 66 29 pty? '#(())) #f)
0bd0: 0a 20 20 20 20 20 20 20 20 20 28 65 71 3f 20 28 . (eq? (
0be0: 76 65 63 74 6f 72 2d 65 6d 70 74 79 3f 20 27 23 vector-empty? '#
0bf0: 28 23 28 29 29 29 20 23 66 29 0a 20 20 20 20 20 (#())) #f).
0c00: 20 20 20 20 28 65 71 3f 20 28 76 65 63 74 6f 72 (eq? (vector
0c10: 2d 65 6d 70 74 79 3f 20 27 23 28 29 29 20 23 74 -empty? '#()) #t
0c20: 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 )). (fail 've
0c30: 63 74 6f 72 2d 65 6d 70 74 79 3f 29 29 0a 0a 28 ctor-empty?))..(
0c40: 6f 72 20 28 61 6e 64 20 28 65 71 3f 20 28 76 65 or (and (eq? (ve
0c50: 63 74 6f 72 3d 20 65 71 3f 20 27 23 28 61 20 62 ctor= eq? '#(a b
0c60: 20 63 20 64 29 20 27 23 28 61 20 62 20 63 20 64 c d) '#(a b c d
0c70: 29 29 20 23 74 29 0a 20 20 20 20 20 20 20 20 20 )) #t).
0c80: 28 65 71 3f 20 28 76 65 63 74 6f 72 3d 20 65 71 (eq? (vector= eq
0c90: 3f 20 27 23 28 61 20 62 20 63 20 64 29 20 27 23 ? '#(a b c d) '#
0ca0: 28 61 20 62 20 64 20 63 29 29 20 23 66 29 0a 20 (a b d c)) #f).
0cb0: 20 20 20 20 20 20 20 20 28 65 71 3f 20 28 76 65 (eq? (ve
0cc0: 63 74 6f 72 3d 20 3d 20 27 23 28 31 20 32 20 33 ctor= = '#(1 2 3
0cd0: 20 34 20 35 29 20 27 23 28 31 20 32 20 33 20 34 4 5) '#(1 2 3 4
0ce0: 29 29 20 23 66 29 0a 20 20 20 20 20 20 20 20 20 )) #f).
0cf0: 28 65 71 3f 20 28 76 65 63 74 6f 72 3d 20 3d 20 (eq? (vector= =
0d00: 27 23 28 31 20 32 20 33 20 34 29 20 27 23 28 31 '#(1 2 3 4) '#(1
0d10: 20 32 20 33 20 34 29 29 20 20 20 23 74 29 0a 20 2 3 4)) #t).
0d20: 20 20 20 20 20 20 20 20 28 65 71 3f 20 28 76 65 (eq? (ve
0d30: 63 74 6f 72 3d 20 65 71 3f 29 20 23 74 29 0a 20 ctor= eq?) #t).
0d40: 20 20 20 20 20 20 20 20 28 65 71 3f 20 28 76 65 (eq? (ve
0d50: 63 74 6f 72 3d 20 65 71 3f 20 27 23 28 61 29 29 ctor= eq? '#(a))
0d60: 20 23 74 29 0a 20 20 20 20 20 20 20 20 20 28 65 #t). (e
0d70: 71 3f 20 28 76 65 63 74 6f 72 3d 20 65 71 3f 20 q? (vector= eq?
0d80: 28 76 65 63 74 6f 72 20 28 76 65 63 74 6f 72 20 (vector (vector
0d90: 27 61 29 29 20 28 76 65 63 74 6f 72 20 28 76 65 'a)) (vector (ve
0da0: 63 74 6f 72 20 27 61 29 29 29 20 23 66 29 0a 20 ctor 'a))) #f).
0db0: 20 20 20 20 20 20 20 20 28 65 71 3f 20 28 76 65 (eq? (ve
0dc0: 63 74 6f 72 3d 20 65 71 75 61 6c 3f 20 28 76 65 ctor= equal? (ve
0dd0: 63 74 6f 72 20 28 76 65 63 74 6f 72 20 27 61 29 ctor (vector 'a)
0de0: 29 20 28 76 65 63 74 6f 72 20 28 76 65 63 74 6f ) (vector (vecto
0df0: 72 20 27 61 29 29 29 20 23 74 29 29 0a 20 20 20 r 'a))) #t)).
0e00: 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 3d 29 (fail 'vector=)
0e10: 29 0a 0a 28 6f 72 20 28 65 71 3f 20 28 76 65 63 )..(or (eq? (vec
0e20: 74 6f 72 2d 72 65 66 20 27 23 28 61 20 62 20 63 tor-ref '#(a b c
0e30: 20 64 29 20 32 29 20 27 63 29 0a 20 20 20 20 28 d) 2) 'c). (
0e40: 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 72 65 66 fail 'vector-ref
0e50: 29 29 0a 0a 28 6f 72 20 28 65 71 3f 20 28 76 65 ))..(or (eq? (ve
0e60: 63 74 6f 72 2d 6c 65 6e 67 74 68 20 27 23 28 61 ctor-length '#(a
0e70: 20 62 20 63 29 29 20 33 29 0a 20 20 20 20 28 66 b c)) 3). (f
0e80: 61 69 6c 20 27 76 65 63 74 6f 72 2d 6c 65 6e 67 ail 'vector-leng
0e90: 74 68 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c th))..(or (equal
0ea0: 3f 20 28 76 65 63 74 6f 72 2d 66 6f 6c 64 20 28 ? (vector-fold (
0eb0: 6c 61 6d 62 64 61 20 28 69 6e 64 65 78 20 6c 65 lambda (index le
0ec0: 6e 20 73 74 72 29 20 28 6d 61 78 20 28 73 74 72 n str) (max (str
0ed0: 69 6e 67 2d 6c 65 6e 67 74 68 20 73 74 72 29 20 ing-length str)
0ee0: 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 len)).
0ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0
0f00: 20 27 23 28 22 61 22 20 22 62 22 20 22 22 20 22 '#("a" "b" "" "
0f10: 64 64 22 20 22 65 22 29 29 0a 20 20 20 20 20 20 dd" "e")).
0f20: 20 20 20 20 20 20 32 29 0a 20 20 20 20 28 66 61 2). (fa
0f30: 69 6c 20 27 76 65 63 74 6f 72 2d 66 6f 6c 64 3a il 'vector-fold:
0f40: 31 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 1))..(or (equal?
0f50: 20 28 76 65 63 74 6f 72 2d 66 6f 6c 64 20 28 6c (vector-fold (l
0f60: 61 6d 62 64 61 20 28 69 6e 64 65 78 20 74 61 69 ambda (index tai
0f70: 6c 20 65 6c 74 29 20 28 63 6f 6e 73 20 65 6c 74 l elt) (cons elt
0f80: 20 74 61 69 6c 29 29 0a 20 20 20 20 20 20 20 20 tail)).
0f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0fa0: 20 27 28 29 20 27 23 28 30 20 31 20 32 20 33 20 '() '#(0 1 2 3
0fb0: 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 4)).
0fc0: 27 28 34 20 33 20 32 20 31 20 30 29 29 0a 20 20 '(4 3 2 1 0)).
0fd0: 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d (fail 'vector-
0fe0: 66 6f 6c 64 3a 32 29 29 0a 0a 28 6f 72 20 28 65 fold:2))..(or (e
0ff0: 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 66 6f qual? (vector-fo
1000: 6c 64 20 28 6c 61 6d 62 64 61 20 28 69 6e 64 65 ld (lambda (inde
1010: 78 20 63 6f 75 6e 74 65 72 20 6e 29 0a 20 20 20 x counter n).
1020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1030: 20 20 20 20 20 20 20 20 28 69 66 20 28 65 76 65 (if (eve
1040: 6e 3f 20 6e 29 20 28 2b 20 63 6f 75 6e 74 65 72 n? n) (+ counter
1050: 20 31 29 20 63 6f 75 6e 74 65 72 29 29 0a 20 20 1) counter)).
1060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1070: 20 20 20 20 20 20 20 30 20 27 23 28 30 20 31 20 0 '#(0 1
1080: 32 20 33 20 34 20 34 20 34 20 35 20 36 20 37 29 2 3 4 4 4 5 6 7)
1090: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 36 29 ). 6)
10a0: 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 . (fail 'vect
10b0: 6f 72 2d 66 6f 6c 64 3a 33 29 29 0a 0a 28 6f 72 or-fold:3))..(or
10c0: 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 (equal? (vector
10d0: 2d 66 6f 6c 64 2d 72 69 67 68 74 20 28 6c 61 6d -fold-right (lam
10e0: 62 64 61 20 28 69 6e 64 65 78 20 74 61 69 6c 20 bda (index tail
10f0: 65 6c 74 29 20 28 63 6f 6e 73 20 65 6c 74 20 74 elt) (cons elt t
1100: 61 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 ail)).
1110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1120: 20 20 20 20 20 27 28 29 20 27 23 28 61 20 62 20 '() '#(a b
1130: 63 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 c d)).
1140: 20 20 27 28 61 20 62 20 63 20 64 29 29 0a 20 20 '(a b c d)).
1150: 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d (fail 'vector-
1160: 66 6f 6c 64 2d 72 69 67 68 74 29 29 0a 0a 0a 28 fold-right))...(
1170: 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 or (equal? (vect
1180: 6f 72 2d 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 or-map (lambda (
1190: 69 20 78 29 20 28 2a 20 78 20 78 29 29 0a 20 20 i x) (* x x)).
11a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11b0: 20 20 20 20 20 20 28 76 65 63 74 6f 72 2d 75 6e (vector-un
11c0: 66 6f 6c 64 20 28 6c 61 6d 62 64 61 20 28 69 20 fold (lambda (i
11d0: 78 29 20 28 76 61 6c 75 65 73 20 78 20 28 2b 20 x) (values x (+
11e0: 78 20 31 29 29 29 20 34 20 31 29 29 0a 20 20 20 x 1))) 4 1)).
11f0: 20 20 20 20 20 20 20 20 20 27 23 28 31 20 34 20 '#(1 4
1200: 39 20 31 36 29 29 0a 20 20 20 20 28 66 61 69 6c 9 16)). (fail
1210: 20 27 76 65 63 74 6f 72 2d 6d 61 70 3a 31 29 29 'vector-map:1))
1220: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 ..(or (equal? (v
1230: 65 63 74 6f 72 2d 6d 61 70 20 28 6c 61 6d 62 64 ector-map (lambd
1240: 61 20 28 69 20 78 20 79 29 20 28 2a 20 78 20 79 a (i x y) (* x y
1250: 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).
1260: 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 (vect
1270: 6f 72 2d 75 6e 66 6f 6c 64 20 28 6c 61 6d 62 64 or-unfold (lambd
1280: 61 20 28 69 20 78 29 20 28 76 61 6c 75 65 73 20 a (i x) (values
1290: 78 20 28 2b 20 78 20 31 29 29 29 20 35 20 31 29 x (+ x 1))) 5 1)
12a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12b0: 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 (vector
12c0: 2d 75 6e 66 6f 6c 64 20 28 6c 61 6d 62 64 61 20 -unfold (lambda
12d0: 28 69 20 78 29 20 28 76 61 6c 75 65 73 20 78 20 (i x) (values x
12e0: 28 2d 20 78 20 31 29 29 29 20 35 20 35 29 29 0a (- x 1))) 5 5)).
12f0: 20 20 20 20 20 20 20 20 20 20 20 20 27 23 28 35 '#(5
1300: 20 38 20 39 20 38 20 35 29 29 0a 20 20 20 20 28 8 9 8 5)). (
1310: 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 6d 61 70 fail 'vector-map
1320: 3a 32 29 29 0a 0a 28 6f 72 20 28 6d 65 6d 62 65 :2))..(or (membe
1330: 72 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 30 r (let ((count 0
1340: 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).
1350: 20 28 76 65 63 74 6f 72 2d 6d 61 70 20 28 6c 61 (vector-map (la
1360: 6d 62 64 61 20 28 69 67 6e 6f 72 65 64 2d 69 6e mbda (ignored-in
1370: 64 65 78 20 69 67 6e 6f 72 65 64 2d 65 6c 74 29 dex ignored-elt)
1380: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1390: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 (se
13a0: 74 21 20 63 6f 75 6e 74 20 28 2b 20 63 6f 75 6e t! count (+ coun
13b0: 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 t 1)).
13c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13d0: 20 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 count).
13e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13f0: 20 20 20 27 23 28 61 20 62 29 29 29 0a 20 20 20 '#(a b))).
1400: 20 20 20 20 20 20 20 20 20 27 28 23 28 31 20 32 '(#(1 2
1410: 29 20 23 28 32 20 31 29 29 29 0a 20 20 20 20 28 ) #(2 1))). (
1420: 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 6d 61 70 fail 'vector-map
1430: 3a 33 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c :3))..(or (equal
1440: 3f 20 28 6c 65 74 20 28 28 76 20 28 76 65 63 74 ? (let ((v (vect
1450: 6f 72 20 31 20 32 20 33 20 34 29 29 29 0a 20 20 or 1 2 3 4))).
1460: 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 (vec
1470: 74 6f 72 2d 6d 61 70 21 20 28 6c 61 6d 62 64 61 tor-map! (lambda
1480: 20 28 69 20 65 6c 74 29 20 28 2b 20 69 20 65 6c (i elt) (+ i el
1490: 74 29 29 20 76 29 0a 20 20 20 20 20 20 20 20 20 t)) v).
14a0: 20 20 20 20 20 76 29 0a 20 20 20 20 20 20 20 20 v).
14b0: 20 20 20 20 27 23 28 31 20 33 20 35 20 37 29 29 '#(1 3 5 7))
14c0: 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 . (fail 'vect
14d0: 6f 72 2d 6d 61 70 21 29 29 0a 0a 28 6f 72 20 28 or-map!))..(or (
14e0: 65 71 75 61 6c 3f 20 28 6c 65 74 20 28 28 70 20 equal? (let ((p
14f0: 28 6f 70 65 6e 2d 6f 75 74 70 75 74 2d 73 74 72 (open-output-str
1500: 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 ing))).
1510: 20 20 20 20 20 28 76 65 63 74 6f 72 2d 66 6f 72 (vector-for
1520: 2d 65 61 63 68 20 28 6c 61 6d 62 64 61 20 28 69 -each (lambda (i
1530: 20 78 29 20 28 64 69 73 70 6c 61 79 20 78 20 70 x) (display x p
1540: 29 20 28 6e 65 77 6c 69 6e 65 20 70 29 29 0a 20 ) (newline p)).
1550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 23 '#
1570: 28 22 66 6f 6f 22 20 22 62 61 72 22 20 22 62 61 ("foo" "bar" "ba
1580: 7a 22 20 22 71 75 75 78 22 20 22 7a 6f 74 22 29 z" "quux" "zot")
1590: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
15a0: 28 67 65 74 2d 6f 75 74 70 75 74 2d 73 74 72 69 (get-output-stri
15b0: 6e 67 20 70 29 29 0a 20 20 20 20 20 20 20 20 20 ng p)).
15c0: 20 20 20 22 66 6f 6f 5c 6e 62 61 72 5c 6e 62 61 "foo\nbar\nba
15d0: 7a 5c 6e 71 75 75 78 5c 6e 7a 6f 74 5c 6e 22 29 z\nquux\nzot\n")
15e0: 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 . (fail 'vect
15f0: 6f 72 2d 66 6f 72 2d 65 61 63 68 29 29 0a 0a 28 or-for-each))..(
1600: 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 or (equal? (vect
1610: 6f 72 2d 63 6f 75 6e 74 20 28 6c 61 6d 62 64 61 or-count (lambda
1620: 20 28 69 20 65 6c 74 29 20 28 65 76 65 6e 3f 20 (i elt) (even?
1630: 65 6c 74 29 29 20 27 23 28 33 20 31 20 34 20 31 elt)) '#(3 1 4 1
1640: 20 35 20 39 20 32 20 35 20 36 29 29 0a 20 20 20 5 9 2 5 6)).
1650: 20 20 20 20 20 20 20 20 20 33 29 0a 20 20 20 20 3).
1660: 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 63 6f (fail 'vector-co
1670: 75 6e 74 3a 31 29 29 0a 0a 28 6f 72 20 28 65 71 unt:1))..(or (eq
1680: 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 63 6f 75 ual? (vector-cou
1690: 6e 74 20 28 6c 61 6d 62 64 61 20 28 69 20 78 20 nt (lambda (i x
16a0: 79 29 20 28 3c 20 78 20 79 29 29 0a 20 20 20 20 y) (< x y)).
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
16c0: 20 20 20 20 20 20 27 23 28 31 20 33 20 36 20 39 '#(1 3 6 9
16d0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
16e0: 20 20 20 20 20 20 20 20 20 20 20 20 27 23 28 32 '#(2
16f0: 20 34 20 36 20 38 20 31 30 20 31 32 29 29 0a 20 4 6 8 10 12)).
1700: 20 20 20 20 20 20 20 20 20 20 20 32 29 0a 20 20 2).
1710: 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d (fail 'vector-
1720: 63 6f 75 6e 74 3a 32 29 29 0a 0a 28 6f 72 20 28 count:2))..(or (
1730: 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 69 equal? (vector-i
1740: 6e 64 65 78 20 65 76 65 6e 3f 20 27 23 28 33 20 ndex even? '#(3
1750: 31 20 34 20 31 20 35 20 39 29 29 0a 20 20 20 20 1 4 1 5 9)).
1760: 20 20 20 20 20 20 20 20 32 29 0a 20 20 20 20 28 2). (
1770: 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 69 6e 64 fail 'vector-ind
1780: 65 78 3a 31 29 29 0a 0a 28 6f 72 20 28 65 71 75 ex:1))..(or (equ
1790: 61 6c 3f 20 28 76 65 63 74 6f 72 2d 69 6e 64 65 al? (vector-inde
17a0: 78 20 3c 20 27 23 28 33 20 31 20 34 20 31 20 35 x < '#(3 1 4 1 5
17b0: 20 39 20 32 20 35 20 36 29 20 27 23 28 32 20 37 9 2 5 6) '#(2 7
17c0: 20 31 20 38 20 32 29 29 0a 20 20 20 20 20 20 20 1 8 2)).
17d0: 20 20 20 20 20 31 29 0a 20 20 20 20 28 66 61 69 1). (fai
17e0: 6c 20 27 76 65 63 74 6f 72 2d 69 6e 64 65 78 3a l 'vector-index:
17f0: 32 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 2))..(or (equal?
1800: 20 28 76 65 63 74 6f 72 2d 69 6e 64 65 78 20 3d (vector-index =
1810: 20 27 23 28 33 20 31 20 34 20 31 20 35 20 39 20 '#(3 1 4 1 5 9
1820: 32 20 35 20 36 29 20 27 23 28 32 20 37 20 31 20 2 5 6) '#(2 7 1
1830: 38 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 8 2)).
1840: 20 20 23 66 29 0a 20 20 20 20 28 66 61 69 6c 20 #f). (fail
1850: 27 76 65 63 74 6f 72 2d 69 6e 64 65 78 3a 33 29 'vector-index:3)
1860: 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 )..(or (equal? (
1870: 76 65 63 74 6f 72 2d 69 6e 64 65 78 2d 72 69 67 vector-index-rig
1880: 68 74 20 65 76 65 6e 3f 20 27 23 28 33 20 31 20 ht even? '#(3 1
1890: 34 20 31 20 35 20 39 29 29 0a 20 20 20 20 20 20 4 1 5 9)).
18a0: 20 20 20 20 20 20 32 29 0a 20 20 20 20 28 66 61 2). (fa
18b0: 69 6c 20 27 76 65 63 74 6f 72 2d 69 6e 64 65 78 il 'vector-index
18c0: 2d 72 69 67 68 74 3a 31 29 29 0a 0a 28 6f 72 20 -right:1))..(or
18d0: 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d (equal? (vector-
18e0: 69 6e 64 65 78 2d 72 69 67 68 74 20 3c 20 27 23 index-right < '#
18f0: 28 33 20 31 20 34 20 31 20 35 29 20 27 23 28 32 (3 1 4 1 5) '#(2
1900: 20 37 20 31 20 38 20 32 29 29 0a 20 20 20 20 20 7 1 8 2)).
1910: 20 20 20 20 20 20 20 33 29 0a 20 20 20 20 28 66 3). (f
1920: 61 69 6c 20 27 76 65 63 74 6f 72 2d 69 6e 64 65 ail 'vector-inde
1930: 78 2d 72 69 67 68 74 3a 32 29 29 0a 0a 28 6f 72 x-right:2))..(or
1940: 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 (equal? (vector
1950: 2d 69 6e 64 65 78 2d 72 69 67 68 74 20 3d 20 27 -index-right = '
1960: 23 28 33 20 31 20 34 20 31 20 35 29 20 27 23 28 #(3 1 4 1 5) '#(
1970: 32 20 37 20 31 20 38 20 32 29 29 0a 20 20 20 20 2 7 1 8 2)).
1980: 20 20 20 20 20 20 20 20 23 66 29 0a 20 20 20 20 #f).
1990: 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 69 6e (fail 'vector-in
19a0: 64 65 78 2d 72 69 67 68 74 3a 33 29 29 0a 0a 28 dex-right:3))..(
19b0: 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 or (equal? (vect
19c0: 6f 72 2d 73 6b 69 70 20 65 76 65 6e 3f 20 27 23 or-skip even? '#
19d0: 28 33 20 31 20 34 20 31 20 35 20 39 29 29 0a 20 (3 1 4 1 5 9)).
19e0: 20 20 20 20 20 20 20 20 20 20 20 30 29 0a 20 20 0).
19f0: 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d (fail 'vector-
1a00: 73 6b 69 70 3a 31 29 29 0a 0a 28 6f 72 20 28 65 skip:1))..(or (e
1a10: 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 73 6b qual? (vector-sk
1a20: 69 70 20 3c 20 27 23 28 33 20 31 20 34 20 31 20 ip < '#(3 1 4 1
1a30: 35 20 39 20 32 20 35 20 36 29 20 27 23 28 32 20 5 9 2 5 6) '#(2
1a40: 37 20 31 20 38 20 32 29 29 0a 20 20 20 20 20 20 7 1 8 2)).
1a50: 20 20 20 20 20 20 30 29 0a 20 20 20 20 28 66 61 0). (fa
1a60: 69 6c 20 27 76 65 63 74 6f 72 2d 73 6b 69 70 3a il 'vector-skip:
1a70: 32 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 2))..(or (equal?
1a80: 20 28 76 65 63 74 6f 72 2d 73 6b 69 70 20 3d 20 (vector-skip =
1a90: 27 23 28 33 20 31 20 34 20 31 20 35 20 39 20 32 '#(3 1 4 1 5 9 2
1aa0: 20 35 20 36 29 20 27 23 28 32 20 37 20 31 20 38 5 6) '#(2 7 1 8
1ab0: 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 2)).
1ac0: 20 30 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 0). (fail 'v
1ad0: 65 63 74 6f 72 2d 73 6b 69 70 3a 33 29 29 0a 0a ector-skip:3))..
1ae0: 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 (or (equal? (vec
1af0: 74 6f 72 2d 73 6b 69 70 20 3e 20 27 23 28 33 20 tor-skip > '#(3
1b00: 31 20 34 20 31 20 35 20 39 20 32 20 35 20 36 29 1 4 1 5 9 2 5 6)
1b10: 20 27 23 28 32 20 37 20 31 20 38 20 32 29 29 0a '#(2 7 1 8 2)).
1b20: 20 20 20 20 20 20 20 20 20 20 20 20 31 29 0a 20 1).
1b30: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
1b40: 2d 73 6b 69 70 3a 34 29 29 0a 0a 28 6f 72 20 28 -skip:4))..(or (
1b50: 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 73 equal? (vector-s
1b60: 6b 69 70 2d 72 69 67 68 74 20 65 76 65 6e 3f 20 kip-right even?
1b70: 27 23 28 33 20 31 20 34 20 31 20 35 20 39 29 29 '#(3 1 4 1 5 9))
1b80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 35 29 0a . 5).
1b90: 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f (fail 'vecto
1ba0: 72 2d 73 6b 69 70 2d 72 69 67 68 74 3a 31 29 29 r-skip-right:1))
1bb0: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 ..(or (equal? (v
1bc0: 65 63 74 6f 72 2d 73 6b 69 70 2d 72 69 67 68 74 ector-skip-right
1bd0: 20 3c 20 27 23 28 33 20 31 20 34 20 31 20 35 29 < '#(3 1 4 1 5)
1be0: 20 27 23 28 32 20 37 20 31 20 38 20 32 29 29 0a '#(2 7 1 8 2)).
1bf0: 20 20 20 20 20 20 20 20 20 20 20 20 34 29 0a 20 4).
1c00: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
1c10: 2d 73 6b 69 70 2d 72 69 67 68 74 3a 32 29 29 0a -skip-right:2)).
1c20: 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 .(or (equal? (ve
1c30: 63 74 6f 72 2d 73 6b 69 70 2d 72 69 67 68 74 20 ctor-skip-right
1c40: 3d 20 27 23 28 33 20 31 20 34 20 31 20 35 29 20 = '#(3 1 4 1 5)
1c50: 27 23 28 32 20 37 20 31 20 38 20 32 29 29 0a 20 '#(2 7 1 8 2)).
1c60: 20 20 20 20 20 20 20 20 20 20 20 34 29 0a 20 20 4).
1c70: 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d (fail 'vector-
1c80: 73 6b 69 70 2d 72 69 67 68 74 3a 33 29 29 0a 0a skip-right:3))..
1c90: 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 (or (equal? (vec
1ca0: 74 6f 72 2d 73 6b 69 70 2d 72 69 67 68 74 20 3e tor-skip-right >
1cb0: 20 27 23 28 33 20 31 20 34 20 31 20 35 29 20 27 '#(3 1 4 1 5) '
1cc0: 23 28 32 20 37 20 31 20 38 20 32 29 29 0a 20 20 #(2 7 1 8 2)).
1cd0: 20 20 20 20 20 20 20 20 20 20 33 29 0a 20 20 20 3).
1ce0: 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 73 (fail 'vector-s
1cf0: 6b 69 70 2d 72 69 67 68 74 3a 34 29 29 0a 0a 28 kip-right:4))..(
1d00: 64 65 66 69 6e 65 20 28 73 74 72 69 6e 67 2d 63 define (string-c
1d10: 6f 6d 70 61 72 61 74 6f 72 20 73 31 20 73 32 29 omparator s1 s2)
1d20: 0a 20 20 28 63 6f 6e 64 20 28 28 3c 20 28 73 74 . (cond ((< (st
1d30: 72 69 6e 67 2d 6c 65 6e 67 74 68 20 73 31 29 20 ring-length s1)
1d40: 28 73 74 72 69 6e 67 2d 6c 65 6e 67 74 68 20 73 (string-length s
1d50: 32 29 29 0a 20 20 20 20 20 20 20 20 20 2d 31 29 2)). -1)
1d60: 0a 20 20 20 20 20 20 20 20 28 28 3e 20 28 73 74 . ((> (st
1d70: 72 69 6e 67 2d 6c 65 6e 67 74 68 20 73 31 29 20 ring-length s1)
1d80: 28 73 74 72 69 6e 67 2d 6c 65 6e 67 74 68 20 73 (string-length s
1d90: 32 29 29 0a 20 20 20 20 20 20 20 20 20 2b 31 29 2)). +1)
1da0: 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e . ((strin
1db0: 67 3c 3f 20 73 31 20 73 32 29 0a 20 20 20 20 20 g<? s1 s2).
1dc0: 20 20 20 20 2d 31 29 0a 20 20 20 20 20 20 20 20 -1).
1dd0: 28 28 73 74 72 69 6e 67 3e 3f 20 73 31 20 73 32 ((string>? s1 s2
1de0: 29 0a 20 20 20 20 20 20 20 20 20 2b 31 29 0a 20 ). +1).
1df0: 20 20 20 20 20 20 20 28 65 6c 73 65 0a 20 20 20 (else.
1e00: 20 20 20 20 20 20 30 29 29 29 0a 0a 28 6f 72 20 0)))..(or
1e10: 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d (equal? (vector-
1e20: 62 69 6e 61 72 79 2d 73 65 61 72 63 68 20 27 23 binary-search '#
1e30: 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ().
1e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e50: 20 20 20 20 20 22 62 61 64 22 0a 20 20 20 20 20 "bad".
1e60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 str
1e80: 69 6e 67 2d 63 6f 6d 70 61 72 61 74 6f 72 29 0a ing-comparator).
1e90: 20 20 20 20 20 20 20 20 20 20 20 20 23 66 29 0a #f).
1ea0: 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f (fail 'vecto
1eb0: 72 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 3a r-binary-search:
1ec0: 30 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 0))..(or (equal?
1ed0: 20 28 76 65 63 74 6f 72 2d 62 69 6e 61 72 79 2d (vector-binary-
1ee0: 73 65 61 72 63 68 20 27 23 28 22 61 62 22 20 22 search '#("ab" "
1ef0: 63 64 22 20 22 65 66 22 20 22 62 63 64 22 20 22 cd" "ef" "bcd" "
1f00: 63 64 65 22 20 22 61 61 61 61 22 29 0a 20 20 20 cde" "aaaa").
1f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "
1f30: 62 61 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 bad".
1f40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1f50: 20 20 20 20 20 20 20 73 74 72 69 6e 67 2d 63 6f string-co
1f60: 6d 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 mparator).
1f70: 20 20 20 20 20 20 23 66 29 0a 20 20 20 20 28 66 #f). (f
1f80: 61 69 6c 20 27 76 65 63 74 6f 72 2d 62 69 6e 61 ail 'vector-bina
1f90: 72 79 2d 73 65 61 72 63 68 3a 31 29 29 0a 0a 28 ry-search:1))..(
1fa0: 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 or (equal? (vect
1fb0: 6f 72 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 or-binary-search
1fc0: 20 27 23 28 22 61 62 22 20 22 63 64 22 20 22 65 '#("ab" "cd" "e
1fd0: 66 22 20 22 62 63 64 22 20 22 63 64 65 22 20 22 f" "bcd" "cde" "
1fe0: 61 61 61 61 22 29 0a 20 20 20 20 20 20 20 20 20 aaaa").
1ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2000: 20 20 20 20 20 20 20 20 20 22 22 0a 20 20 20 20 "".
2010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 st
2030: 72 69 6e 67 2d 63 6f 6d 70 61 72 61 74 6f 72 29 ring-comparator)
2040: 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 66 29 . #f)
2050: 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 . (fail 'vect
2060: 6f 72 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 or-binary-search
2070: 3a 32 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c :2))..(or (equal
2080: 3f 20 28 76 65 63 74 6f 72 2d 62 69 6e 61 72 79 ? (vector-binary
2090: 2d 73 65 61 72 63 68 20 27 23 28 22 61 62 22 20 -search '#("ab"
20a0: 22 63 64 22 20 22 65 66 22 20 22 62 63 64 22 20 "cd" "ef" "bcd"
20b0: 22 63 64 65 22 20 22 61 61 61 61 22 29 0a 20 20 "cde" "aaaa").
20c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20e0: 22 68 65 6c 6c 6f 22 0a 20 20 20 20 20 20 20 20 "hello".
20f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2100: 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 string
2110: 2d 63 6f 6d 70 61 72 61 74 6f 72 29 0a 20 20 20 -comparator).
2120: 20 20 20 20 20 20 20 20 20 23 66 29 0a 20 20 20 #f).
2130: 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 62 (fail 'vector-b
2140: 69 6e 61 72 79 2d 73 65 61 72 63 68 3a 33 29 29 inary-search:3))
2150: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 ..(or (equal? (v
2160: 65 63 74 6f 72 2d 62 69 6e 61 72 79 2d 73 65 61 ector-binary-sea
2170: 72 63 68 20 27 23 28 22 61 62 22 20 22 63 64 22 rch '#("ab" "cd"
2180: 20 22 65 66 22 20 22 62 63 64 22 20 22 63 64 65 "ef" "bcd" "cde
2190: 22 20 22 61 61 61 61 22 29 0a 20 20 20 20 20 20 " "aaaa").
21a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21b0: 20 20 20 20 20 20 20 20 20 20 20 20 22 61 62 22 "ab"
21c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
21d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21e0: 20 20 20 73 74 72 69 6e 67 2d 63 6f 6d 70 61 72 string-compar
21f0: 61 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 ator).
2200: 20 20 30 29 0a 20 20 20 20 28 66 61 69 6c 20 27 0). (fail '
2210: 76 65 63 74 6f 72 2d 62 69 6e 61 72 79 2d 73 65 vector-binary-se
2220: 61 72 63 68 3a 34 29 29 0a 0a 28 6f 72 20 28 65 arch:4))..(or (e
2230: 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 62 69 qual? (vector-bi
2240: 6e 61 72 79 2d 73 65 61 72 63 68 20 27 23 28 22 nary-search '#("
2250: 61 62 22 20 22 63 64 22 20 22 65 66 22 20 22 62 ab" "cd" "ef" "b
2260: 63 64 22 20 22 63 64 65 22 20 22 61 61 61 61 22 cd" "cde" "aaaa"
2270: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
2280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2290: 20 20 20 20 22 61 61 61 61 22 0a 20 20 20 20 20 "aaaa".
22a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
22b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 str
22c0: 69 6e 67 2d 63 6f 6d 70 61 72 61 74 6f 72 29 0a ing-comparator).
22d0: 20 20 20 20 20 20 20 20 20 20 20 20 35 29 0a 20 5).
22e0: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
22f0: 2d 62 69 6e 61 72 79 2d 73 65 61 72 63 68 3a 35 -binary-search:5
2300: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
2310: 28 76 65 63 74 6f 72 2d 62 69 6e 61 72 79 2d 73 (vector-binary-s
2320: 65 61 72 63 68 20 27 23 28 22 61 62 22 20 22 63 earch '#("ab" "c
2330: 64 22 20 22 65 66 22 20 22 62 63 64 22 20 22 63 d" "ef" "bcd" "c
2340: 64 65 22 20 22 61 61 61 61 22 29 0a 20 20 20 20 de" "aaaa").
2350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 "b
2370: 63 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 cd".
2380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2390: 20 20 20 20 20 20 73 74 72 69 6e 67 2d 63 6f 6d string-com
23a0: 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 20 parator).
23b0: 20 20 20 20 20 33 29 0a 20 20 20 20 28 66 61 69 3). (fai
23c0: 6c 20 27 76 65 63 74 6f 72 2d 62 69 6e 61 72 79 l 'vector-binary
23d0: 2d 73 65 61 72 63 68 3a 36 29 29 0a 0a 28 6f 72 -search:6))..(or
23e0: 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 (equal? (vector
23f0: 2d 61 6e 79 20 6c 69 73 74 20 27 23 28 29 20 27 -any list '#() '
2400: 23 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 #(a b c)).
2410: 20 20 20 20 20 20 23 66 29 0a 20 20 20 20 28 66 #f). (f
2420: 61 69 6c 20 27 76 65 63 74 6f 72 2d 61 6e 79 3a ail 'vector-any:
2430: 30 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 0))..(or (equal?
2440: 20 28 76 65 63 74 6f 72 2d 61 6e 79 20 6c 69 73 (vector-any lis
2450: 74 20 27 23 28 61 20 62 20 63 29 20 27 23 28 29 t '#(a b c) '#()
2460: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 23 66 ). #f
2470: 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 ). (fail 'vec
2480: 74 6f 72 2d 61 6e 79 3a 31 29 29 0a 0a 28 6f 72 tor-any:1))..(or
2490: 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 (equal? (vector
24a0: 2d 61 6e 79 20 6c 69 73 74 20 27 23 28 61 20 62 -any list '#(a b
24b0: 20 63 29 20 27 23 28 64 29 29 0a 20 20 20 20 20 c) '#(d)).
24c0: 20 20 20 20 20 20 20 27 28 61 20 64 29 29 0a 20 '(a d)).
24d0: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
24e0: 2d 61 6e 79 3a 32 29 29 0a 0a 28 6f 72 20 28 65 -any:2))..(or (e
24f0: 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 61 6e qual? (vector-an
2500: 79 20 6d 65 6d 71 20 27 23 28 61 20 62 20 63 29 y memq '#(a b c)
2510: 20 27 23 28 28 29 20 28 63 20 64 20 65 29 20 28 '#(() (c d e) (
2520: 62 20 63 20 39 37 29 29 29 0a 20 20 20 20 20 20 b c 97))).
2530: 20 20 20 20 20 20 27 28 63 20 39 37 29 29 0a 20 '(c 97)).
2540: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
2550: 2d 61 6e 79 3a 33 29 29 0a 0a 28 6f 72 20 28 65 -any:3))..(or (e
2560: 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d 65 76 qual? (vector-ev
2570: 65 72 79 20 6c 69 73 74 20 27 23 28 29 20 27 23 ery list '#() '#
2580: 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 (a b c)).
2590: 20 20 20 20 20 23 74 29 0a 20 20 20 20 28 66 61 #t). (fa
25a0: 69 6c 20 27 76 65 63 74 6f 72 2d 65 76 65 72 79 il 'vector-every
25b0: 3a 30 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c :0))..(or (equal
25c0: 3f 20 28 76 65 63 74 6f 72 2d 65 76 65 72 79 20 ? (vector-every
25d0: 6c 69 73 74 20 27 23 28 61 20 62 20 63 29 20 27 list '#(a b c) '
25e0: 23 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 #()).
25f0: 20 23 74 29 0a 20 20 20 20 28 66 61 69 6c 20 27 #t). (fail '
2600: 76 65 63 74 6f 72 2d 65 76 65 72 79 3a 31 29 29 vector-every:1))
2610: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 76 ..(or (equal? (v
2620: 65 63 74 6f 72 2d 65 76 65 72 79 20 6c 69 73 74 ector-every list
2630: 20 27 23 28 61 20 62 20 63 29 20 27 23 28 64 29 '#(a b c) '#(d)
2640: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 28 ). '(
2650: 61 20 64 29 29 0a 20 20 20 20 28 66 61 69 6c 20 a d)). (fail
2660: 27 76 65 63 74 6f 72 2d 65 76 65 72 79 3a 32 29 'vector-every:2)
2670: 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 )..(or (equal? (
2680: 76 65 63 74 6f 72 2d 65 76 65 72 79 20 6d 65 6d vector-every mem
2690: 71 20 27 23 28 61 20 62 20 63 29 20 27 23 28 28 q '#(a b c) '#((
26a0: 29 20 28 63 20 64 20 65 29 20 28 62 20 63 20 39 ) (c d e) (b c 9
26b0: 37 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 7))).
26c0: 20 23 66 29 0a 20 20 20 20 28 66 61 69 6c 20 27 #f). (fail '
26d0: 76 65 63 74 6f 72 2d 65 76 65 72 79 3a 33 29 29 vector-every:3))
26e0: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 6c ..(or (equal? (l
26f0: 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 20 30 et ((v (vector 0
2700: 20 31 20 32 20 33 29 29 29 0a 20 20 20 20 20 20 1 2 3))).
2710: 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 2d (vector-
2720: 73 65 74 21 20 76 20 31 20 31 31 29 0a 20 20 20 set! v 1 11).
2730: 20 20 20 20 20 20 20 20 20 20 20 76 29 0a 20 20 v).
2740: 20 20 20 20 20 20 20 20 20 20 27 23 28 30 20 31 '#(0 1
2750: 31 20 32 20 33 29 29 0a 20 20 20 20 28 66 61 69 1 2 3)). (fai
2760: 6c 20 27 76 65 63 74 6f 72 2d 73 65 74 21 29 29 l 'vector-set!))
2770: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 6c ..(or (equal? (l
2780: 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 20 30 et ((v (vector 0
2790: 20 31 20 32 20 33 29 29 29 0a 20 20 20 20 20 20 1 2 3))).
27a0: 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 2d (vector-
27b0: 73 77 61 70 21 20 76 20 31 20 33 29 0a 20 20 20 swap! v 1 3).
27c0: 20 20 20 20 20 20 20 20 20 20 20 76 29 0a 20 20 v).
27d0: 20 20 20 20 20 20 20 20 20 20 27 23 28 30 20 33 '#(0 3
27e0: 20 32 20 31 29 29 0a 20 20 20 20 28 66 61 69 6c 2 1)). (fail
27f0: 20 27 76 65 63 74 6f 72 2d 73 77 61 70 21 29 29 'vector-swap!))
2800: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 6c ..(or (equal? (l
2810: 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 29 29 et ((v (vector))
2820: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
2830: 28 76 65 63 74 6f 72 2d 66 69 6c 6c 21 20 76 20 (vector-fill! v
2840: 39 37 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 97).
2850: 20 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 v).
2860: 20 27 23 28 29 29 0a 20 20 20 20 28 66 61 69 6c '#()). (fail
2870: 20 27 76 65 63 74 6f 72 2d 66 69 6c 6c 21 3a 30 'vector-fill!:0
2880: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
2890: 28 6c 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 (let ((v (vector
28a0: 20 30 20 31 20 32 20 33 29 29 29 0a 20 20 20 20 0 1 2 3))).
28b0: 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f (vecto
28c0: 72 2d 66 69 6c 6c 21 20 76 20 39 37 29 0a 20 20 r-fill! v 97).
28d0: 20 20 20 20 20 20 20 20 20 20 20 20 76 29 0a 20 v).
28e0: 20 20 20 20 20 20 20 20 20 20 20 27 23 28 39 37 '#(97
28f0: 20 39 37 20 39 37 20 39 37 29 29 0a 20 20 20 20 97 97 97)).
2900: 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 66 69 (fail 'vector-fi
2910: 6c 6c 21 3a 31 29 29 0a 0a 28 6f 72 20 28 65 71 ll!:1))..(or (eq
2920: 75 61 6c 3f 20 28 6c 65 74 20 28 28 76 20 28 76 ual? (let ((v (v
2930: 65 63 74 6f 72 20 30 20 31 20 32 20 33 29 29 29 ector 0 1 2 3)))
2940: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 . (
2950: 76 65 63 74 6f 72 2d 66 69 6c 6c 21 20 76 20 39 vector-fill! v 9
2960: 37 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 7 1).
2970: 20 20 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 v).
2980: 20 20 27 23 28 30 20 39 37 20 39 37 20 39 37 29 '#(0 97 97 97)
2990: 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 ). (fail 'vec
29a0: 74 6f 72 2d 66 69 6c 6c 21 3a 32 29 29 0a 0a 28 tor-fill!:2))..(
29b0: 6f 72 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 or (equal? (let
29c0: 28 28 76 20 28 76 65 63 74 6f 72 20 30 20 31 20 ((v (vector 0 1
29d0: 32 20 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 2 3))).
29e0: 20 20 20 20 20 28 76 65 63 74 6f 72 2d 66 69 6c (vector-fil
29f0: 6c 21 20 76 20 39 37 20 31 20 32 29 0a 20 20 20 l! v 97 1 2).
2a00: 20 20 20 20 20 20 20 20 20 20 20 76 29 0a 20 20 v).
2a10: 20 20 20 20 20 20 20 20 20 20 27 23 28 30 20 39 '#(0 9
2a20: 37 20 32 20 33 29 29 0a 20 20 20 20 28 66 61 69 7 2 3)). (fai
2a30: 6c 20 27 76 65 63 74 6f 72 2d 66 69 6c 6c 21 3a l 'vector-fill!:
2a40: 33 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 3))..(or (equal?
2a50: 20 28 6c 65 74 20 28 28 76 20 28 76 65 63 74 6f (let ((v (vecto
2a60: 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 r))).
2a70: 20 20 20 28 76 65 63 74 6f 72 2d 72 65 76 65 72 (vector-rever
2a80: 73 65 21 20 76 29 0a 20 20 20 20 20 20 20 20 20 se! v).
2a90: 20 20 20 20 20 76 29 0a 20 20 20 20 20 20 20 20 v).
2aa0: 20 20 20 20 27 23 28 29 29 0a 20 20 20 20 28 66 '#()). (f
2ab0: 61 69 6c 20 27 76 65 63 74 6f 72 2d 72 65 76 65 ail 'vector-reve
2ac0: 72 73 65 21 3a 30 29 29 0a 0a 28 6f 72 20 28 65 rse!:0))..(or (e
2ad0: 71 75 61 6c 3f 20 28 6c 65 74 20 28 28 76 20 28 qual? (let ((v (
2ae0: 76 65 63 74 6f 72 20 30 20 31 20 32 20 33 29 29 vector 0 1 2 3))
2af0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
2b00: 28 76 65 63 74 6f 72 2d 72 65 76 65 72 73 65 21 (vector-reverse!
2b10: 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 v).
2b20: 20 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 v).
2b30: 20 27 23 28 33 20 32 20 31 20 30 29 29 0a 20 20 '#(3 2 1 0)).
2b40: 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d (fail 'vector-
2b50: 72 65 76 65 72 73 65 21 3a 31 29 29 0a 0a 28 6f reverse!:1))..(o
2b60: 72 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 28 r (equal? (let (
2b70: 28 76 20 28 76 65 63 74 6f 72 20 30 20 31 20 32 (v (vector 0 1 2
2b80: 20 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3))).
2b90: 20 20 20 20 28 76 65 63 74 6f 72 2d 72 65 76 65 (vector-reve
2ba0: 72 73 65 21 20 76 20 31 29 0a 20 20 20 20 20 20 rse! v 1).
2bb0: 20 20 20 20 20 20 20 20 76 29 0a 20 20 20 20 20 v).
2bc0: 20 20 20 20 20 20 20 27 23 28 30 20 33 20 32 20 '#(0 3 2
2bd0: 31 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 1)). (fail 'v
2be0: 65 63 74 6f 72 2d 72 65 76 65 72 73 65 21 3a 32 ector-reverse!:2
2bf0: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
2c00: 28 6c 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 (let ((v (vector
2c10: 20 30 20 31 20 32 20 33 29 29 29 0a 20 20 20 20 0 1 2 3))).
2c20: 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f (vecto
2c30: 72 2d 72 65 76 65 72 73 65 21 20 76 20 31 20 33 r-reverse! v 1 3
2c40: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
2c50: 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 v). '
2c60: 23 28 30 20 32 20 31 20 33 29 29 0a 20 20 20 20 #(0 2 1 3)).
2c70: 28 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 72 65 (fail 'vector-re
2c80: 76 65 72 73 65 21 3a 33 29 29 0a 0a 28 6f 72 20 verse!:3))..(or
2c90: 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 28 28 76 (equal? (let ((v
2ca0: 20 28 76 65 63 74 6f 72 29 29 0a 20 20 20 20 20 (vector)).
2cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 72 (sr
2cc0: 63 20 27 23 28 31 30 30 20 31 30 31 20 31 30 32 c '#(100 101 102
2cd0: 20 31 30 33 20 31 30 34 20 31 30 35 29 29 29 0a 103 104 105))).
2ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 (v
2cf0: 65 63 74 6f 72 2d 63 6f 70 79 21 20 76 20 30 20 ector-copy! v 0
2d00: 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 v).
2d10: 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 v).
2d20: 27 23 28 29 29 0a 20 20 20 20 28 66 61 69 6c 20 '#()). (fail
2d30: 27 76 65 63 74 6f 72 2d 63 6f 70 79 21 3a 30 29 'vector-copy!:0)
2d40: 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 )..(or (equal? (
2d50: 6c 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 20 let ((v (vector
2d60: 30 20 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 0 1 2 3 4 5)).
2d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d80: 28 73 72 63 20 27 23 28 31 30 30 20 31 30 31 20 (src '#(100 101
2d90: 31 30 32 20 31 30 33 20 31 30 34 20 31 30 35 29 102 103 104 105)
2da0: 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )).
2db0: 20 28 76 65 63 74 6f 72 2d 63 6f 70 79 21 20 76 (vector-copy! v
2dc0: 20 30 20 73 72 63 29 0a 20 20 20 20 20 20 20 20 0 src).
2dd0: 20 20 20 20 20 20 76 29 0a 20 20 20 20 20 20 20 v).
2de0: 20 20 20 20 20 27 23 28 31 30 30 20 31 30 31 20 '#(100 101
2df0: 31 30 32 20 31 30 33 20 31 30 34 20 31 30 35 29 102 103 104 105)
2e00: 29 0a 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 ). (fail 'vec
2e10: 74 6f 72 2d 63 6f 70 79 21 3a 31 29 29 0a 0a 28 tor-copy!:1))..(
2e20: 6f 72 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 or (equal? (let
2e30: 28 28 76 20 28 76 65 63 74 6f 72 20 30 20 31 20 ((v (vector 0 1
2e40: 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 2 3)).
2e50: 20 20 20 20 20 20 20 20 28 73 72 63 20 27 23 28 (src '#(
2e60: 31 30 30 20 31 30 31 20 31 30 32 20 31 30 33 20 100 101 102 103
2e70: 31 30 34 20 31 30 35 29 29 29 0a 20 20 20 20 20 104 105))).
2e80: 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 (vector
2e90: 2d 63 6f 70 79 21 20 76 20 31 20 73 72 63 20 34 -copy! v 1 src 4
2ea0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
2eb0: 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 v). '
2ec0: 23 28 30 20 31 30 34 20 31 30 35 20 33 29 29 0a #(0 104 105 3)).
2ed0: 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f (fail 'vecto
2ee0: 72 2d 63 6f 70 79 21 3a 32 29 29 0a 0a 28 6f 72 r-copy!:2))..(or
2ef0: 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 28 28 (equal? (let ((
2f00: 76 20 28 76 65 63 74 6f 72 20 30 20 31 20 32 20 v (vector 0 1 2
2f10: 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3)).
2f20: 20 20 20 20 20 20 28 73 72 63 20 27 23 28 31 30 (src '#(10
2f30: 30 20 31 30 31 20 31 30 32 20 31 30 33 20 31 30 0 101 102 103 10
2f40: 34 20 31 30 35 29 29 29 0a 20 20 20 20 20 20 20 4 105))).
2f50: 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 2d 63 (vector-c
2f60: 6f 70 79 21 20 76 20 31 20 73 72 63 20 32 20 34 opy! v 1 src 2 4
2f70: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
2f80: 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 v). '
2f90: 23 28 30 20 31 30 32 20 31 30 33 20 33 29 29 0a #(0 102 103 3)).
2fa0: 20 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f (fail 'vecto
2fb0: 72 2d 63 6f 70 79 21 3a 33 29 29 0a 0a 28 6f 72 r-copy!:3))..(or
2fc0: 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 28 28 (equal? (let ((
2fd0: 76 20 28 76 65 63 74 6f 72 29 29 0a 20 20 20 20 v (vector)).
2fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 (s
2ff0: 72 63 20 27 23 28 31 30 30 20 31 30 31 20 31 30 rc '#(100 101 10
3000: 32 20 31 30 33 20 31 30 34 20 31 30 35 29 29 29 2 103 104 105)))
3010: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 . (
3020: 76 65 63 74 6f 72 2d 72 65 76 65 72 73 65 2d 63 vector-reverse-c
3030: 6f 70 79 21 20 76 20 30 20 76 29 0a 20 20 20 20 opy! v 0 v).
3040: 20 20 20 20 20 20 20 20 20 20 76 29 0a 20 20 20 v).
3050: 20 20 20 20 20 20 20 20 20 27 23 28 29 29 0a 20 '#()).
3060: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
3070: 2d 72 65 76 65 72 73 65 2d 63 6f 70 79 21 3a 30 -reverse-copy!:0
3080: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
3090: 28 6c 65 74 20 28 28 76 20 28 76 65 63 74 6f 72 (let ((v (vector
30a0: 20 30 20 31 20 32 20 33 20 34 20 35 29 29 0a 20 0 1 2 3 4 5)).
30b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30c0: 20 28 73 72 63 20 27 23 28 31 30 30 20 31 30 31 (src '#(100 101
30d0: 20 31 30 32 20 31 30 33 20 31 30 34 20 31 30 35 102 103 104 105
30e0: 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ))).
30f0: 20 20 28 76 65 63 74 6f 72 2d 72 65 76 65 72 73 (vector-revers
3100: 65 2d 63 6f 70 79 21 20 76 20 30 20 73 72 63 29 e-copy! v 0 src)
3110: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
3120: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 23 ). '#
3130: 28 31 30 35 20 31 30 34 20 31 30 33 20 31 30 32 (105 104 103 102
3140: 20 31 30 31 20 31 30 30 29 29 0a 20 20 20 20 28 101 100)). (
3150: 66 61 69 6c 20 27 76 65 63 74 6f 72 2d 72 65 76 fail 'vector-rev
3160: 65 72 73 65 2d 63 6f 70 79 21 3a 31 29 29 0a 0a erse-copy!:1))..
3170: 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 (or (equal? (let
3180: 20 28 28 76 20 28 76 65 63 74 6f 72 20 30 20 31 ((v (vector 0 1
3190: 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 2 3)).
31a0: 20 20 20 20 20 20 20 20 20 28 73 72 63 20 27 23 (src '#
31b0: 28 31 30 30 20 31 30 31 20 31 30 32 20 31 30 33 (100 101 102 103
31c0: 20 31 30 34 20 31 30 35 29 29 29 0a 20 20 20 20 104 105))).
31d0: 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f (vecto
31e0: 72 2d 72 65 76 65 72 73 65 2d 63 6f 70 79 21 20 r-reverse-copy!
31f0: 76 20 31 20 73 72 63 20 34 29 0a 20 20 20 20 20 v 1 src 4).
3200: 20 20 20 20 20 20 20 20 20 76 29 0a 20 20 20 20 v).
3210: 20 20 20 20 20 20 20 20 27 23 28 30 20 31 30 35 '#(0 105
3220: 20 31 30 34 20 33 29 29 0a 20 20 20 20 28 66 61 104 3)). (fa
3230: 69 6c 20 27 76 65 63 74 6f 72 2d 72 65 76 65 72 il 'vector-rever
3240: 73 65 2d 63 6f 70 79 21 3a 32 29 29 0a 0a 28 6f se-copy!:2))..(o
3250: 72 20 28 65 71 75 61 6c 3f 20 28 6c 65 74 20 28 r (equal? (let (
3260: 28 76 20 28 76 65 63 74 6f 72 20 30 20 31 20 32 (v (vector 0 1 2
3270: 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3)).
3280: 20 20 20 20 20 20 20 28 73 72 63 20 27 23 28 31 (src '#(1
3290: 30 30 20 31 30 31 20 31 30 32 20 31 30 33 20 31 00 101 102 103 1
32a0: 30 34 20 31 30 35 29 29 29 0a 20 20 20 20 20 20 04 105))).
32b0: 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 2d (vector-
32c0: 72 65 76 65 72 73 65 2d 63 6f 70 79 21 20 76 20 reverse-copy! v
32d0: 31 20 73 72 63 20 32 20 34 29 0a 20 20 20 20 20 1 src 2 4).
32e0: 20 20 20 20 20 20 20 20 20 76 29 0a 20 20 20 20 v).
32f0: 20 20 20 20 20 20 20 20 27 23 28 30 20 31 30 33 '#(0 103
3300: 20 31 30 32 20 33 29 29 0a 20 20 20 20 28 66 61 102 3)). (fa
3310: 69 6c 20 27 76 65 63 74 6f 72 2d 72 65 76 65 72 il 'vector-rever
3320: 73 65 2d 63 6f 70 79 21 3a 33 29 29 0a 0a 28 6f se-copy!:3))..(o
3330: 72 20 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f r (equal? (vecto
3340: 72 2d 3e 6c 69 73 74 20 27 23 28 29 29 0a 20 20 r->list '#()).
3350: 20 20 20 20 20 20 20 20 20 20 27 28 29 29 0a 20 '()).
3360: 20 20 20 28 66 61 69 6c 20 27 76 65 63 74 6f 72 (fail 'vector
3370: 2d 3e 6c 69 73 74 3a 30 29 29 0a 0a 28 6f 72 20 ->list:0))..(or
3380: 28 65 71 75 61 6c 3f 20 28 76 65 63 74 6f 72 2d (equal? (vector-
3390: 3e 6c 69 73 74 20 27 23 28 61 20 62 20 63 29 29 >list '#(a b c))
33a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 28 61 . '(a
33b0: 20 62 20 63 29 29 0a 20 20 20 20 28 66 61 69 6c b c)). (fail
33c0: 20 27 76 65 63 74 6f 72 2d 3e 6c 69 73 74 3a 31 'vector->list:1
33d0: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
33e0: 28 76 65 63 74 6f 72 2d 3e 6c 69 73 74 20 27 23 (vector->list '#
33f0: 28 61 20 62 20 63 20 64 20 65 29 20 31 29 0a 20 (a b c d e) 1).
3400: 20 20 20 20 20 20 20 20 20 20 20 27 28 62 20 63 '(b c
3410: 20 64 20 65 29 29 0a 20 20 20 20 28 66 61 69 6c d e)). (fail
3420: 20 27 76 65 63 74 6f 72 2d 3e 6c 69 73 74 3a 32 'vector->list:2
3430: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
3440: 28 76 65 63 74 6f 72 2d 3e 6c 69 73 74 20 27 23 (vector->list '#
3450: 28 61 20 62 20 63 20 64 20 65 29 20 31 20 34 29 (a b c d e) 1 4)
3460: 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 28 62 . '(b
3470: 20 63 20 64 29 29 0a 20 20 20 20 28 66 61 69 6c c d)). (fail
3480: 20 27 76 65 63 74 6f 72 2d 3e 6c 69 73 74 3a 33 'vector->list:3
3490: 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 ))..(or (equal?
34a0: 28 72 65 76 65 72 73 65 2d 76 65 63 74 6f 72 2d (reverse-vector-
34b0: 3e 6c 69 73 74 20 27 23 28 29 29 0a 20 20 20 20 >list '#()).
34c0: 20 20 20 20 20 20 20 20 27 28 29 29 0a 20 20 20 '()).
34d0: 20 28 66 61 69 6c 20 27 72 65 76 65 72 73 65 2d (fail 'reverse-
34e0: 76 65 63 74 6f 72 2d 3e 6c 69 73 74 3a 30 29 29 vector->list:0))
34f0: 0a 0a 28 6f 72 20 28 65 71 75 61 6c 3f 20 28 72 ..(or (equal? (r
3500: 65 76 65 72 73 65 2d 76 65 63 74 6f 72 2d 3e 6c everse-vector->l
3510: 69 73 74 20 27 23 28 61 20 62 20 63 29 29 0a 20 ist '#(a b c)).
3520: 20 20 20 20 20 20 20 20 20 20 20 27 28 63 20 62 '(c b
3530: 20 61 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 a)). (fail '
3540: 72 65 76 65 72 73 65 2d 76 65 63 74 6f 72 2d 3e reverse-vector->
3550: 6c 69 73 74 3a 31 29 29 0a 0a 28 6f 72 20 28 65 list:1))..(or (e
3560: 71 75 61 6c 3f 20 28 72 65 76 65 72 73 65 2d 76 qual? (reverse-v
3570: 65 63 74 6f 72 2d 3e 6c 69 73 74 20 27 23 28 61 ector->list '#(a
3580: 20 62 20 63 20 64 20 65 29 20 31 29 0a 20 20 20 b c d e) 1).
3590: 20 20 20 20 20 20 20 20 20 27 28 65 20 64 20 63 '(e d c
35a0: 20 62 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 b)). (fail '
35b0: 72 65 76 65 72 73 65 2d 76 65 63 74 6f 72 2d 3e reverse-vector->
35c0: 6c 69 73 74 3a 32 29 29 0a 0a 28 6f 72 20 28 65 list:2))..(or (e
35d0: 71 75 61 6c 3f 20 28 72 65 76 65 72 73 65 2d 76 qual? (reverse-v
35e0: 65 63 74 6f 72 2d 3e 6c 69 73 74 20 27 23 28 61 ector->list '#(a
35f0: 20 62 20 63 20 64 20 65 29 20 31 20 33 29 0a 20 b c d e) 1 3).
3600: 20 20 20 20 20 20 20 20 20 20 20 27 28 63 20 62 '(c b
3610: 29 29 0a 20 20 20 20 28 66 61 69 6c 20 27 72 65 )). (fail 're
3620: 76 65 72 73 65 2d 76 65 63 74 6f 72 2d 3e 6c 69 verse-vector->li
3630: 73 74 3a 33 29 29 0a 0a 28 6f 72 20 28 65 71 75 st:3))..(or (equ
3640: 61 6c 3f 20 28 6c 69 73 74 2d 3e 76 65 63 74 6f al? (list->vecto
3650: 72 20 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 r '()).
3660: 20 20 20 27 23 28 29 29 0a 20 20 20 20 28 66 61 '#()). (fa
3670: 69 6c 20 27 6c 69 73 74 2d 3e 76 65 63 74 6f 72 il 'list->vector
3680: 3a 30 29 29 0a 0a 28 6f 72 20 28 65 71 75 61 6c :0))..(or (equal
3690: 3f 20 28 6c 69 73 74 2d 3e 76 65 63 74 6f 72 20 ? (list->vector
36a0: 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 '(a b c)).
36b0: 20 20 20 20 20 20 27 23 28 61 20 62 20 63 29 29 '#(a b c))
36c0: 0a 20 20 20 20 28 66 61 69 6c 20 27 6c 69 73 74 . (fail 'list
36d0: 2d 3e 76 65 63 74 6f 72 3a 31 29 29 0a 0a 28 6f ->vector:1))..(o
36e0: 72 20 28 65 71 75 61 6c 3f 20 28 72 65 76 65 72 r (equal? (rever
36f0: 73 65 2d 6c 69 73 74 2d 3e 76 65 63 74 6f 72 20 se-list->vector
3700: 27 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 '()).
3710: 20 27 23 28 29 29 0a 20 20 20 20 28 66 61 69 6c '#()). (fail
3720: 20 27 72 65 76 65 72 73 65 2d 6c 69 73 74 2d 3e 'reverse-list->
3730: 76 65 63 74 6f 72 3a 30 29 29 0a 0a 28 6f 72 20 vector:0))..(or
3740: 28 65 71 75 61 6c 3f 20 28 72 65 76 65 72 73 65 (equal? (reverse
3750: 2d 6c 69 73 74 2d 3e 76 65 63 74 6f 72 20 27 28 -list->vector '(
3760: 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 a b c)).
3770: 20 20 20 20 27 23 28 63 20 62 20 61 29 29 0a 20 '#(c b a)).
3780: 20 20 20 28 66 61 69 6c 20 27 72 65 76 65 72 73 (fail 'revers
3790: 65 2d 6c 69 73 74 2d 3e 76 65 63 74 6f 72 3a 31 e-list->vector:1
37a0: 29 29 0a 0a 28 77 72 69 74 65 6c 6e 20 22 44 6f ))..(writeln "Do
37b0: 6e 65 2e 22 29 0a ne.").