$ od -c -N 50000 [_CDCSL_93-16_]<1>Cedar>release>SchemeLib>Tables.$cheme 0000000 # 001 006 k 003 c d r 003 c a r 004 l o o 0000020 p 005 i n d e x 005 t a b l e \n v e 0000040 c t o r - r e f \n m a k e - t a 0000060 b l e \a h a s h - f n 001 + 006 l o 0000100 g x o r 001 < \b m a x - s i z e 017 0000120 r e c o r d - a c c e s s o r \b 0000140 e q v - h a s h \r c h a r = - c 0000160 i - h a s h 006 t a b l e ? 017 s t 0000200 r i n g = - c i - h a s h \f s t 0000220 r i n g = - h a s h \n e q u a l 0000240 - h a s h \n t a b l e - w a l k 0000260 \n t a b l e - s i z e \r t a b l 0000300 e - r e m o v e ! \n t a b l e - 0000320 s e t ! \t t a b l e - r e f \n c 0000340 h a r = - h a s h 006 = - h a s h 0000360 \r c o m p a r i s o n - f n 003 l 0000400 e n 004 h a s h 003 k e y 003 v e c 002 0000420 > = \b c o m p a r e ? \v v e c t 0000440 o r - s e t ! 004 c o n s \a e n t 0000460 r i e s 004 c a a r 005 n u l l ? 004 0000500 s i z e 006 v e c t o r 016 r e c o 0000520 r d - u p d a t e r 024 f i n d - 0000540 t a b l e - r e p - i n d e x \v 0000560 p r i n t - t a b l e \r r e h a 0000600 s h - t a b l e ! 016 m a k e - t 0000620 a b l e - r e p \v m a k e - v e 0000640 c t o r 006 m o d u l o 001 s \n s t 0000660 r i n g - r e f \r s t r i n g - 0000700 l e n g t h 005 e n t r y \b f o r 0000720 - e a c h 005 p a i r ? \b s e t - 0000740 c d r ! 006 o b j e c t 005 e r r o 0000760 r 001 = 005 c a d d r 004 e q v ? 006 l 0001000 e n g t h 004 c a d r 003 m a x 001 > 0001020 002 f n 001 - 003 n o t 003 l a g \t n e 0001040 w - e n t r y 002 l s 005 v a l u e 0001060 004 c d a r \r v e c t o r - l e n 0001100 g t h \a v e c t o r ? \a s t r i 0001120 n g ? \r c h a r - d o w n c a s 0001140 e 001 c 004 t a i l 003 m o d \f o l d 0001160 - m a x - s i z e \a o l d - v e 0001200 c 001 * \a n e w - v e c \f n e w - 0001220 m a x - s i z e \t t a b l e - r 0001240 e p \a e q - h a s h 006 f o r m a 0001260 t \b d i s p l a y ? 004 p o r t 001 0001300 i \n t a b l e - r e p ? 027 t a b 0001320 l e - r e p - c o m p a r i s o 0001340 n - f n 022 t a b l e - r e p - m 0001360 a x - s i z e 027 s e t - t a b l 0001400 e - r e p - m a x - s i z e ! 016 0001420 t a b l e - r e p - s i z e 020 t 0001440 a b l e - r e p - v e c t o r 021 0001460 t a b l e - r e p - h a s h - f 0001500 n \r t r - d e s c r i p t o r 023 0001520 m a k e - f u l l - t a b l e - 0001540 r e p 020 r e c o r d - p r e d i 0001560 c a t e 022 r e c o r d - c o n s 0001600 t r u c t o r 020 m a k e - r e c 0001620 o r d - t y p e 023 s e t - t a b 0001640 l e - r e p - s i z e ! 025 s e t 0001660 - t a b l e - r e p - v e c t o 0001700 r ! \f i n i t i a l - s i z e 004 0001720 l i s t 004 a r g s 003 l s t 021 020 0001740 I n t e r p r e t e d C o d e 0001760 022 035 \a j \a 006 \a 017 \a 027 \a 026 \a 025 \a 024 0002000 \a 023 \a 022 \a 021 \a 020 \a 030 \a 016 \a 031 \a ) 0002020 \a + \a ` \a * \a a \a , \a Y \a [ \a Z 0002040 \a _ \a ^ \a ] \a \ \a f \a e 017 023 023 004 0002060 B \a 022 \a 021 \a 020 \a 030 \a 016 \a 031 \a 006 \a 0002100 017 \a 027 \a 026 \a 025 \a 024 \a 023 \a \r \a \r \a 0002120 d \a c \a b \a \f \a \f \a \f \a \f \a \f \a 0002140 ( \a ( \a ( \a h \a 001 \a 022 \a \0 \a 001 \a 0002160 021 \a \0 \a 001 \a 020 \a \0 \a 001 \a 030 \a \0 \a 0002200 001 \a 016 \a \0 \a 001 \a 031 \a \0 \a 001 \a 006 \a 0002220 \0 \a 001 \a 017 \a \0 \a 001 \a 027 \a \0 \a 001 \a 0002240 026 \a \0 \a 001 \a 025 \a \0 \a 001 \a 024 \a \0 \a 0002260 001 \a 023 \a \0 004 P 037 205 \0 016 024 $ \0 025 0002300 $ 001 026 $ 002 027 $ 003 030 005 $ 004 030 006 $ 005 0002320 030 \a $ 006 030 \b $ \a 030 \t $ \b 030 \n $ \t 0002340 030 \v $ \n 030 \f $ \v 030 \r $ \f 030 016 & \0 0002360 001 030 017 & \0 002 030 020 & \0 003 030 021 & \0 004 0002400 030 022 & \0 005 030 023 & \0 006 030 024 & \0 \a 030 0002420 025 & \0 \b 030 026 & \0 \t 030 027 & \0 \n 030 030 0002440 & \0 \v 030 031 & \0 \f 030 032 & \0 \r 030 033 & 0002460 \0 016 030 034 & \0 017 030 035 & \0 020 030 036 & \0 0002500 021 030 037 & \0 022 030 & \0 023 030 ! & \0 024 0002520 030 " & \0 025 030 # & \0 026 030 $ & \0 027 030 0002540 % & \0 030 030 & & \0 031 030 ' & \0 032 030 ( 0002560 & \0 033 030 ) & \0 034 ( * & \0 001 ( + & 0002600 \0 002 ( , & \0 003 ( - & \0 004 ( . & \0 0002620 005 ( / & \0 006 ( 0 & \0 \a ( 1 & \0 \b 0002640 ( 2 & \0 \t ( 3 & \0 \n 036 \r & \0 \v ( 0002660 4 & \0 \f 036 016 & \0 \r ( 5 & \0 016 ( 6 0002700 & \0 017 030 7 & \0 020 ( 8 & \0 021 030 9 & 0002720 \0 022 ( : & \0 023 030 ; & \0 024 030 < & \0 0002740 025 030 = & \0 026 030 > & \0 027 030 ? & \0 030 0002760 030 @ & \0 031 030 A & \0 032 030 B & \0 033 030 0003000 C & \0 034 036 017 030 D 030 E 030 F 021 006 004 0003020 & \0 020 036 020 020 003 & \0 022 036 021 020 003 0003040 & \0 024 036 022 020 030 G 004 & \0 025 036 023 0003060 020 030 H 004 & \0 026 036 024 020 030 I 004 & \0 0003100 027 036 025 020 030 J 004 & \0 030 036 026 020 030 0003120 K 004 & \0 031 036 027 020 030 L 004 & \0 032 036 0003140 030 020 030 M 004 & \0 033 036 031 020 030 N 004 0003160 & \0 034 036 032 \b \t \n \v \f 0003200 \r 001 002 003 004 005 006 \a 006 0003220 \r & \0 \0 036 033 \0 003 $ 034 036 035 \0 003 0003240 & \0 \0 036 036 \0 003 $ 037 036 \0 003 & 0003260 \0 \0 036 ! \0 003 $ " 036 # \0 003 & \0 0003300 \0 036 $ \0 003 $ % 036 & \0 003 & \0 \0 0003320 036 ' \0 003 $ ( 036 ) \0 003 & \0 \0 036 0003340 * \0 003 $ + 036 , \0 003 & \0 \0 036 - 0003360 \0 003 $ . 036 / \0 003 & \0 \0 036 0 0003400 \0 003 $ 1 036 2 \0 003 & \0 \0 036 3 \0 0003420 003 $ 4 036 5 \0 003 & \0 \0 036 6 \0 003 0003440 $ 7 036 8 \0 003 & \0 \0 036 9 \0 003 $ 0003460 : 036 ; \0 003 & \0 \0 036 < \0 003 $ = 0003500 036 > \0 003 & \0 \0 036 ? \0 003 $ @ 036 0003520 A \0 003 & \0 \0 030 O * 017 017 017 017 017 017 0003540 017 017 017 017 017 017 017 017 017 017 017 017 017 017 017 017 * 0003600 017 017 017 \a 006 022 005 \a i \a 033 \a g \a 032 0003620 \a \a 016 023 023 004 016 \a ; \a 037 \a = \a 001 \a 0003640 037 \a < \a : \a 037 \a 9 \a \r \a 8 \a 7 \a 0003660 > \a 7 004 \f 037 z \0 004 032 \0 003 & \0 001 0003700 033 001 024 004 022 031 034 035 \0 003 025 004 016 032 0003720 026 & \0 002 036 004 001 027 004 022 , 036 005 \0 0003740 003 016 . 036 006 & \0 003 036 \a 001 030 005 004 022 0003760 A 036 \b \0 003 016 C 036 \t & \0 004 036 \n 0004000 001 030 006 004 022 [ 036 \v 030 \a \0 030 \b 005 # 0004020 016 [ 036 \f 001 030 \t 004 022 p 036 \r 030 \n 0004040 \0 030 \v 005 # 016 p ! 001 023 002 003 004 0004060 \v 024 027 002 027 021 027 002 027 003 027 002 \a 006 021 / 0004100 a C O M P A R I S O N - F N 0004120 w a s s p e c i f i e d b u 0004140 t n o t a H A S H - F N 027 0004160 004 \a 006 021 022 T o o m a n y a r 0004200 g u m e n t s 021 202 006 ( [ i n i t 0004220 i a l - s i z e { c o m p a r 0004240 i s o n - f n h a s h - f n } 0004260 ] ) M a k e a n e w h a 0004300 s h t a b l e w i t h r o 0004320 o m i n i t i a l l y f o r 0004340 I N I T I A L - S I Z E e n 0004360 t r i e s , u s i n g t h e 0004400 g i v e n C O M P A R I S O 0004420 N - F N a n d H A S H - F N 0004440 . I N I T I A L - S I Z E 0004460 d e f a u l t s t o s o m e 0004500 t h i n g r e a s o n a b l y 0004520 s m a l l . C O M P A R I 0004540 S O N - F N a n d H A S H - 0004560 F N d e f a u l t t o E Q 0004600 V ? a n d E Q V - H A S H . 0004620 \0 \a 017 022 001 \a 6 017 024 024 \0 001 037 \b \0 0004640 002 ! 001 024 \0 \t 021 033 ( o b j e c t 0004660 ) I s O B J E C T a t a 0004700 b l e ? \0 \a 027 022 006 \a 004 \a 035 \a 003 0004720 \a 036 \a \a 002 017 027 002 027 002 001 \a 005 003 037 0004740 1 \0 004 ! 001 016 \0 001 004 & \0 002 ! 001 0004760 030 \0 003 & \0 003 ! 001 026 \0 003 & \0 004 0005000 024 & \0 005 ( 002 & \0 005 005 032 003 002 0005020 004 \t 017 \a 002 022 001 \a # 017 024 024 004 004 \a 0005040 % \a $ \a F \a \0 002 037 # \0 003 032 \0 003 0005060 022 \n 024 * ! 001 004 033 \0 003 ! 001 001 004 022 0005100 033 034 \0 \t ! 001 005 035 \0 003 \t 017 021 \t 0005120 ( e n t r i e s ) \0 021 a ( t a b 0005140 l e k e y ) F e t c h t h 0005160 e v a l u e s t o r e d u 0005200 n d e r K E Y i n T A B L 0005220 E , r e t u r n i n g # F 0005240 i f K E Y h a s n o e n 0005260 t r y i n T A B L E . \0 \a 0005300 026 022 \b \a 004 \a 035 \a E \a 003 \a 036 \a \a 0005320 # \a 002 017 027 003 027 003 001 \a 005 003 037 6 \0 003 0005340 ! 001 016 \0 001 004 & \0 003 ! 001 030 \0 0005360 003 & \0 004 ! 001 026 \0 003 & \0 005 032 004 0005400 003 004 & \0 006 024 & \0 \a ( 002 & \0 \a 0005420 \a 006 \t 017 \a 002 022 002 \a D \a C 017 024 0005440 024 004 \n \a % \a " \a ! \a " \a \b \a 037 \a 0005460 $ \a 5 \a 001 \a \0 003 037 t \0 006 032 \0 003 0005500 022 R 033 ! 001 001 ! 001 002 004 & \0 001 034 ! 001 0005520 004 ! 001 003 035 001 ! 001 006 004 005 # ! 002 034 0005540 ! 001 \0 036 004 ! 002 031 ! 001 \0 003 024 004 004 # 0005560 036 005 ! 002 031 ! 001 \0 003 ! 002 025 ! 001 \0 003 0005600 004 022 P ! 002 017 ! 001 \0 \t 025 * ! 001 005 036 0005620 006 \0 003 ! 001 001 004 022 k 036 \a 036 \b \0 0005640 003 ! 001 002 \n ! 001 \a 036 \t \0 003 \t 024 036 0005660 021 004 ( l s ) \0 021 201 \v ( t a b l e 0005700 k e y v a l u e ) E i t h 0005720 e r c h a n g e t h e c u 0005740 r r e n t e n t r y f o r 0005760 K E Y i n T A B L E t o 0006000 V A L U E , i f s u c h a 0006020 n e n t r y e x i s t s , 0006040 o r a d d a n e n t r y 0006060 m a p p i n g K E Y t o V 0006100 A L U E . \0 \a 025 022 006 \a 004 \a 035 \a 0006120 003 \a 036 \a \a 002 017 027 002 027 002 001 \a 005 004 0006140 004 037 2 \0 004 ! 001 016 \0 001 004 & \0 002 0006160 ! 001 030 \0 003 & \0 003 ! 001 026 \0 003 & 0006200 \0 004 024 & \0 005 ( 002 & \0 005 005 032 003 0006220 002 004 026 \n 017 \a 002 022 002 \a # \a B 017 0006240 027 002 027 002 004 \t \a % \a $ \a A \a ! \a \0 0006260 \a 5 \a \0 \a @ \a \0 004 004 037 X \0 005 032 0006300 \0 003 022 \n 024 * ! 001 004 033 \0 003 ! 001 001 0006320 004 022 M 034 001 003 022 - 035 ! 001 003 ! 001 002 0006340 036 004 \0 003 005 # 016 8 036 005 001 036 006 0006360 \0 003 004 # ! 002 034 ! 001 \0 036 \a ! 002 031 ! 0006400 001 \0 003 025 004 004 # 026 * ! 001 005 036 \b \0 0006420 003 \0 \n 017 024 016 021 \r ( e n t r i e 0006440 s l a g ) \0 017 021 201 \b ( t a b l 0006460 e k e y ) R e m o v e t h 0006500 e e n t r y f o r K E Y 0006520 f r o m T A B L E , i f s 0006540 u c h a n e n t r y e x i 0006560 s t s . R e t u r n a b 0006600 o o l e a n i n d i c a t i n 0006620 g w h e t h e r o r n o t 0006640 t h e e n t r y e x i s t 0006660 e d . \0 \a 024 022 001 \a 004 017 024 024 \0 001 0006700 037 \b \0 002 ! 001 031 \0 \t 021 , ( t a b 0006720 l e ) H o w m a n y e n t 0006740 r i e s a r e t h e r e i 0006760 n T A B L E ? \0 \a 023 022 005 \a ? 0007000 \a 004 \a 036 \a \v \a 002 017 027 002 027 002 \0 004 004 0007020 037 ! \0 002 ! 001 030 001 003 & \0 002 ! 001 025 0007040 001 003 & \0 003 024 & \0 004 ( 002 & \0 004 0007060 004 026 \t 017 \a 002 022 001 \a 003 017 024 024 004 004 0007100 \a \n \a 3 \a 005 \a \b 004 004 037 " \0 005 032 0007120 \0 ! 001 003 004 022 033 ( 001 034 ! 001 002 \0 0007140 004 004 # ! 001 004 035 \0 025 004 \t 026 * 021 0007160 022 A n o n y m o u s f u n c t 0007200 i o n 022 001 \a 2 017 024 024 002 \a 001 \a \0 001 0007220 037 016 \0 004 ! 002 \0 032 \0 003 033 \0 003 \n 0007240 021 \a ( e n t r y ) \0 024 036 021 \a ( i 0007260 n d e x ) \0 023 021 z ( f n t a b 0007300 l e ) A p p l y F N t o 0007320 t h e k e y a n d v a l u 0007340 e f o r e a c h e n t r y 0007360 i n T A B L E . N o c 0007400 h a n g e s s h o u l d b e 0007420 m a d e t o t h e T A B 0007440 L E d u r i n g t h e w a 0007460 l k . \0 \a 022 022 004 \a 6 \a 033 \a 002 \a 0007500 002 017 024 024 004 \b \a I \a H \a G \a 4 \a \0 0007520 \a \t \a 001 \a \r 004 \b 037 T \0 \a 032 \0 003 0007540 022 016 ! 001 \t \0 \t 033 \0 003 022 ) 034 0007560 \0 003 & \0 001 024 & \0 002 ( 002 & \0 002 002 0007600 026 027 \n 035 \0 003 022 O 030 005 & \0 003 ( 006 0007620 & \0 003 003 036 004 \0 003 036 005 030 \a ! 001 0007640 \b 036 006 \0 003 003 004 \n 036 \a \0 \t 017 0007660 \a 002 022 002 \a 003 \a 034 017 027 002 027 002 004 004 \a 0007700 \n \a \b \a \t \a 005 002 037 & \0 \b 032 \0 ! 0007720 001 001 004 022 # ! 001 002 033 \0 024 004 034 001 0007740 ! 002 \b 035 ! 001 \0 \0 004 003 004 \n 001 * 0007760 024 021 \f ( i n d e x h a s h ) \0 0010000 023 023 017 \a 002 022 002 \a L \a 034 017 027 002 027 0010020 002 004 005 \a 4 \a \0 \a \t \a 001 \a \t 001 037 ' 0010040 \0 \a 032 \0 003 022 034 ! 001 003 033 \0 003 034 0010060 001 ! 002 \b 035 \0 003 003 004 \n 036 004 001 0010100 ! 002 \b \0 003 \n 021 \v ( t a i l h 0010120 a s h ) \0 026 001 021 \b ( o b j e c t 0010140 ) \0 \a 021 022 003 \a / \a 033 \a 002 017 024 024 0010160 001 \a 1 004 005 037 027 \0 003 032 \0 003 & \0 001 0010200 024 & \0 002 ( 002 & \0 002 002 026 027 \n 017 0010220 \a 002 022 002 \a 003 \a 034 017 027 002 027 002 004 004 \a 0010240 \n \a \b \a \t \a 0 002 037 & \0 \b 032 \0 ! 0010260 001 001 004 022 # ! 001 002 033 \0 024 004 034 001 0010300 ! 002 \v 035 ! 001 \0 \0 004 003 004 \n 001 * 0010320 024 021 \f ( i n d e x h a s h ) \0 0010340 023 026 002 021 003 ( s ) \0 \a 020 022 003 \a / 0010360 \a 033 \a 002 017 024 024 001 \a 1 004 005 037 027 \0 003 0010400 032 \0 003 & \0 001 024 & \0 002 ( 002 & \0 002 0010420 002 026 027 \n 017 \a 002 022 002 \a 003 \a 034 017 0010440 027 002 027 002 004 004 \a \n \a \b \a \t \a 0 002 037 0010460 & \0 \b 032 \0 ! 001 001 004 022 # ! 001 002 033 0010500 \0 024 004 034 001 ! 002 \f 035 ! 001 \0 \0 0010520 004 003 004 \n 001 * 024 021 \f ( i n d e x 0010540 h a s h ) \0 023 026 002 021 003 ( s ) \0 0010560 \a 016 022 001 \a K 017 024 024 002 \a \r \a J 001 0010600 037 \b \0 003 032 033 \0 003 \t 021 003 ( c ) \0 0010620 \a ) 022 004 \a 004 \a 035 \a \a \a M 017 027 002 0010640 027 002 001 \a . 001 037 035 \0 003 ! 001 027 \0 003 0010660 & \0 002 ! 001 025 \0 003 & \0 003 032 002 0010700 001 003 003 \n 021 \v ( t a b l e k e 0010720 y ) \0 \a + 022 \a \a 004 \a O \a N \a R 0010740 \a Q \a \a \a 002 017 024 024 002 \a P \a - 004 005 0010760 037 K \0 003 ! 001 030 \0 003 & \0 001 ! 001 025 0011000 \0 003 & \0 002 032 002 024 004 & \0 003 033 0011020 003 003 & \0 004 ! 001 027 \0 003 & \0 005 025 & 0011040 \0 006 ( 003 & \0 006 006 027 003 # ! 001 033 0011060 \0 004 004 # ! 001 032 \0 003 \n 027 002 017 0011100 \a 002 022 001 \a 003 017 024 024 004 004 \a \n \a 3 0011120 \a 005 \a \b 004 004 037 " \0 005 032 \0 ! 001 002 0011140 004 022 033 ( 001 034 ! 001 001 \0 004 004 # ! 0011160 001 006 035 \0 025 004 \t 026 * 021 022 A n o 0011200 n y m o u s f u n c t i o n 022 0011220 002 \a 2 \a X 017 024 024 004 005 \a . \a 001 \a ! 0011240 \a " \a 005 001 037 % \0 \b 032 ! 002 005 033 \0 0011260 003 003 ! 002 003 004 & \0 001 034 ! 002 004 001 035 0011300 \0 036 004 ! 002 004 001 004 004 \v 021 \a ( e 0011320 n t r y ) \0 024 036 021 \a ( i n d e x 0011340 ) \0 023 021 \a ( t a b l e ) \0 017 \a 0011360 * 022 003 \a W \a 004 \a V 017 027 003 027 003 002 \a 0011400 U \a T 002 037 \v \0 005 032 \0 024 033 001 003 0011420 \v 021 \r # < T a b l e @ ~ S > 0011440 021 025 ( p o r t t a b l e d i 0011460 s p l a y ? ) \0 017 \a , 022 003 \a \v 0011500 \a 032 \a \a 017 027 003 027 003 001 \a - 003 037 023 \0 0011520 \a ! 001 022 \0 001 002 032 \0 024 004 025 0011540 \f 005 \0 023 021 ( m a x - s i z e 0011560 c o m p a r i s o n - f n h a 0011600 s h - f n ) \0 017 017 017 017 017 017 017 017 017 0011620 \a S 004 005 \a \v \a 032 \a \a \a ' \a & 017 \a 0011640 \v \a 032 \a \a \a ' \a & \a \v \a ' \a & 004 0011660 \r \a 022 \a 021 \a 020 \a 030 \a 016 \a 031 \a 006 \a 0011700 017 \a 027 \a 026 \a 025 \a 024 \a 023 021 002 ( ) \0 0011720 \n 0011721