$ od -c -N 50000 [eris]<Lisp>KOTO>Library>DOC>cml.tedit!1
0000000 1 \r \r L I S P L I B R A R Y
0000020 P A C K A G E S \r 1 \r \r L I S P
0000040 L I B R A R Y P A C K A G E
0000060 S \r C M L \r 1 \r \r C O M M O N
0000100 L I S P \r 1 \r \r \r \r C M L \r 6
0000120 \r \r 2 \r \r I n t r o d u c t i o
0000140 n \r 1 \r \r A t a s t e o f
0000160 w h a t ' s t o c o m e ! \r
0000200 C o m m o n L i s p i s a
0000220 d i a l e c t o f L i s p
0000240 , w h i c h d i f f e r s
0000260 i n m a n y m i n o r a n
0000300 d a f e w m a j o r d e
0000320 t a i l s f r o m I n t e r
0000340 l i s p . I t i s d e s
0000360 i g n e d t o b e p o r t
0000400 a b l e a n d i n c o r p o
0000420 r a t e s f e a t u r e s f
0000440 r o m t h e M a c L i s p
0000460 f a m i l y o f L i s p l
0000500 a n g u a g e s . T h e m
0000520 a j o r d i f f e r e n c e s
0000540 a r e : l e x i c a l s c
0000560 o p i n g , c l o s u r e s ,
0000600 m u l t i p l e r e t u r n
0000620 v a l u e s , a n d t h e
0000640 u s e o f p a c k a g e s
0000660 ( o r m u l t i p l e o b
0000700 l i s t s ) . T h e r e a
0000720 r e m a n y m i n o r d i
0000740 f f e r e n c e s b a s e d
0000760 o n s t y l i s t i c i s s
0001000 u e s ; p r i m a r y a m o
0001020 n g t h e s e i s t h e
0001040 u s e o f t h e S E T F
0001060 m a c r o o n a c c e s s o
0001100 r f o r m s t o p l a c e
0001120 v a l u e s . T h e l a
0001140 n g u a g e ' s p r i m a r y
0001160 g o a l i s s t a n d a r
0001200 d i z a t i o n . \r I n A u g
0001220 u s t 1 9 8 5 , X e r o x
0001240 A I S y s t e m s a n n o u
0001260 n c e d t h e a v a i l a b
0001300 i l i t y o f X e r o x C
0001320 o m m o n L i s p , w i t h
0001340 a f i r s t r e l e a s e
0001360 a t t h e e n d o f t
0001400 h e s e c o n d q u a r t e
0001420 r o f 1 9 8 6 . T h i
0001440 s L i b r a r y m o d u l e
0001460 ( C M L ) i s b o t h
0001500 a p r e v i e w o f w h a
0001520 t C o m m o n L i s p w i
0001540 l l b e l i k e a n d a
0001560 s i g n i f i c a n t l y u
0001600 s e f u l s e t o f f e a
0001620 t u r e s a n d f u n c t i
0001640 o n a l i t y . I t r e p
0001660 r e s e n t s a f a i r l y
0001700 e a r l y b u t w e l l -
0001720 d e f i n e d p o i n t i n
0001740 o u r e x p e r i m e n t a
0001760 t i o n w i t h C o m m o n
0002000 L i s p f e a t u r e s w
0002020 i t h i n I n t e r l i s p .
0002040 \r C o m m o n L i s p ( a n
0002060 d C M L ) i s p a r t o
0002100 f t h e I n t e r l i s p -
0002120 D e n v i r o n m e n t a n
0002140 d r u n s w i t h i n i t
0002160 ; t h e s t a n d a r d I
0002200 n t e r l i s p - D e n v i r
0002220 o n m e n t t o o l s ( h i
0002240 s t o r y , D E d i t , M a
0002260 s t e r s c o p e , e t c . )
0002300 a l l w o r k w i t h C
0002320 o m m o n L i s p f u n c t
0002340 i o n s . C o m m o n L i
0002360 s p a n d I n t e r l i s p
0002400 f u n c t i o n s c a n b
0002420 e f r e e l y i n t e r m i
0002440 x e d ; t h a t i s , o n
0002460 e h a s a v a i l a b l e
0002500 t h e u n i o n o f a l l
0002520 I n t e r l i s p f e a t u
0002540 r e s a n d C o m m o n L
0002560 i s p f e a t u r e s w i t
0002600 h i n a s i n g l e p r o
0002620 g r a m m i n g e n v i r o n
0002640 m e n t . \r I n t h e f o l
0002660 l o w i n g t e x t , r e f
0002700 e r e n c e s t o 251 251 C o m
0002720 m o n L i s p 271 271 o r 251 251
0002740 t h e C o m m o n L i s p
0002760 l a n g u a g e 271 271 m e a n
0003000 t h e c o n t e n t s o f
0003020 251 251 C o m m o n L i s p : T
0003040 h e L a n g u a g e , 271 271 b
0003060 y G u y L . S t e e l e
0003100 ( D i g i t a l P r e s s ,
0003120 1 9 8 4 ) . R e f e r e n c e
0003140 s t o 251 251 C M L 271 271 o r
0003160 251 251 X e r o x C o m m o n L
0003200 i s p 271 271 m e a n t h i s
0003220 r e l e a s e o r f u t u r
0003240 e r e l e a s e s o f t h
0003260 i s s o f t w a r e . \r 2 \r \r
0003300 U s i n g t h e C M L P a
0003320 c k a g e \r 1 \r \r T h e f i l
0003340 e C M L . D C O M l o a d s
0003360 a n u m b e r o f f i l
0003400 e s t h a t i m p l e m e n
0003420 t C o m m o n L i s p f e
0003440 a t u r e s . C u r r e n t
0003460 l y t h e s e a r e : \r C M
0003500 L \r C M L A R I T H \r C M L A R
0003520 R A Y * \r C M L A R R A Y I N
0003540 S P E C T O R * \r C M L C H A
0003560 R A C T E R \r C M L C O M P I L
0003600 E \r C M L E X E C \r C M L H E L
0003620 P \r C M L P R E T T Y \r C M L P
0003640 R I N T \r C M L S E T F \r C M L
0003660 S P E C I A L F O R M S \r C M L
0003700 S T R E A M S \r C M L S T R U C
0003720 T \r C M L T Y P E S \r * D o c
0003740 u m e n t e d s e p a r a t e
0003760 l y i n t h e C M L A r r
0004000 a y s e c t i o n . \r A r e
0004020 l a t e d p a c k a g e , n
0004040 o t p a r t o f C o m m o
0004060 n L i s p b u t u s i n g
0004100 C M L A r r a y , i s C M
0004120 L F l o a t A r r a y . I t
0004140 i s d 377 377 \0 \0 o \0 c \0 u \0 m
0004160 \0 e \0 n \0 t \0 e \0 d \0 \0 s \0 e
0004200 \0 p \0 a \0 r \0 a \0 t \0 e \0 l \0 y
0004220 \0 \0 i \0 n \0 \0 t \0 h \0 e \0
0004240 \0 C \0 M \0 L \0 F \0 l \0 o \0 a \0 t
0004260 \0 A \0 r \0 r \0 a \0 y \0 \0 s \0 e
0004300 \0 c \0 t \0 i \0 o \0 n \0 . 377 \0 \r C
0004320 a v e a t s \r 1 \r \r T h i s s
0004340 o f t w a r e i s u n d e r
0004360 i n t e n s i v e d e v e l
0004400 o p m e n t . W h i l e w
0004420 e ' v e m a n a g e d t o
0004440 r u n s o m e C o m m o n
0004460 L i s p p r o g r a m s i n
0004500 t a c t u s i n g i t , i
0004520 t d o e s n o t i m p l e
0004540 m e n t f u l l C o m m o n
0004560 L i s p , a n d t h e c
0004600 o v e r a g e i s u n e v e
0004620 n . ( O u r s t r a t e g y
0004640 w a s t o p o r t e n o
0004660 u g h t o h a n d l e t w
0004700 o s m a l l a p p l i c a t
0004720 i o n s a n d t o e x p e
0004740 r i m e n t w i t h s o m e
0004760 m o r e c o n t r o v e r s
0005000 i a l f e a t u r e s . )
0005020 F o r t h e m o s t p a r
0005040 t , f e a t u r e s t h a t
0005060 a r e p r e s e n t a r e
0005100 251 251 f u l l y i m p l e m e
0005120 n t e d , 251 251 b u t t h e r
0005140 e a r e s o m e s u g g e
0005160 s t i o n s . B e c a u s e
0005200 t h i s i s n o t a c
0005220 o m p l e t e C o m m o n L
0005240 i s p r e l e a s e , b u t
0005260 r a t h e r a s e l e c t
0005300 i o n o f s o m e t e s t
0005320 e d f u n c t i o n a l i t y
0005340 f r o m t h e c o m i n g
0005360 r e l e a s e , i t i s
0005400 i m p o r t a n t t o r e a
0005420 d t h e d o c u m e n t a t
0005440 i o n t o b e a w a r e
0005460 o f l i m i t a t i o n s .
0005500 F e a t u r e s a n d f u
0005520 n c t i o n s n o t d o c u
0005540 m e n t e d s h o u l d b e
0005560 a s s u m e d 251 251 n o t y
0005600 e t i m p l e m e n t e d . 251
0005620 251 O f t e n , s p e c i f
0005640 i c o m i s s i o n s w i l
0005660 l b e m e n t i o n e d .
0005700 \r C M L ( a n d X e r o x
0005720 C o m m o n L i s p ) 251 251
0005740 l o o k l i k e 271 271 I n t e
0005760 r l i s p - D . F o r t h o
0006000 s e f i r s t s t a r t i n
0006020 g w i t h I n t e r l i s p
0006040 - D w i t h p r e v i o u s
0006060 e x p e r i e n c e o n a
0006100 t e x t - e d i t o r - b a s
0006120 e d C o m m o n L i s p e
0006140 n v i r o n m e n t , t h e
0006160 s t y l e a n d u s e o f
0006200 C o m m o n L i s p w i l
0006220 l b e u n f a m i l i a r ;
0006240 f o r e x a m p l e , t h
0006260 e s t a n d a r d w a y o
0006300 f e d i t i n g C o m m o n
0006320 L i s p f u n c t i o n s
0006340 i s t o u s e D E d i t ,
0006360 t h e I n t e r l i s p - D
0006400 s t r u c t u r e e d i t o
0006420 r . T h e I n t e r l i s
0006440 p - D f i l e p a c k a g e
0006460 i s u s e d f o r s a v
0006500 i n g a n d r e s t o r i n
0006520 g d e f i n i t i o n s o f
0006540 f u n c t i o n s ( d e f i
0006560 n e d w i t h D E F U N ) ,
0006600 m a c r o s ( d e f i n e d
0006620 w i t h D E F M A C R O )
0006640 a n d d a t a t y p e s (
0006660 d e f i n e d w i t h D E F
0006700 S T R U C T ) . \r C M L h a s
0006720 n o m i c r o c o d e s u
0006740 p p o r t , a l t h o u g h
0006760 X e r o x C o m m o n L i s
0007000 p w i l l . B e c a u s e
0007020 o f t h i s , s o m e C
0007040 o m m o n L i s p f e a t u
0007060 r e s a r e s l o w e r t
0007100 h a n t h e i r I n t e r l
0007120 i s p - D c o u n t e r p a r
0007140 t s . M i c r o c o d e s
0007160 u p p o r t i s r e q u i r
0007200 e d f o r r e a s o n a b l
0007220 e i m p l e m e n t a t i o n
0007240 o f l e x i c a l c l o s
0007260 u r e s a n d m u l t i p l
0007300 e v a l u e s , a n d t h
0007320 o s e f e a t u r e s a r e
0007340 n o t p a r t o f C M L
0007360 . \r C o m m o n L i s p f e
0007400 a t u r e s a r e e n t e r
0007420 i n g t h e s y s t e m i
0007440 n t h r e e w a y s . S
0007460 o m e h a v e b e e n a d
0007500 d e d t o s t a n d a r d
0007520 I n t e r l i s p - D , r a t
0007540 h e r t h a n a s p a r t
0007560 o f t h e C M L f e a
0007600 t u r e . F o r t h e m
0007620 o s t p a r t , t h i s h
0007640 a s b e e n l i m i t e d
0007660 t o t h e f e a t u r e s
0007700 t h a t w e r e r e q u i r
0007720 e d b y i m p l e m e n t a
0007740 t i o n o f o t h e r p a
0007760 r t s o f t h e s y s t e
0010000 m . F o r e x a m p l e ,
0010020 D E F M A C R O , b a c k q
0010040 u o t e , a n d m a n y o
0010060 f t h e s y s t e m - q u e
0010100 r y f u n c t i o n s a r e
0010120 a l r e a d y p a r t o f
0010140 s t a n d a r d I n t e r l
0010160 i s p - D . S o m e f e a
0010200 t u r e s a r e c o m p l e
0010220 t e l y i m p l e m e n t e d
0010240 b u t w i l l b e p a r
0010260 t o f I n t e r l i s p - D
0010300 i n f u t u r e , l i k e
0010320 t h e a r r a y c o d e .
0010340 F i n a l l y , s o m e
0010360 f e a t u r e s h a v e n o
0010400 t y e t b e e n i m p l e
0010420 m e n t e d , l i k e m u l
0010440 t i p l e v a l u e s , l e
0010460 x i c a l s c o p i n g , c
0010500 l o s u r e s , a n d p a c
0010520 k a g e s . \r O r g a n i z a t
0010540 i o n \r 1 \r \r T h i s d o c u
0010560 m e n t a t i o n i s o r g
0010600 a n i z e d i n a p p r o x
0010620 i m a t e l y t h e s a m e
0010640 t o p i c a l o r d e r a
0010660 s C o m m o n L i s p :
0010700 T h e L a n g u a g e . \r E r
0010720 r o r s \r 1 \r \r C o m m o n L
0010740 i s p : T h e L a n g u a g
0010760 e a l l o w s w i d e v a
0011000 r i a b i l i t y i n t h e
0011020 a m o u n t o f e r r o r
0011040 c h e c k i n g t h a t i
0011060 s p e r f o r m e d b y a
0011100 C o m m o n L i s p i m p
0011120 l e m e n t a t i o n . T h e
0011140 r e a r e a n u m b e r
0011160 o f c o n s t r u c t s t h
0011200 a t a r e m a r k e d 251 251
0011220 i t i s a n e r r o r t
0011240 o . . . . 271 271 I m p l
0011260 e m e n t a t i o n s a r e
0011300 f r e e t o e i t h e r a
0011320 d d r u n - t i m e c h e c
0011340 k s o r n o t . C M L
0011360 ( a n d X e r o x C o m m o
0011400 n L i s p ) a t t e m p t s
0011420 t o p e r f o r m a s m
0011440 u c h e r r o r c h e c k i
0011460 n g a s i s f e a s i b l
0011500 e . N o C o m m o n L i
0011520 s p p r o g r a m , v a l i
0011540 d o r n o t , s h o u l d
0011560 r e s u l t i n a n y k
0011600 i n d o f s y s t e m f a
0011620 i l u r e . F o r t h e
0011640 m o s t p a r t , C M L a
0011660 d h e r e s t o t h i s p
0011700 r i n c i p l e , a l t h o u
0011720 g h s o m e e r r o r s a
0011740 r e c u r r e n t l y n o t
0011760 c h e c k e d ; t h e s e
0012000 a r e d o c u m e n t e d b
0012020 e l o w . \r 2 \r \r D a t a T y
0012040 p e s \r 1 \r \r F o r t h e
0012060 m o s t p a r t , t h e d
0012100 a t a t y p e s o f C o m
0012120 m o n L i s p a r e a s
0012140 u b s e t o f t h o s e a
0012160 v a i l a b l e w i t h i n
0012200 I n t e r l i s p - D . S p
0012220 e c i f i c c o r r e s p o n
0012240 d e n c e s a r e d e s c r
0012260 i b e d b e l o w . T h i
0012300 s i s a b r i e f s y n
0012320 o p s i s . M o r e d e t
0012340 a i l e d i n f o r m a t i o
0012360 n i s a v a i l a b l e f
0012400 o l l o w i n g t h i s s e
0012420 c t i o n . \r N u m b e r s \r 1
0012440 \r \r T h e I N T E G E R t y
0012460 p e s c o r r e s p o n d a
0012500 s f o l l o w s : C o m m o
0012520 n L i s p ' s F I X N U M
0012540 i s i m p l e m e n t e d b
0012560 y S M A L L P s , w h i l e
0012600 C o m m o n L i s p ' s B
0012620 I G N U M t y p e i s i m
0012640 p l e m e n t e d b y t h e
0012660 t w o t y p e s F I X P
0012700 a n d B I G N U M i n I n
0012720 t e r l i s p - D . T h e
0012740 t y p e - o f f u n c t i o
0012760 n r e t u r n s t h e C o
0013000 m m o n L i s p n a m e o
0013020 f t h e t y p e o f t h
0013040 e o b j e c t , e . g . , \r
0013060 ( t y p e - o f 3 ) = = >
0013100 F I X N U M \r ( t y p e - o f
0013120 1 2 3 1 2 3 1 2 ) = = > B I
0013140 G N U M \r ( t y p e - o f 1 2
0013160 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
0013200 1 2 3 1 2 3 1 2 3 1 2 3 ) = =
0013220 > B I G N U M \r C M L d o e
0013240 s n ' t i m p l e m e n t R
0013260 A T I O o r C O M P L E X
0013300 ( t h e r e a r e d e c l a
0013320 r a t i o n s f o r t h e
0013340 t y p e s , b u t t h e y
0013360 a r e n o t w i r e d i n
0013400 t o t h e a r i t h m e t i
0013420 c f u n c t i o n s ) . \r C
0013440 M L ( a n d X e r o x C o
0013460 m m o n L i s p ) h a s o
0013500 n e i m p l e m e n t a t i o
0013520 n o f F L O A T , n a m
0013540 e l y S I N G L E - F L O A T
0013560 n u m b e r s i n I E E E
0013600 f o r m a t . \r N o t a l l
0013620 C o m m o n L i s p i n p
0013640 u t f o r m a t s a r e a
0013660 l l o w e d i n C M L ( i
0013700 t d o e s n ' t h a v e a
0013720 f u l l C o m m o n L i s
0013740 p r e a d e r ) . T e m p o
0013760 r a r i l y , i n p u t t o
0014000 C M L E x e c s h o u l d
0014020 b e i n l o w e r c a s e .
0014040 T h e e x p o n e n t m
0014060 a r k ( E i n 1 2 . 0 E 1
0014100 7 ) s h o u l d b e i n
0014120 u p p e r c a s e . F o r t
0014140 y p e - i n o n l y t h e
0014160 d e f a u l t f l o a t i n g
0014200 - p o i n t e x p o n e n t
0014220 m a r k e r i s a l l o w e
0014240 d : 251 251 E . 271 271 251 251 e 271
0014260 271 i s n o t a l l o w e d
0014300 . \r C h a r a c t e r s \r 1 \r \r
0014320 C M L c o n t a i n s a f
0014340 u l l i m p l e m e n t a t i
0014360 o n o f t h e C o m m o n
0014400 L i s p C H A R A C T E R
0014420 t y p e . A l l o f t h
0014440 e v a r i o u s I / O f o
0014460 r m a t s a n d c h a r a c
0014500 t e r f u n c t i o n s a r
0014520 e i m p l e m e n t e d .
0014540 I n C M L ( a n d X e r o
0014560 x C o m m o n L i s p ) ,
0014600 t h e r e a r e 2 ^ 1 6 p
0014620 o s s i b l e c h a r a c t e
0014640 r c o d e s , i n a c c o
0014660 r d a n c e w i t h t h e
0014700 X e r o x C h a r a c t e r
0014720 C o d e s t a n d a r d .
0014740 T h u s , C H A R - C O D E -
0014760 L I M I T i s 6 5 5 3 6 .
0015000 O u r e x p e r i e n c e
0015020 w i t h f o n t s i n t
0015040 h e I n t e r l i s p - D e
0015060 n v i r o n m e n t h a s s
0015100 h o w n t h a t t h e s i
0015120 n g l e 251 251 f o n t - b i t s
0015140 271 271 a t t r i b u t e o f
0015160 C o m m o n L i s p i s i
0015200 n a d e q u a t e t o h a n
0015220 d l e t h e c o m p l e x i
0015240 t y o f a t t a c h i n g
0015260 f o n t s t o c h a r a c t
0015300 e r s . R a t h e r t h a
0015320 n t r y i n g t o s h o e
0015340 h o r n a c o m p l e x f
0015360 o n t s y s t e m i n t o
0015400 a s m a l l p a c k e t o
0015420 f i n f o r m a t i o n , w
0015440 e h a v e c h o s e n t o
0015460 s e t C H A R - F O N T - L
0015500 I M I T t o o n e ; t h a
0015520 t i s , f o n t i n f o r
0015540 m a t i o n f o r c h a r a
0015560 c t e r s l i e s . I t
0015600 i s n o t p a r t o f t
0015620 h e c h a r a c t e r c o d
0015640 e . I n a d d i t i o n ,
0015660 C H A R - B I T S - L I M I T
0015700 i s a l s o o n e ; t h
0015720 e n u a n c e o f a d d i
0015740 t i o n a l s h i f t - b i t
0015760 s b e i n g h a n d l e d
0016000 b y t h e k e y b o a r d
0016020 d e c o d i n g s y s t e m
0016040 r a t h e r t h a n t h e
0016060 c h a r a c t e r s y s t e m
0016100 . B e c a u s e o f t h
0016120 i s , a l l o b j e c t s
0016140 o f t y p e C H A R A C T E
0016160 R a r e o f t y p e S T
0016200 R I N G - C H A R A C T E R a
0016220 n d c a n o c c u r i n
0016240 s t r i n g s . \r S y m b o l s
0016260 \r 1 \r \r S y m b o l s a r e
0016300 w h a t I n t e r l i s p c
0016320 a l l s l i t a t o m s .
0016340 C o m m o n L i s p s y m b
0016360 o l s d i f f e r f r o m
0016400 I n t e r l i s p o n e s p
0016420 r i m a r i l y i n t h e
0016440 p r e s e n c e o f a 251 251
0016460 p a c k a g e c e l l 251 251 a
0016500 n d t h e m u l t i p l e
0016520 n a m e s p a c e s t h a t
0016540 p a c k a g e s p r o v i d
0016560 e , t h e a b i l i t y
0016600 t o h a v e s y m b o l s
0016620 w i t h t h e s a m e c h
0016640 a r a c t e r s a s n u m b
0016660 e r s , a n d s o m e a d
0016700 d i t i o n a l f o r m s o
0016720 f i n p u t s y n t a x .
0016740 T h e s e f e a t u r e s
0016760 o f X e r o x C o m m o n
0017000 L i s p a r e n o t i n
0017020 C M L ; a v o i d s y m b o
0017040 l s w i t h a l l d i g i
0017060 t s , m i x e d c a s e ,
0017100 e t c . \r A r r a y s \r 1
0017120 \r \r C M L c o n t a i n s a
0017140 f u l l i m p l e m e n t a
0017160 t i o n o f C o m m o n L
0017200 i s p a r r a y s , v e c t
0017220 o r s , a n d s t r i n g s
0017240 , i n c l u d i n g a l l
0017260 o f t h e a r r a y f u n
0017300 c t i o n s , d i s p l a c i
0017320 n g , a n d s o m e o f
0017340 t h e m o r e o b s c u r e
0017360 f e a t u r e s . I n a
0017400 d d i t i o n , C o m m o n
0017420 L i s p a r r a y s e m b e
0017440 d t h e I n t e r l i s p
0017460 t y p e s S T R I N G P ,
0017500 B I T M A P , a n d A R R A
0017520 Y P ; t h a t i s , o n e
0017540 m a y u s e C o m m o n
0017560 L i s p a r r a y f u n c t
0017600 i o n s o n a n I n t e r
0017620 l i s p S T R I N G P t r e
0017640 a t i n g i t a s a S I
0017660 M P L E - S T R I N G , a B
0017700 I T M A P t r e a t i n g i
0017720 t a s a t w o - d i m e n
0017740 s i o n a l a r r a y o f
0017760 b i t s , a n d a n I n t
0020000 e r l i s p - D A R R A Y P ,
0020020 t r e a t i n g i t a s
0020040 a S I M P L E - V E C T O R .
0020060 T h e a r r a y f e a
0020100 t u r e s a r e d o c u m e
0020120 n t e d s e p a r a t e l y ;
0020140 s e e t h e C M L A r r a
0020160 y d o c u m e n t a t i o n .
0020200 \r B i t V e c t o r s \r 1 \r \r
0020220 C M L s u p p o r t s b i t
0020240 v e c t o r s n o w , b u
0020260 t s o m e b i t w i s e o
0020300 p e r a t i o n s o n t h e
0020320 m , a s o u t l i n e d i
0020340 n t h e s e p a r a t e C
0020360 M L A r r a y d o c u m e n t
0020400 , a r e n o t y e t i m
0020420 p l e m e n t e d . \r H a s h
0020440 T a b l e s \r 1 \r \r A h a s
0020460 h t a b l e a s s o c i a t
0020500 e s o n e L i s p o b j e
0020520 c t w i t h a n o t h e r ,
0020540 r e f e r r e d t o a s
0020560 t h e k e y a n d t h e
0020600 v a l u e . T h i s i s
0020620 d o n e a s a t r a d e o
0020640 f f , w h e r e m o r e s
0020660 p a c e i s u s e d t o
0020700 s t o r e t h e o b j e c t
0020720 s s o t h a t a c c e s s
0020740 t i m e i s s i g n i f i
0020760 c a n t l y r e d u c e d .
0021000 P u t t i n g a v a l u e
0021020 i n t o a h a s h t a b
0021040 l e i s a d e s t r u c t
0021060 i v e o p e r a t i o n , i
0021100 . e . , o n l y o n e o b
0021120 j e c t m a y b e s t o r
0021140 e d u n d e r a g i v e n
0021160 k e y . H a s h t a b l
0021200 e s c a n f i l l u p ,
0021220 a n d i f t h e y d o ,
0021240 t h e y e x p a n d t h e i
0021260 r s i z e . \r F o r m o r e
0021300 i n f o r m a t i o n s e e
0021320 t h e s e c t i o n o n
0021340 H A S H T A B L E S b e l o w
0021360 . \r R e a d T a b l e s \r 1 \r
0021400 \r R e a d t a b l e s d e s
0021420 c r i b e t h e c h a r a c
0021440 t e r - b y - c h a r a c t e r
0021460 b e h a v i o r o f t h e
0021500 h i g h e r - l e v e l r e
0021520 a d f u n c t i o n s a s
0021540 t h e y p a r s e s t r e a
0021560 m s o f c h a r a c t e r s
0021600 . \r C o m m o n - L i s p - s t
0021620 y l e r e a d t a b l e s
0021640 a r e n o t s u p p o r t e
0021660 d a t t h i s r e l e a s
0021700 e . \r P a c k a g e s \r 1 \r \r A
0021720 p a c k a g e i s l i k e
0021740 a n o b j e c t l i s t ;
0021760 a c o l l e c t i o n o f
0022000 s y m b o l s ( L I T A T O
0022020 M S ) . T y p i c a l l y
0022040 t h e f u n c t i o n s t h
0022060 a t i m p l e m e n t a c
0022100 o m p l e t e p r o g r a m
0022120 ( o r s o f t w a r e s u b
0022140 s y s t e m ) w i l l r e s
0022160 i d e i n t h e s a m e
0022200 p a c k a g e a s a g r o
0022220 u p . C o m m o n L i s p
0022240 c a l l s a c o l l e c t
0022260 i o n o f p a c k a g e s
0022300 a 251 251 m o d u l e . 251 251 T
0022320 h e c l o s e t a n a l o g
0022340 i n I n t e r l i s p t o
0022360 t h e m o d u l e i s a
0022400 251 251 f i l e p a c k a g e 251
0022420 251 ( s o m e t h i n g t h a
0022440 t t h e 251 251 f i l e p a c
0022460 k a g e 271 271 m a i n t a i n s
0022500 ) . P a c k a g e s g a t
0022520 h e r t o g e t h e r r e l
0022540 a t e d s y m b o l s a n d
0022560 h i d e i n t e r n a l o
0022600 n e s f r o m o t h e r p
0022620 a c k a g e s t o a v o i d
0022640 n a m e c o n f l i c t .
0022660 \r C M L d o e s n o t i m
0022700 p l e m e n t p a c k a g e s
0022720 . S e e t h e s e c t i
0022740 o n b e l o w f o r m o r
0022760 e i n f o r m a t i o n . \r P
0023000 a t h N a m e s \r 1 \r \r A r e
0023020 a f o r m a l i z e d d e
0023040 s t r u c t u r i n g o f f
0023060 i l e n a m e s i n t o t
0023100 h e i r c o m p o n e n t s ,
0023120 l i k e I n t e r l i s p -
0023140 D ' s P A C K a n d U N P
0023160 A C K F I L E N A M E f u n c
0023200 t i o n s . \r I n t h i s r
0023220 e l e a s e t h e C o m m o
0023240 n - L i s p - s t y l e p a t
0023260 h n a m e f u n c t i o n s
0023300 a r e n o t s u p p o r t
0023320 e d . \r S t r e a m s \r 1 \r \r S
0023340 t r e a m s a r e a n i n
0023360 t e r f a c e m e t a p h o r
0023400 . F i l e s a n d d e v
0023420 i c e s a r e c h a r a c t
0023440 e r i z e d a s p r o d u c
0023460 e r s a n d c o n s u m e r
0023500 s o f 251 251 s t r e a m s 271
0023520 271 o f d a t a . T h e s
0023540 e d a t a m a y b e c h
0023560 a r a c t e r s , n u m b e r
0023600 s o f s o m e p r e c i s
0023620 i o n , e t c . \r W h i l e
0023640 I n t e r l i s p - D s u p p
0023660 o r t s s i m i l a r f a c
0023700 i l i t i e s , t h e C o m
0023720 m o n L i s p s t y l e i
0023740 s n o t s u p p o r t e d
0023760 a t t h i s r e l e a s e .
0024000 \r S t r u c t u r e s \r 1 \r \r A
0024020 s t r u c t u r e i s a
0024040 w a y o f e n c a p s u l a
0024060 t i n g o p e r a t i o n s
0024100 o n a p a r t i c u l a r
0024120 t y p e o f d a t a , i n
0024140 a w a y t h a t a l l o
0024160 w s t h e r e p r e s e n t
0024200 a t i o n t o b e c h a n
0024220 g e d i n d e p e n d e n t
0024240 o f t h e c o d e t h a t
0024260 u s e s i t . S p e c i
0024300 f i c f u n c t i o n s a r
0024320 e d e f i n e d t o c r e
0024340 a t e , d e s t r o y , a c
0024360 c e s s , m o d i f y , a n
0024400 d p r i n t o b j e c t s
0024420 o f t h e s e t y p e s .
0024440 \r T h e I n t e r l i s p - D
0024460 r e c o r d p a c k a g e
0024500 i m p l e m e n t s o u r s
0024520 t r u c t u r e f u n c t i o
0024540 n a l i t y . S e e t h e
0024560 s e c t i o n b e l o w .
0024600 I n f u t u r e r e l e a
0024620 s e s D E F S T R U C T w i
0024640 l l b e p a r t o f t h
0024660 e C o m m o n L o o p s o
0024700 b j e c t - o r i e n t e d p
0024720 r o g r a m m i n g f a c i l
0024740 i t y . \r F u n c t i o n s a
0024760 n d M a c r o s \r 1 \r \r A f
0025000 u n c t i o n i s a n y t h
0025020 i n g t h a t m a y b e
0025040 c o r r e c t l y g i v e n
0025060 t o F U N C A L L o r A P
0025100 P L Y . A c o m p i l e d
0025120 f u n c t i o n ( I n t e r
0025140 l i s p ' s C C O D E P ) i
0025160 s t h e r e s u l t o f
0025200 c o m p i l a t i o n o f a
0025220 L i s p e x p r e s s i o n
0025240 . \r C u r r e n t l y , C o m
0025260 m o n - L i s p - s t y l e l
0025300 a m b d a l i s t s a r e
0025320 i m p l e m e n t e d u s i n
0025340 g t h e L A M B D A T R A N
0025360 f a c i l i t y . T h e
0025400 f u l l D E F M A C R O s y
0025420 n t a x i s s u p p o r t e
0025440 d d i r e c t l y b y I n
0025460 t e r l i s p - D . \r U n r e a
0025500 d a b l e D a t a T y p e s
0025520 \r 1 \r \r T h e s e a r e d a
0025540 t a o b j e c t s f o r w
0025560 h i c h t h e r e i s e i
0025600 t h e r n o d e f i n e d
0025620 p r i n t r e p r e s e n t a
0025640 t i o n , o r w h i c h ,
0025660 t h r o u g h t h e u s e
0025700 o f c o n t r o l f l a g s
0025720 , a r e p r i n t e d i n
0025740 a c o m p a c t f o r m a
0025760 t . T h e s e a r e m o
0026000 s t o f t e n i m p l e m e
0026020 n t a t i o n - s p e c i f i c
0026040 l o w - l e v e l d a t a
0026060 t y p e s . \r I n t h e c u
0026100 r r e n t i m p l e m e n t a
0026120 t i o n t h e s e a r e p
0026140 r i n t e d i n t h e C o
0026160 m m o n L i s p f a s h i o
0026200 n , a l t h o u g h t h e r
0026220 e a r e n o r e s t r i c
0026240 t i o n s t o t h e r e a
0026260 d e r ' s b e h a v i o r w
0026300 h e n i t e n c o u n t e r
0026320 s t h e m . \r 2 \r \r S c o p e
0026340 a n d E x t e n t \r 1 \r \r S
0026360 c o p e c h a r a c t e r i z
0026400 e s t h e p l a c e s w h
0026420 e r e a n o b j e c t m a
0026440 y b e r e f e r r e d t o
0026460 b y a L i s p p r o g r
0026500 a m . E x t e n t i s a
0026520 m e a s u r e o f t h e
0026540 l i f e t i m e o f a n o
0026560 b j e c t . S o m e e x a
0026600 m p l e s : i n I n t e r
0026620 l i s p - D a n a r g u m e
0026640 n t t o a f u n c t i o n
0026660 m a y b e r e f e r r e d
0026700 t o b o t h w i t h i n
0026720 t h e b o d y o f t h e
0026740 f u n c t i o n a n d b y
0026760 a n y o t h e r f u n c t i
0027000 o n s t h a t a r e c a l
0027020 l e d b y i t . H o w e
0027040 v e r , t h a t a r g u m e
0027060 n t m a y n o t b e r e
0027100 f e r r e d t o o n c e t
0027120 h e f u n c t i o n i s e
0027140 x i t e d . T h i s i s
0027160 i n d e f i n i t e s c o p e
0027200 , b e c a u s e r e f e r e
0027220 n c e s a r e n o t c o n
0027240 s t r a i n e d t o t h e
0027260 b o d y o f t h e p r o g
0027300 r a m , a n d d y n a m i c
0027320 e x t e n t b e c a u s e
0027340 t h e a r g u m e n t e x i
0027360 s t s f o r a d e f i n i
0027400 t e i n t e r v a l ( u n t
0027420 i l t h e s t a c k f r a
0027440 m e c o n t a i n i n g i t
0027460 i s e x i t e d ) . A s
0027500 a n o t h e r e x a m p l e
0027520 , a d a t a s t r u c t u
0027540 r e ( a p i e c e o f a
0027560 p r o p e r t y l i s t f
0027600 o r e x a m p l e ) u s u a
0027620 l l y h a s i n d e f i n i
0027640 t e e x t e n t ; i t l a
0027660 s t s a n d m a y b e r
0027700 e f e r r e d t o u n t i l
0027720 n o o t h e r d a t a s
0027740 t r u c t u r e h a s a p
0027760 o i n t e r t o i t , a n
0030000 d t h e g a r b a g e c o
0030020 l l e c t o r t a k e s i t
0030040 . \r C o m m o n L i s p u s
0030060 e s l e x i c a l s c o p i
0030100 n g e x t e n s i v e l y .
0030120 T h i s i s s i m i l a r
0030140 t o l a n g u a g e s l i
0030160 k e A L G O L a n d C ,
0030200 w h e r e t h e l o c a l
0030220 v a r i a b l e s o f a f
0030240 u n c t i o n m a y o n l y
0030260 b e r e f e r r e d t o
0030300 w i t h i n t h e t e x t u
0030320 a l b o u n d s o f t h e
0030340 b o d y o f t h e f u n
0030360 c t i o n . D e c l a r a t
0030400 i o n s a l l o w a l o c
0030420 a l v a r i a b l e t o h
0030440 a v e i n d e f i n i t e s
0030460 c o p e i f d e s i r e d .
0030500 \r X e r o x C o m m o n L i
0030520 s p d o e s n o t s u p p
0030540 o r t l e x i c a l s c o p
0030560 i n g w i t h t h i s r e
0030600 l e a s e . O b j e c t s
0030620 s h o u l d b e a s s u m e
0030640 d t o b e o f i n d e f
0030660 i n i t e s c o p e a n d
0030700 d y n a m i c o r i n d e f
0030720 i n i t e e x t e n t a s
0030740 a p p r o p r i a t e . \r 2 \r \r
0030760 T y p e S p e c i f i e r s \r
0031000 1 \r \r C o m m o n L i s p h
0031020 a s t h e n o t i o n o f
0031040 t y p e s p e c i f i e r s
0031060 , w h i c h c a n b e i
0031100 n d i v i d u a l s y m b o l
0031120 s o r p a t t e r n s m a
0031140 d e o f l i s t s o f s
0031160 y m b o l s . T h e s i n
0031200 g l e - s y m b o l f o r m
0031220 o f t y p e s p e c i f i e
0031240 r i s f a m i l i a r : A
0031260 T O M i s a r e a s o n a
0031300 b l y s t a n d a r d t y p
0031320 e i n L i s p s y s t e m
0031340 s . S t r u c t u r e s c
0031360 r e a t e d u s i n g D E F
0031400 S T R U C T c a u s e t h e
0031420 i r n a m e s t o b e c o
0031440 m e v a l i d t y p e s p
0031460 e c i f i e r s . \r I t i s
0031500 i n t e r e s t i n g t o n
0031520 o t e t h a t t h e t y p
0031540 e o f a n o b j e c t i
0031560 s n o t a n e x c l u s i
0031600 v e p r o p e r t y . A n
0031620 y o b j e c t m a y h a v
0031640 e s e v e r a l t y p e s
0031660 i t i s a n e x a m p l e
0031700 o f . A s a n e x a m
0031720 p l e o f t h i s , t h e
0031740 s e t o f o b j e c t s
0031760 o f t y p e T i n c l u d
0032000 e s a l l L i s p o b j e
0032020 c t s . O n t h e o t h
0032040 e r h a n d , t h e s e t
0032060 o f t y p e N I L h a s
0032100 n o e x a m p l e s .
0032120 I t i s o f c o u r s e
0032140 p o s s i b l e f o r a t
0032160 y p e s p e c i f i e r t o
0032200 m a p e x c l u s i v e l y
0032220 a n d e x h a u s t i v e l
0032240 y o n t o t h e d a t a
0032260 s t r u c t u r e s t h a t
0032300 i m p l e m e n t a p a r t
0032320 i c u l a r k i n d o f o
0032340 b j e c t . T h e s e a r e
0032360 i m p l e m e n t a t i o n
0032400 s p e c i f i c . \r T h e C o
0032420 m m o n L i s p t y p e s
0032440 p e c i f i e r s a r e : \r A
0032460 T O M B I G N U M B I T C
0032500 H A R A C T E R C O N S D O
0032520 U B L E - F L O A T F I X N U
0032540 M F L O A T H A S H - T A B
0032560 L E I N T E G E R K E Y W O
0032600 R D L I S T L O N G - F L O
0032620 A T M E M B E R M O D N U
0032640 L L N U M B E R S H O R T -
0032660 F L O A T S I G N E D - B Y T
0032700 E S I M P L E - S T R I N G
0032720 S I N G L E - F L O A T S T R
0032740 I N G S T R I N G - C H A R
0032760 S Y M B O L U N S I G N E D -
0033000 B Y T E \r E x i s t i n g I n
0033020 t e r l i s p - D d a t a t
0033040 y p e s a r e m a p p e d
0033060 o n t o t h e C o m m o n
0033100 L i s p t y p e s t h u s l
0033120 y : \r A R R A Y P \t A R R A Y \r
0033140 C M L A R R A Y \t A R R A Y \r S
0033160 M A L L P \t F I X N U M \r F I X
0033200 P \t B I G N U M \r F L O A T P \t
0033220 S I N G L E - F L O A T \r L I S
0033240 T P \t C O N S \r L I T A T O M \t
0033260 S Y M B O L \r S T R I N G P \t S
0033300 I M P L E - S T R I N G \r T y p
0033320 e S p e c i f i e r P r e d
0033340 i c a t e s \r 1 \r \r ( S A T I S
0033360 F I E S P R E D I C A T E ) \t
0033400 [ T y p e s p e c i f i e r ]
0033420 \r I t i s s o m e t i m e s
0033440 d e s i r a b l e t o d e
0033460 f i n e a c l a s s o f
0033500 o b j e c t s u s i n g a
0033520 f u n c t i o n . T h i s
0033540 i s p o s s i b l e w i t h
0033560 t y p e s p e c i f i e r s
0033600 l i k e S A T I S F I E S .
0033620 T h e P R E D I C A T E
0033640 m u s t b e a s y m b o l
0033660 w h o s e g l o b a l f u
0033700 n c t i o n d e f i n i t i o
0033720 n a c c e p t s a L i s p
0033740 o b j e c t a n d r e t u
0033760 r n s n o n - N I L i f t
0034000 h e o b j e c t i s a n
0034020 e x a m p l e o f t h e t
0034040 y p e . \r T y p e S p e c i f
0034060 i e r s T h a t C o m b i n
0034100 e \r 1 \r \r T h e r e a r e s
0034120 e v e r a l s p e c i f i e r
0034140 s t h a t a c t l i k e
0034160 l o g i c a l f u n c t i o n
0034200 s t o c o m b i n e a n d
0034220 e n u m e r a t e t y p e s
0034240 . \r ( M E M B E R O B J E C T
0034260 1 O B J E C T 2 . . . )
0034300 \t [ T y p e s p e c i f i e r
0034320 ] \r T h i s d e f i n e s a
0034340 t y p e t h a t i s t h
0034360 e g i v e n s p e c i f i c
0034400 s e t o f o b j e c t s .
0034420 I n c l u s i o n i s t
0034440 e s t e d w i t h E Q L . \r
0034460 ( N O T T Y P E ) \t [ T y p e
0034500 s p e c i f i e r ] \r D e f i
0034520 n e s t h e t y p e t h a
0034540 t c o n t a i n s t h e s
0034560 e t o f a l l o b j e c t
0034600 s t h a t a r e n o t o
0034620 f t y p e T Y P E . \r ( A N
0034640 D T Y P E 1 T Y P E 2 .
0034660 . . ) \t [ T y p e s p e c i
0034700 f i e r ] \r D e f i n e s t h
0034720 e t y p e t h a t c o n t
0034740 a i n s t h e i n t e r s e
0034760 c t i o n o f t h e g i v
0035000 e n t y p e s e t s . T
0035020 e s t i n g p r o c e e d s
0035040 l e f t t o r i g h t a n
0035060 d s t o p s a s s o o n
0035100 a s t h e o b j e c t i s
0035120 n o t a n e x a m p l e
0035140 o f o n e o f t h e t y
0035160 p e s , o r f i n i s h e s
0035200 s u c c e s s f u l l y . \r (
0035220 O R T Y P E 1 T Y P E 2 .
0035240 . . ) \t [ T y p e s p e c
0035260 i f i e r ] \r D e f i n e s t
0035300 h e t y p e t h a t c o n
0035320 t a i n s t h e u n i o n
0035340 o f t h e g i v e n t y p
0035360 e s e t s . T e s t i n g
0035400 p r o c e e d s l e f t t
0035420 o r i g h t a n d s t o p
0035440 s a s s o o n a s t h e
0035460 o b j e c t i s a n e x
0035500 a m p l e o f a g i v e n
0035520 t y p e , o r t h e t e
0035540 s t r u n s o f f t h e
0035560 e n d o f t h e s p e c i
0035600 f i e r l i s t a n d f a
0035620 i l s . \r T y p e S p e c i f
0035640 i e r s T h a t S p e c i a
0035660 l i z e \r 1 \r \r S o m e t y p
0035700 e s p e c i f i e r s c a n
0035720 b e u s e d g e n e r i c
0035740 a l l y , o r m a y b e
0035760 m a d e m o r e s p e c i f
0036000 i c i n l i s t f o r m .
0036020 V E C T O R i s t h e s
0036040 e t o f a l l o n e - d i
0036060 m e n s i o n a l a r r a y s
0036100 , b u t v e c t o r s m a
0036120 y b e s p e c i a l i z e d
0036140 t o h o l d e l e m e n t
0036160 s o f a p a r t i c u l a
0036200 r t y p e , o r b e o f
0036220 a p a r t i c u l a r l e
0036240 n g t h . A s p e c i a l
0036260 i z e d t y p e s p e c i f
0036300 i e r c a n b e b u i l t
0036320 f r o m t h e s y m b o l
0036340 V E C T O R l i k e t h i
0036360 s : ( V E C T O R F L O A
0036400 T 1 0 ) , w h i c h i s
0036420 a n y s i n g l e - d i m e n
0036440 s i o n a l a r r a y w h o
0036460 s e e l e m e n t s a r e
0036500 a l l ( e x a c t l y ) o f
0036520 t y p e F L O A T a n d
0036540 w h i c h h a s e x a c t l
0036560 y 1 0 e l e m e n t s .
0036600 A n y o f t h e l a t t e
0036620 r f i e l d s m a y b e
0036640 o m i t t e d , o r 251 251 w i
0036660 l d c a r d e d 271 271 w i t h
0036700 t h e s y m b o l * . T
0036720 h u s , a l l o f t h e
0036740 f o l l o w i n g t y p e s
0036760 p e c i f i e r s a r e e q
0037000 u i v a l e n t : \r V E C T O R
0037020 \r ( V E C T O R * ) \r ( V E C
0037040 T O R * * ) \r T h e f o l
0037060 l o w i n g t y p e s p e c
0037100 i f i e r s a l l a c c e p
0037120 t w i l d c a r d s a n d
0037140 a l l o w o m i s s i o n
0037160 o f s p e c i a l i z i n g
0037200 a r g u m e n t s a s d e s
0037220 c r i b e d a b o v e . \r ( A
0037240 R R A Y E L E M E N T - T Y P
0037260 E D I M E N S I O N S ) \t [ T
0037300 y p e s p e c i f i e r ] \r T
0037320 h e s e t o f a l l a r
0037340 r a y o b j e c t s w h o s
0037360 e e l e m e n t s a r e o
0037400 f t h e t y p e E L E M E
0037420 N T - T Y P E a n d w h i c
0037440 h h a v e d i m e n s i o n
0037460 s m a t c h i n g D I M E N
0037500 S I O N S . D i m e n s i o
0037520 n s c a n b e g i v e n
0037540 a s e i t h e r : \r * 377 377 \0
0037560 357 % 377 \0 i n w h i c h c a s
0037600 e a r r a y s o f a n y
0037620 r a n k a n d s i z e a r
0037640 e a c c e p t e d \r p o s i t
0037660 i v e i n t e g e r 377 377 \0 357 %
0037700 377 \0 a r r a y s o f o n l y
0037720 t h i s r a n k a r e a
0037740 c c e p t e d \r l i s t o f
0037760 d i m e n s i o n s 377 377 \0 357 % 377
0040000 \0 a n y o f w h i c h m a
0040020 y b e g i v e n a s *
0040040 , a n d w i l l m a t c h
0040060 a r r a y s w i t h d i m
0040100 e n s i o n s t h a t m a t
0040120 c h t h o s e i n t h e
0040140 l i s t . \r ( S I M P L E - A R
0040160 R A Y E L E M E N T - T Y P E
0040200 D I M E N S I O N S ) \t [ T y
0040220 p e s p e c i f i e r ] \r E x
0040240 a c t l y l i k e A R R A Y
0040260 , b u t t h e a r r a y
0040300 m u s t a l s o b e a S
0040320 I M P L E - A R R A Y ( s e e
0040340 s e c t i o n a b o v e o
0040360 n d a t a t y p e s o r
0040400 t h e a r r a y c h a p t e
0040420 r ) . \r ( V E C T O R E L E M
0040440 E N T - T Y P E S I Z E ) \t [
0040460 T y p e s p e c i f i e r ] \r
0040500 T h e s e t o f a l l o
0040520 n e - d i m e n s i o n a l a
0040540 r r a y s w i t h e l e m e
0040560 n t s s p e c i a l i z e d
0040600 t o h o l d E L E M E N T -
0040620 T Y P E a n d w h i c h a
0040640 r e o f t h e S I Z E l
0040660 e n g t h . ( V E C T O R
0040700 E L E M E N T - T Y P E S I Z
0040720 E ) i s e q u i v a l e n t
0040740 t o ( A R R A Y E L E M E
0040760 N T - T Y P E ( S I Z E ) ) .
0041000 ( V E C T O R S T R I N G
0041020 - C H A R ) i s e q u i v a
0041040 l e n t t o S T R I N G . \r
0041060 ( S I M P L E - V E C T O R
0041100 S I Z E ) \t [ T y p e s p e c
0041120 i f i e r ] \r T h e s e t o
0041140 f a l l s i m p l e v e c
0041160 t o r s ( s e e s e c t i o
0041200 n a b o v e o n d a t a
0041220 t y p e s o r t h e a r r
0041240 a y c h a p t e r ) , w h i
0041260 c h a r e b y d e f i n i
0041300 t i o n o f E L E M E N T -
0041320 T Y P E T , i . e . , ( V
0041340 E C T O R T S I Z E ) a n
0041360 d 251 251 s i m p l e . 251 251 \r ( C
0041400 O M P L E X T Y P E ) \t [ T y
0041420 p e s p e c i f i e r ] \r T r
0041440 u e o f c o m p l e x n u
0041460 m b e r s , o n e s w i t h
0041500 r e a l a n d i m a g i n
0041520 a r y p a r t s . \r ( F U N C
0041540 T I O N ( A R G 1 - T Y P E
0041560 A R G 2 - T Y P E . . . )
0041600 \r
0041620 V A L U E
0041640 - T Y P E ) \t [ T y p e s p e
0041660 c i f i e r ] \r T h i s i s
0041700 a s t r i c t l y d e c l a
0041720 r a t i v e t y p e s p e c
0041740 i f i e r . I t i s n o
0041760 t u s e d b y C M L . \r (
0042000 V A L U E S V A L U E 1 - T Y
0042020 P E V A L U E 2 - T Y P E .
0042040 . . ) \t [ T y p e s p e c
0042060 i f i e r ] \r T h i s i s a
0042100 s t r i c t l y d e c l a r
0042120 a t i v e t y p e s p e c i
0042140 f i e r . I t i s n o t
0042160 u s e d b y C M L . \r ( R
0042200 A T I O N A L L O W H I G H
0042220 ) \t [ T y p e s p e c i f i e
0042240 r ] \r T r u e o f n u m b e
0042260 r s r e p r e s e n t e d i
0042300 n r a t i o n a l f o r m ,
0042320 i . e . , w i t h n u m e
0042340 r a t o r a n d d e n o m i
0042360 n a t o r . \r T y p e S p e c
0042400 i f i e r s T h a t A b b r
0042420 e v i a t e \r 1 \r \r T h e r e
0042440 a r e t y p e s p e c i f i
0042460 e r s t h a t a c t a s
0042500 a b b r e v i a t i o n s o f
0042520 o t h e r s , a n d p r o
0042540 d u c e s o m e w h a t s p
0042560 e c i a l i z e d v e r s i o
0042600 n s o f t h e m . \r ( I N T
0042620 E G E R L O W H I G H ) \t [
0042640 T y p e s p e c i f i e r ] \r
0042660 S p e c i f i e s t h e s e
0042700 t o f i n t e g e r s i n
0042720 t h e r a n g e L O W t
0042740 o H I G H . L O W a n d
0042760 H I G H m u s t b e e
0043000 i t h e r : \r u n s p e c i f i
0043020 e d o r * 377 377 \0 357 % 377 \0 i
0043040 n d i c a t i n g n o l i m
0043060 i t ( + i n f i n i t y o r
0043100 - i n f i n i t y ) \r a n i
0043120 n t e g e r 377 377 \0 357 % 377 \0 i n d
0043140 i c a t e s t h a t l i m i
0043160 t i n c l u s i v e l y \r a
0043200 l i s t o f a s i n g l e
0043220 i n t e g e r 377 377 \0 357 % 377 \0 i
0043240 n d i c a t e s t h a t l i
0043260 m i t e x c l u s i v e l y \r
0043300 F I X N U M i s s l i g h t
0043320 l y d i f f e r e n t f r o
0043340 m I N T E G E R i n t h a
0043360 t i t s p e c i f i e s a
0043400 n I N T E G E R i n a n
0043420 i m p l e m e n t a t i o n - d
0043440 e p e n d e n t r a n g e (
0043460 I N T E G E R m a y e n c o
0043500 m p a s s B I G N U M s ) . \r
0043520 ( M O D N ) \t [ T y p e s p
0043540 e c i f i e r ] \r T h e s e t
0043560 o f i n t e g e r s l e s
0043600 s t h a n N . \r ( S I G N E
0043620 D - B Y T E S ) \t [ T y p e
0043640 s p e c i f i e r ] \r T h e s
0043660 e t o f i n t e g e r s t
0043700 h a t a r e r e p r e s e n
0043720 t e d b y a s i g n e d
0043740 t w o ' s c o m p l e m e n t
0043760 n u m b e r o f S b i t
0044000 s ( t h e r a n g e - 2 S
0044020 - 1 t o 2 S - 1 - 1 ) .
0044040 I f S i s u n s p e c
0044060 i f i e d o r w i l d c a r
0044100 d e d , t h i s i s t h e
0044120 s a m e a s I N T E G E R
0044140 . \r ( U N S I G N E D - B Y T E
0044160 S ) \t [ T y p e s p e c i f
0044200 i e r ] \r T h e s e t o f
0044220 i n t e g e r s t h a t a r
0044240 e r e p r e s e n t e d b y
0044260 a n u n s i g n e d b i n
0044300 a r y n u m b e r o f S
0044320 b i t s ( t h e r a n g e
0044340 0 t o 2 S - 1 ) . I
0044360 f S i s u n s p e c i f i
0044400 e d o r w i l d c a r d e d
0044420 , t h i s i s t h e s a
0044440 m e a s ( I N T E G E R 0
0044460 * ) . \r ( R A T I O N A L L
0044500 O W H I G H ) \t [ T y p e s
0044520 p e c i f i e r ] \r N o t y e
0044540 t i m p l e m e n t e d . \r (
0044560 F L O A T L O W H I G H ) \t
0044600 [ T y p e s p e c i f i e r ]
0044620 \r T h e s e t o f f l o a
0044640 t i n g - p o i n t n u m b e
0044660 r s b e t w e e n L O W a
0044700 n d H I G H , e a c h o f
0044720 w h i c h m u s t b e o
0044740 n e o f : \r u n s p e c i f i
0044760 e d o r * 377 377 \0 357 % 377 \0 i n
0045000 d i c a t i n g n o l i m i
0045020 t ( + i n f i n i t y o r
0045040 - i n f i n i t y ) \r a F L O
0045060 A T 377 377 \0 357 % 377 \0 i n d i c a t
0045100 e s t h a t l i m i t i n
0045120 c l u s i v e l y \r a l i s t
0045140 o f a s i n g l e F L O
0045160 A T 377 377 \0 357 % 377 \0 i n d i c a t
0045200 e s t h a t l i m i t e x
0045220 c l u s i v e l y \r T h e f o
0045240 l l o w i n g a r e s i m i
0045260 l a r , b u t i f a f l
0045300 o a t a r g u m e n t i s
0045320 g i v e n i t m u s t b e
0045340 o f t h e g i v e n t y
0045360 p e . \r ( S H O R T - F L O A T
0045400 L O W H I G H ) \t [ T y p e
0045420 s p e c i f i e r ] \r ( S I N
0045440 G L E - F L O A T L O W H I
0045460 G H ) \t [ T y p e s p e c i f
0045500 i e r ] \r ( D O U B L E - F L O
0045520 A T L O W H I G H ) \t [ T y
0045540 p e s p e c i f i e r ] \r ( L
0045560 O N G - F L O A T L O W H I
0045600 G H ) \t [ T y p e s p e c i f
0045620 i e r ] \r A s f o r F L O A
0045640 T , e x c e p t t h a t t
0045660 h e r e s u l t i n g t y p
0045700 e i s o n e o f t h e
0045720 i m p l e m e n t a t i o n - s
0045740 p e c i f i c s p e c i a l i
0045760 z a t i o n s i n t h e n
0046000 o t e d r a n g e . R a n
0046020 g e n u m b e r s m u s t
0046040 b e s p e c i f i e d w i t
0046060 h t h e c o r r e s p o n d
0046100 i n g t y p e o f f l o
0046120 a t i n g - p o i n t n u m b
0046140 e r . \r ( S T R I N G S I Z E
0046160 ) \t [ T y p e s p e c i f i e
0046200 r ] \r T h e t y p e o f a
0046220 l l s t r i n g s o f S I
0046240 Z E . E q u i v a l e n t
0046260 t o ( V E C T O R S T R I N
0046300 G - C H A R S I Z E ) . \r ( S
0046320 I M P L E - S T R I N G S I Z
0046340 E ) \t [ T y p e s p e c i f i
0046360 e r ] \r A s f o r S T R I N
0046400 G , b u t t h e v e c t o
0046420 r m u s t b e S I M P L E
0046440 ( s e e t h e A R R A Y
0046460 c h a p t e r b e l o w ) . \r
0046500 ( B I T - V E C T O R S I Z E
0046520 ) \t [ T y p e s p e c i f i e
0046540 r ] \r N o t y e t i m p l e
0046560 m e n t e d . \r ( S I M P L E -
0046600 B I T - V E C T O R S I Z E )
0046620 \t [ T y p e s p e c i f i e r
0046640 ] \r N o t y e t i m p l e m
0046660 e n t e d . \r ( D A T A T Y P E
0046700 N A M E ) \t [ T y p e s p e
0046720 c i f i e r ] \r T h i s i s
0046740 a n I n t e r l i s p - D e
0046760 x t e n s i o n t h a t i s
0047000 t h e s e t o f o b j e
0047020 c t s i m p l e m e n t e d
0047040 w i t h t h e i n t e r n a
0047060 l r e p r e s e n t a t i o n
0047100 g i v e n b y N A M E . \r
0047120 D e f i n i n g N e w T y p
0047140 e S p e c i f i e r s \r 1 \r \r
0047160 A n e w t y p e c a n b
0047200 e d e f i n e d b y D E F
0047220 S T R U C T , o r e x p l i
0047240 c i t l y c o n s t r u c t e
0047260 d w i t h t h e f o l l o
0047300 w i n g m a c r o . \r ( D E F
0047320 T Y P E N A M E L A M B D A
0047340 - L I S T { D E C L A R A T I
0047360 O N | \r
0047400 D O C -
0047420 S T R I N G } * { F O R M } *
0047440 ) \t [ M a c r o ] \r A l l o w s
0047460 d e f i n i t i o n o f n
0047500 e w t y p e s . I t c a
0047520 n b e t h o u g h t o f
0047540 a s a k i n d o f m a c
0047560 r o e x p a n s i o n t h a
0047600 t c r e a t e s t h e a c
0047620 t u a l t y p e - d e f i n i
0047640 n g f o r m . N A M E i
0047660 s t h e s y m b o l t o
0047700 b e u s e d a s t h e n
0047720 a m e o f t h e n e w t
0047740 y p e . L A M B D A - L I S
0047760 T i s t h e a r g u m e n
0050000 t l i s t f o r t h e m
0050020 a c r o , s i m i l a r t o
0050040 D E F M A C R O , i n c l u
0050060 d i n g & O P T I O N A L a
0050100 n d & R E S T a r g u m e n
0050120 t s . T h e d e f a u l t
0050140 v a l u e f o r & O P T I
0050160 O N A L a r g u m e n t s i
0050200 s t h e s y m b o l * i
0050220 n s t e a d o f N I L .
0050240 A n u m b e r o f D E C
0050260 L A R A T I O N f o r m s o
0050300 r D O C - S T R I N G s m a
0050320 y b e i n c l u d e d .
0050340 D O C - S T R I N G i s s a
0050360 v e d u n d e r t h e s y
0050400 m b o l a s d o c u m e n t
0050420 a t i o n o f t y p e T Y
0050440 P E . T h e l a s t o f
0050460 t h e F O R M s s h o u
0050500 l d r e t u r n a f o r m
0050520 t h a t i s i n t e r p r
0050540 e t e d a s t h e t y p e
0050560 s p e c i f i e r . D E F
0050600 T Y P E r e t u r n s t h e
0050620 n a m e o f t h e n e w
0050640 t y p e . \r N o t e : C M
0050660 L p r o v i d e s a f i l
0050700 e p a c k a g e c o m m a n
0050720 d c a l l e d T Y P E S t
0050740 h a t s a v e s t h e s e
0050760 d e f i n i t i o n s . T h
0051000 e d o c u m e n t a t i o n
0051020 s t r i n g i s s a v e d
0051040 u n d e r N A M E i n t h
0051060 e p r o p e r t y T Y P E -
0051100 D O C U M E N T A T I O N . \r T
0051120 y p e C o n v e r s i o n \r 1
0051140 \r \r ( C O E R C E O B J E C T
0051160 R E S U L T - T Y P E ) \t [ F
0051200 u n c t i o n ] \r T h e g i v
0051220 e n O B J E C T i s c o n
0051240 v e r t e d i n t o a n "
0051260 e q u i v a l e n t " r e p r
0051300 e s e n t a t i o n i n t h
0051320 e t y p e d e s c r i b e d
0051340 b y t h e t y p e s p e
0051360 c i f i e r R E S U L T - T Y
0051400 P E . I f t h e c o n v
0051420 e r s i o n c a n n o t b e
0051440 d o n e a n e r r o r i
0051460 s s i g n a l l e d . \r N o
0051500 t e : I n C M L c o e r c
0051520 i o n i s s u p p o r t e d
0051540 o n l y f r o m a f e w
0051560 t y p e s i n t o R E S U
0051600 L T - T Y P E C H A R A C T E
0051620 R , F L O A T , o r S I M
0051640 P L E - S T R I N G . \r D e t e
0051660 r m i n i n g t h e T y p e
0051700 o f a n O b j e c t \r 1 \r
0051720 \r A l t h o u g h a n o b j
0051740 e c t c a n b e a m e m
0051760 b e r o f m a n y t y p e
0052000 s e t s , i t i s p o s
0052020 s i b l e t o g e t t h e
0052040 t y p e s p e c i f i e r
0052060 o f j u s t o n e t h a t
0052100 d e s c r i b e s i t .
0052120 T e s t i n g o b j e c t s
0052140 a g a i n s t t y p e s p e
0052160 c i f i e r s i s d o n e
0052200 w i t h f u n c t i o n s i
0052220 n t h e P R E D I C A T E
0052240 c h a p t e r b e l o w . \r (
0052260 T Y P E - O F O B J E C T ) \t
0052300 [ F u n c t i o n ] \r R e t u r
0052320 n s a c o r r e c t t y p
0052340 e s p e c i f i e r t h a t
0052360 d e s c r i b e s o n e o
0052400 f ( o r p o s s i b l y t
0052420 h e o n l y ) t y p e s e
0052440 t t o w h i c h a n o b
0052460 j e c t b e l o n g s . \r 2 \r
0052500 \r P r o g r a m S t r u c t u
0052520 r e \r 1 \r \r T h e o v e r a l
0052540 l s t r u c t u r e o f a
0052560 C o m m o n L i s p p r o
0052600 g r a m i n c l u d e s :
0052620 f o r m s , s o m e o f w
0052640 h i c h e v a l u a t e t o
0052660 t h e m s e l v e s a n d
0052700 a r e c a l l e d 251 251 s e l
0052720 f - e v a l u a t i n g , 271 271
0052740 v a r i a b l e s , s p e c i
0052760 a l f o r m s , w h i c h
0053000 d o n ' t e v a l u a t e t
0053020 h e i r a r g u m e n t s ,
0053040 m a c r o s , f u n c t i o n
0053060 s , s o m e n a m e d w i
0053100 t h s y m b o l s , a n d
0053120 l a m b d a e x p r e s s i o
0053140 n s . I n a d d i t i o n
0053160 t h e r e a r e v a r i o
0053200 u s 251 251 t o p - l e v e l 271 271
0053220 f o r m s t h a t a r e
0053240 u s e d t o d e f i n e n
0053260 a m e d f u n c t i o n s ,
0053300 d e c l a r e g l o b a l c
0053320 o n s t a n t s a n d v a r
0053340 i a b l e s , a n d c o n t
0053360 r o l 251 251 t i m e o f e v
0053400 a l u a t i o n 271 271 o f f o
0053420 r m s ( a t l o a d , c o
0053440 m p i l e , e t c . ) . \r L a
0053460 m b d a E x p r e s s i o n s
0053500 \r 1 \r \r T h e b a s i c s y
0053520 n t a x o f t h e C o m m
0053540 o n L i s p l a m b d a e
0053560 x p r e s s i o n i s \r ( L A
0053600 M B D A L A M B D A - L I S T
0053620 . B O D Y ) \r N o t e :
0053640 C o m m o n - L i s p - s t y l
0053660 e l a m b d a s a r e n a
0053700 m e d C L : L A M B D A , t
0053720 o d i s t i n g u i s h t h
0053740 e m f r o m t h e I n t e
0053760 r l i s p - D L A M B D A . \r
0054000 T h e L A M B D A - L I S T
0054020 s p e c i f i e s t h e n a
0054040 m e a n d f o r m o f t
0054060 h e p a r a m e t e r s o f
0054100 t h e l a m b d a e x p r
0054120 e s s i o n . T h e l a m
0054140 b d a l i s t i s u s e d
0054160 t o a c c e p t a r g u m
0054200 e n t s a t e v a l t i m
0054220 e . C o m m o n L i s p
0054240 l a m b d a l i s t s b e g
0054260 i n a s d o m o s t l a
0054300 n g u a g e s ' p a r a m e t
0054320 e r - a c c e p t i n g s y n
0054340 t a x e s , w i t h s y m b
0054360 o l s t h a t r e q u i r e
0054400 a r g u m e n t s t o b e
0054420 p r o v i d e d ( t h e r e
0054440 c a n b e z e r o o r
0054460 m o r e o f t h e s e ) .
0054500 H o w e v e r , p a r a m e
0054520 t e r s i n t h e l a m b
0054540 d a l i s t m a y b e p
0054560 r e c e d e d b y l a m b d
0054600 a k e y w o r d s . T h e
0054620 s e c a n c a u s e a r g
0054640 u m e n t s t o b e o p t
0054660 i o n a l , g a t h e r i n
0054700 d e f i n i t e n u m b e r s
0054720 o f a r g u m e n t s i n
0054740 t o a l i s t , p u l l
0054760 p a r a m e t e r s f r o m
0055000 a r g u m e n t s b y k e
0055020 y w o r d , o r e v e n p
0055040 r o v i d e l o c a l v a r
0055060 i a b l e s . L a m b d a
0055100 k e y w o r d s c a n b e
0055120 f o l l o w e d b y f o r m
0055140 s t h a t i n i t i a l i z
0055160 e u n p r o v i d e d o p t
0055200 i o n a l p a r a m e t e r s
0055220 , o r s e t f l a g s t
0055240 o i n d i c a t e w h e n
0055260 t h e y h a v e b e e n p
0055300 r o v i d e d . T h e b o d
0055320 y o f a l a m b d a m a
0055340 y b e g i n w i t h n o n
0055360 e o r a n y n u m b e r
0055400 o f d e c l a r a t i o n e
0055420 x p r e s s i o n s a n d d
0055440 o c u m e n t a t i o n s t r
0055460 i n g s , w h i c h a r e
0055500 f o l l o w e d b y z e r o
0055520 o r m o r e f o r m s ,
0055540 w h i c h a r e e v a l u a
0055560 t e d a s t h o u g h i n
0055600 a P R O G N . \r L a m b d a
0055620 L i s t \r 1 \r \r T h e f o
0055640 l l o w i n g i s t h e e
0055660 x a c t s y n t a x o f t
0055700 h e L A M B D A - L I S T . \r
0055720 ( { V A R } * \r \t [ & O P T I O
0055740 N A L { V A R | ( V A
0055760 R [ I N I T F O R M [ V A R
0056000 S E T P ] ] ) } * ] \r \t [ & R E
0056020 S T V A R ] \r \t [ & K E Y {
0056040 V A R | ( { V A R | ( K
0056060 E Y W O R D V A R ) } [
0056100 I N I T F O R M [ V A R S E T
0056120 P ] ] ) } * \r \t \t [ & A L L O W
0056140 - O T H E R - K E Y S ] ] \r \t [
0056160 & A U X { V A R | ( V A R
0056200 [ I N I T F O R M ] ) } * ] )
0056220 \r T h e f i r s t s e t o
0056240 f V A R s a r e r e q u i
0056260 r e d p a r a m e t e r s .
0056300 C o r r e s p o n d i n g a
0056320 r g u m e n t s m u s t b e
0056340 p r o v i d e d a t e a c
0056360 h e v a l u a t i o n . I
0056400 t i s a n e r r o r n o
0056420 t t o p r o v i d e t h e
0056440 m . \r & O P T I O N A L p a r
0056460 a m e t e r s m e a n t h a
0056500 t a r g u m e n t s m a y
0056520 o r m a y n o t b e p r
0056540 o v i d e d a t a n e v a
0056560 l u a t i o n . T h e r e
0056600 a r e t h r e e f o r m s
0056620 o f o p t i o n a l p a r a
0056640 m e t e r s . T h e f i r
0056660 s t o c c u r s w h e n o
0056700 n l y t h e s y m b o l i
0056720 s g i v e n i n t h e l
0056740 a m b d a a r g l i s t .
0056760 I n t h i s f o r m a n
0057000 a r g u m e n t i s o p t i
0057020 o n a l a n d i f n o t
0057040 p r o v i d e d t h e p a r
0057060 a m e t e r i s s e t t o
0057100 N I L . T h e s e c o n
0057120 d f o r m i s a t w o -
0057140 e l e m e n t l i s t , w i
0057160 t h a s y m b o l a n d
0057200 a n i n i t i a l i z i n g
0057220 f o r m , w h i c h i s e
0057240 v a l u a t e d t o s e t
0057260 u p t h e p a r a m e t e r
0057300 i f a n a r g u m e n t
0057320 i s n o t p r o v i d e d .
0057340 F i n a l l y a t h r e
0057360 e - e l e m e n t l i s t m
0057400 a y b e p r o v i d e d ,
0057420 w h i c h i s l i k e t h
0057440 e s e c o n d f o r m , b
0057460 u t w h o s e t h i r d e
0057500 l e m e n t i s a s y m b
0057520 o l t h a t i s s e t t
0057540 o T w h e n t h e a r g
0057560 u m e n t i s p r o v i d e
0057600 d o r N I L w h e n i t
0057620 i s n o t . \r A & R E S
0057640 T p a r a m e t e r g a t h
0057660 e r s u p a n y r e m a i
0057700 n i n g a r g u m e n t s i
0057720 n t o a l i s t a n d b
0057740 i n d s V A R t o i t .
0057760 I n c l u d i n g l a m b d
0060000 a k e y w o r d m e a n s
0060020 t h a t t h e f u n c t i o
0060040 n c a n a c c e p t a n
0060060 u p w a r d l y u n b o u n d
0060100 e d n u m b e r o f a r g
0060120 u m e n t s . \r & K E Y m e a
0060140 n s t h a t t h e a r g u
0060160 m e n t l i s t , a f t e r
0060200 s o m e p o i n t , i s
0060220 c o m p o s e d o f a l t e
0060240 r n a t i n g k e y w o r d
0060260 a n d v a l u e p a i r s .
0060300 E . g . , s u p p o s e
0060320 C O L O R - M Y - W O R L D
0060340 i s a f u n c t i o n w i
0060360 t h d o z e n s o f p a r
0060400 a m e t e r s , b u t w h i
0060420 c h i s t y p i c a l l y
0060440 c a l l e d w i t h o n l y
0060460 o n e o r t w o o f t
0060500 h e m s e t t o a n o n
0060520 - d e f a u l t v a l u e .
0060540 T h e n y o u m i g h t
0060560 s e e \r ( C O L O R - M Y - W O
0060600 R L D S O M E B I T M A P :
0060620 H U E B L U E : D U R A T I
0060640 O N 5 H O U R S ) \r w h e r e
0060660 t h e f i r s t a r g u m
0060700 e n t i s 251 251 r e q u i r e
0060720 d , 271 271 b u t a l l t h e
0060740 o t h e r s a r e o p t i
0060760 o n a l a n d a r e o b t
0061000 a i n e d f r o m t h e a
0061020 p p r o p r i a t e p a i r
0061040 i n t h e r e a l a r g u
0061060 m e n t l i s t ; i n t
0061100 h i s e x a m p l e , o n e
0061120 s u c h 251 251 k e y w o r d 251
0061140 251 a r g u m e n t i s c a
0061160 l l e d H U E , a n d i t
0061200 w i l l b e s e t t o
0061220 t h e v a l u e o f t h e
0061240 v a r i a b l e B L U E ;
0061260 a l s o t h i s 251 251 c o l o
0061300 r i n g 271 271 w i l l l a s t
0061320 f o r a D U R A T I O N
0061340 o f t i m e f o u n d i n
0061360 t h e v a r i a b l e 5 H
0061400 O U R S . N o t e t h a
0061420 t t h e k e y w o r d s i
0061440 n t h e a r g u m e n t l
0061460 i s t c a n b e c o m p u
0061500 t e d b y f o r m s i n
0061520 t h e a r g u m e n t s t o
0061540 t h e c a l l ; t h e c
0061560 o n s i s t e n t p a i r i n
0061600 g m u s t s t i l l b e
0061620 o b s e r v e d . \r A s w i t
0061640 h & O P T I O N A L p a r a
0061660 m e t e r s , & K E Y p a r
0061700 a m e t e r s m a y b e d
0061720 e s c r i b e d a s t w o -
0061740 o r t h r e e - e l e m e n
0061760 t l i s t s w i t h d e f
0062000 a u l t i n i t i a l i z i n
0062020 g f o r m s a n d V A R S
0062040 E T P s . \r N o t e t h a t
0062060 C M L s i m u l a t e s t h
0062100 e r e a d e r s y n t a x
0062120 a n d s e l f - e v a l u a t
0062140 i o n o f k e y w o r d s ,
0062160 e . g . , t h e 251 251 : 271 271
0062200 p r e f i x e d t o t h e
0062220 k e y w o r d s i n t h e
0062240 p r e v i o u s e x a m p l
0062260 e . \r & A L L O W - O T H E R -
0062300 K E Y W O R D S c a n f o l
0062320 l o w & K E Y p a r a m e t
0062340 e r s a n d s i g n a l s
0062360 t h a t i t i s n o t a
0062400 n e r r o r t o p r o v i
0062420 d e k e y w o r d s i n t
0062440 h e a r g u m e n t l i s t
0062460 o f t h i s f u n c t i o
0062500 n t h a t a r e n o t r
0062520 e c o g n i z e d . T h i s
0062540 i s h a n d y w h e n u
0062560 s e d w i t h a n & R E S
0062600 T k e y w o r d , t o p
0062620 a s s k e y w o r d a r g u
0062640 m e n t s t h r o u g h t o
0062660 a n o t h e r f u n c t i o
0062700 n v i a F U N C A L L f o
0062720 r i n s t a n c e . \r & A U X
0062740 a l l o w s v a r i a b l e
0062760 s t o b e s e t u p e
0063000 x a c t l y a s p e r L E
0063020 T . \r L a m b d a B o d y \r 1
0063040 \r \r T h e e x a c t s y n t
0063060 a x o f t h e b o d y o
0063100 f a l a m b d a e x p r e
0063120 s s i o n i s \r { D E C L A R
0063140 A T I O N | D O C U M E N T
0063160 A T I O N - S T R I N G } * \r {
0063200 F O R M } * \r D E C L A R A T I
0063220 O N m a y b e a n y o f
0063240 t h e d e c l a r a t i o n
0063260 f o r m s . \r D O C U M E N T
0063300 A T I O N - S T R I N G i s
0063320 s t o r e d f o r r e t r i
0063340 e v a l . \r T h e F O R M s
0063360 a r e e v a l u a t e d a s
0063400 t h o u g h e n c l o s e d
0063420 b y a P R O G N . \r D e f
0063440 i n i n g N a m e d F u n c
0063460 t i o n s \r 1 \r \r ( D E F U N
0063500 N A M E L A M B D A - L I S T
0063520 . B O D Y ) \t [ M a c r o ]
0063540 \r C r e a t e s a n a m e d
0063560 f u n c t i o n c a l l e d
0063600 N A M E . T h e a r g u
0063620 m e n t s L A M B D A - L I S
0063640 T a n d B O D Y a r e a
0063660 s d e s c r i b e d i n t
0063700 h e s e c t i o n o n l a
0063720 m b d a e x p r e s s i o n s
0063740 a b o v e . D e f i n i t
0063760 i o n o f f u n c t i o n s
0064000 w i t h t h i s f o r m
0064020 i s i n t e g r a t e d w i
0064040 t h t h e f i l e p a c k
0064060 a g e . I t i s a n e
0064100 r r o r t o a t t e m p t
0064120 t o r e d e f i n e a s p
0064140 e c i a l f o r m ( a l t h
0064160 o u g h t h i s i s n ' t
0064200 t e s t e d i n C M L ) . \r
0064220 N o t e : I n C M L t h
0064240 e r e i s n o B L O C K
0064260 d e f i n e d a r o u n d t
0064300 h e b o d y o f t h e f
0064320 u n c t i o n ; R E T U R N -
0064340 F R O M w i l l n o t w o
0064360 r k . \r D e c l a r i n g G l
0064400 o b a l V a l u e s a n d
0064420 N a m e d C o n s t a n t s \r
0064440 1 \r \r ( D E F V A R N A M E
0064460 & O P T I O N A L I N I T I A
0064500 L - V A L U E \r
0064520 D O C
0064540 U M E N T A T I O N - S T R I N
0064560 G ) \t [ F u n c t i o n ] \r D e
0064600 c l a r e s N A M E t o b
0064620 e a g l o b a l v a r i a
0064640 b l e , a n d i f i t i
0064660 s u n b o u n d , s e t s
0064700 i t s v a l u e t o I N I
0064720 T I A L - V A L U E . \r N o t e
0064740 : I n C M L t h i s f o
0064760 r m o n l y s u p p o r t s
0065000 t h e N A M E a n d I N
0065020 I T I A L - V A L U E a r g u
0065040 m e n t s . I t i s i n
0065060 t e g r a t e d w i t h t h
0065100 e f i l e p a c k a g e a
0065120 n d i s i m p l e m e n t e
0065140 d a s a f u n c t i o n ,
0065160 r a t h e r t h a n a s
0065200 a m a c r o a s d e s c r
0065220 i b e d i n C o m m o n L
0065240 i s p : T h e L a n g u a
0065260 g e . \r ( D E F C O N S T A N T
0065300 V A R V A L & O P T I O N
0065320 A L \r
0065340
0065360 D O C U M E N T A T I
0065400 O N - S T R I N G ) \t [ S p e c
0065420 i a l f o r m ] \r T h i s f
0065440 o r m d e f i n e s a n d
0065460 d e c l a r e s a c o n s t
0065500 a n t . \r N o t e : I n C
0065520 M L D E F C O N S T A N T i
0065540 s i m p l e m e n t e d a s
0065560 a s p e c i a l f o r m ,
0065600 r a t h e r t h a n a s
0065620 a m a c r o a s d e s c r
0065640 i b e d i n C o m m o n L
0065660 i s p : T h e L a n g u a g
0065700 e . T h i s f o r m i s
0065720 i n t e g r a t e d w i t h
0065740 t h e f i l e p a c k a g
0065760 e . \r 2 \r \r P r e d i c a t e s
0066000 \r 1 \r \r T h e s e a r e f u
0066020 n c t i o n s t h a t r e t
0066040 u r n s o m e v a l u e t
0066060 h a t i n d i c a t e s a
0066100 251 251 t r u e 271 271 o r 251 251 f a
0066120 l s e 271 271 c o n d i t i o n .
0066140 T h e v a l u e f o r
0066160 t r u e i s , b y d e f a
0066200 u l t , T a n d f o r f
0066220 a l s e , N I L . T h e
0066240 f u n c t i o n s b e l o w
0066260 a r e r e q u i r e d t o
0066300 r e t u r n N I L w h e n
0066320 a c o n d i t i o n i s f
0066340 a l s e . H o w e v e r ,
0066360 t r u t h i s g e n e r a l
0066400 l y i n d i c a t e d a s
0066420 a 251 251 n o n - N I L 271 271 v a
0066440 l u e , a n d t h e f u n
0066460 c t i o n s b e l o w m a y
0066500 r e t u r n a 251 251 u s e f
0066520 u l v a l u e 271 271 i n s t e
0066540 a d o f T ( t y p i c a l
0066560 l y , t h e i r a r g u m e
0066600 n t ) . \r G e n e r a l T y p
0066620 e P r e d i c a t e s \r 1 \r \r
0066640 T h e s e p r e d i c a t e s
0066660 w o r k w i t h t h e t
0066700 y p e s p e c i f i e r f o
0066720 r m s o u t l i n e d i n
0066740 t h e c h a p t e r o n t
0066760 y p e s p e c i f i e r s (
0067000 a b o v e ) . \r ( T Y P E P O
0067020 B J E C T T Y P E - S P E C I
0067040 F I E R ) \t [ F u n c t i o n ]
0067060 \r R e t u r n s T i f O B
0067100 J E C T i s o f t h e t
0067120 y p e d e s c r i b e d b y
0067140 T Y P E - S P E C I F I E R ,
0067160 a n d N I L o t h e r w i
0067200 s e . T h e T Y P E - S P
0067220 E C I F I E R m u s t b e
0067240 o n e o f t h e d e s c r
0067260 i p t i v e f o r m s , n o
0067300 t d e c l a r a t i v e . \r S
0067320 p e c i f i c D a t a T y p
0067340 e P r e d i c a t e s \r 1 \r \r
0067360 ( N U L L O B J E C T ) \t [ F
0067400 u n c t i o n ] \r R e t u r n s
0067420 t r u e i f i t s a r g
0067440 u m e n t i s N I L , f a
0067460 l s e o t h e r w i s e .
0067500 L i k e N O T , b u t i s
0067520 u s u a l l y a p p l i e d
0067540 t o l i s t s i n s t e a
0067560 d o f t r u t h v a l u e
0067600 s . \r ( S Y M B O L P O B J E
0067620 C T ) \t [ F u n c t i o n ] \r R
0067640 e t u r n s t r u e i f O
0067660 B J E C T i s a s y m b o
0067700 l ( I n t e r l i s p - D L
0067720 I T A T O M ) . \r ( A T O M O
0067740 B J E C T ) \t [ F u n c t i o n
0067760 ] \r R e t u r n s t r u e i
0070000 f O B J E C T i s n o t
0070020 a c o n s c e l l , f a l
0070040 s e i f i t i s . N o
0070060 t e t h a t \r ( A T O M ' (
0070100 ) ) = T \r b e c a u s e \r (
0070120 ) = N I L \r N o t e : t
0070140 h e a c t u a l n a m e o
0070160 f t h i s f u n c t i o n
0070200 i s C L : A T O M t o a v
0070220 o i d c o n f l i c t w i t
0070240 h t h e I n t e r l i s p -
0070260 D d e f i n i t i o n . F
0070300 a k i n g o f p a c k a g e
0070320 s m a y m a k e t h i s
0070340 d i s t i n c t i o n a u t o
0070360 m a t i c a l l y a t r e a
0070400 d t i m e i n s o m e e
0070420 n v i r o n m e n t s ( s u c
0070440 h a s a C M L E x e c w
0070460 i n d o w , s e e b e l o w
0070500 ) . \r ( C O N S P O B J E C T
0070520 ) \t [ F u n c t i o n ] \r R e t
0070540 u r n s t r u e i f O B J
0070560 E C T i s a c o n s c e
0070600 l l , f a l s e o t h e r w
0070620 i s e . N I L i s n o t
0070640 a c o n s c e l l . \r (
0070660 L I S T P O B J E C T ) \t [ F
0070700 u n c t i o n ] \r T r u e o n
0070720 l y i f O B J E C T i s
0070740 a c o n s c e l l o r N
0070760 I L . \r N o t e : t h e n
0071000 a m e o f t h i s f u n c
0071020 t i o n i n C M L i s C
0071040 L : L I S T P . \r ( N U M B E R
0071060 P O B J E C T ) \t [ F u n c t
0071100 i o n ] \r R e t u r n s t r u
0071120 e i f O B J E C T i s a
0071140 n u m b e r i n a n y r
0071160 e p r e s e n t a t i o n . \r (
0071200 I N T E G E R P O B J E C T )
0071220 \t [ F u n c t i o n ] \r R e t u
0071240 r n s t r u e i f o b j e
0071260 c t i s a n y k i n d o
0071300 f i n t e g e r n u m b e r
0071320 ( F I X N U M o r B I G N
0071340 U M ) . \r ( R A T I O N A L P
0071360 O B J E C T ) \t [ F u n c t i o
0071400 n ] \r R e t u r n s t r u e
0071420 i f O B J E C T i s a r
0071440 a t i o n a l n u m b e r . \r
0071460 N o t e : a l t h o u g h t
0071500 h e r a t i o n a l d a t a
0071520 t y p e e x i s t s i n
0071540 C M L , i t i s n o t h
0071560 o o k e d i n t o t h e a
0071600 r i t h m e t i c f u n c t i
0071620 o n s . \r ( F L O A T P O B J
0071640 E C T ) \t [ F u n c t i o n ] \r
0071660 R e t u r n s t r u e i f
0071700 O B J E C T i s a n u m b
0071720 e r i n a n y f l o a t i
0071740 n g - p o i n t r e p r e s e
0071760 n t a t i o n . \r ( C O M P L E
0072000 X P O B J E C T ) \t [ F u n c
0072020 t i o n ] \r R e t u r n s t r
0072040 u e i f O B J E C T i s
0072060 a c o m p l e x n u m b e r
0072100 . \r N o t e : a l t h o u g
0072120 h t h e c o m p l e x d a
0072140 t a t y p e e x i s t s i
0072160 n C M L , i t i s n o t
0072200 h o o k e d i n t o t h e
0072220 a r i t h m e t i c f u n c
0072240 t i o n s . \r ( C H A R A C T E
0072260 R P O B J E C T ) \t [ F u n c
0072300 t i o n ] \r R e t u r n s t r
0072320 u e i f O B J E C T i s
0072340 a c h a r a c t e r o b j e
0072360 c t . \r ( S T R I N G P O B J
0072400 E C T ) \t [ F u n c t i o n ] \r
0072420 R e t u r n s t r u e i f
0072440 O B J E C T i s a v e c t
0072460 o r w h o s e e l e m e n t
0072500 s a r e o f t y p e S T
0072520 R I N G - C H A R . \r ( B I T -
0072540 V E C T O R - P O B J E C T )
0072560 \t [ F u n c t i o n ] \r T r u e
0072600 o f v e c t o r s w i t h
0072620 e l e m e n t t y p e B I
0072640 T . \r ( V E C T O R P O B J E
0072660 C T ) \t [ F u n c t i o n ] \r T
0072700 r u e i f i t s a r g u m
0072720 e n t i s a n y k i n d
0072740 o f o n e - d i m e n s i o n
0072760 a l a r r a y . T h i s
0073000 i n c l u d e s I n t e r l i
0073020 s p - D A R R A Y P s a n d
0073040 S T R I N G P s . \r ( A R R A
0073060 Y P O B J E C T ) \t [ F u n c
0073100 t i o n ] \r R e t u r n s t r
0073120 u e i f O B J E C T i s
0073140 a n a r r a y o f a n y
0073160 k i n d . N o t e t h a t
0073200 s t r i n g s a n d b i t
0073220 m a p s ( o f t h e I n
0073240 t e r l i s p - D v a r i e t
0073260 y ) a r e c o n s i d e r e
0073300 d t o b e a r r a y s . \r
0073320 N o t e : t h e n a m e
0073340 o f t h i s f u n c t i o n
0073360 i n C M L i s C L : A R
0073400 R A Y P . \r E q u a l i t y P
0073420 r e d i c a t e s \r 1 \r \r C o m
0073440 m o n L i s p h a s a s
0073460 p e c t r u m o f e q u a l
0073500 i t y t e s t s t h a t r
0073520 u n f r o m m o s t s p e
0073540 c i f i c t o m o s t g e
0073560 n e r a l ( e v e n m a t c
0073600 h i n g c h a r a c t e r s
0073620 o f d i f f e r e n t c a s
0073640 e a t t h e g e n e r a l
0073660 e n d ) . \r ( E Q X Y ) \t
0073700 [ F u n c t i o n ] \r T h i s
0073720 i s t h e f a s t e s t a
0073740 n d m o s t s p e c i f i c
0073760 e q u a l i t y t e s t .
0074000 I t w i l l r e t u r n
0074020 t r u e i f t h e s a m e
0074040 o b j e c t i m p l e m e n
0074060 t s X a n d Y , w h i c
0074100 h i s u s u a l l y w h e
0074120 n t h e y p o i n t a t
0074140 t h e s a m e m e m o r y
0074160 a d d r e s s . I n p o r
0074200 t a b l e p r o g r a m s ,
0074220 u s e o f E Q i s f r a
0074240 u g h t w i t h n o n - o b
0074260 v i o u s p i t f a l l s (
0074300 s e e C o m m o n L i s p :
0074320 T h e L a n g u a g e f
0074340 o r s o m e e x a m p l e s
0074360 ) . \r ( E Q L X Y ) \t [ F u
0074400 n c t i o n ] \r T h i s e q u
0074420 a l i t y p r e d i c a t e
0074440 a d d i t i o n a l l y r e t
0074460 u r n s t r u e i f X a
0074500 n d Y a r e e i t h e r
0074520 e q u a l n u m b e r s i n
0074540 t h e s a m e r e p r e s
0074560 e n t a t i o n ( e . g . ,
0074600 1 . 0 S I N G L E - F L O A T
0074620 a n d 1 . 0 D O U B L E -
0074640 F L O A T w o u l d n o t
0074660 b e E Q L ) , o r a r e
0074700 c h a r a c t e r o b j e c t
0074720 s t h a t r e p r e s e n t
0074740 t h e s a m e c h a r a c
0074760 t e r . \r ( E Q U A L X Y )
0075000 \t [ F u n c t i o n ] \r I n a
0075020 d d i t i o n t o t h e a
0075040 b o v e , r e t u r n s t r
0075060 u e w h e n t h e o b j e
0075100 c t s h a v e t h e s a m
0075120 e s t r u c t u r e a n d
0075140 w h o s e e l e m e n t s a
0075160 r e E Q L . \r N o t e : t
0075200 h e a c t u a l n a m e o
0075220 f t h i s f u n c t i o n
0075240 i s C L : E Q U A L t o a
0075260 v o i d c o n f l i c t w i
0075300 t h t h e I n t e r l i s p
0075320 - D d e f i n i t i o n .
0075340 F a k i n g o f p a c k a g
0075360 e s m a y m a k e t h i s
0075400 d i s t i n c t i o n a u t
0075420 o m a t i c a l l y a t r e
0075440 a d t i m e i n s o m e
0075460 e n v i r o n m e n t s ( s u
0075500 c h a s a C M L E x e c
0075520 w i n d o w , s e e b e l o
0075540 w ) . \r ( E Q U A L P X Y )
0075560 \t [ F u n c t i o n ] \r I n a
0075600 d d i t i o n t o t h e a
0075620 b o v e c a s e i s i g n
0075640 o r e d i n c h a r a c t e
0075660 r s , a n d n u m b e r s
0075700 a r e c o m p a r e d f o r
0075720 v a l u e ( r e p r e s e n
0075740 t a t i o n b e i n g i g n
0075760 o r e d ) . \r L o g i c a l O
0076000 p e r a t o r s \r 1 \r \r ( N O T
0076020 E X P R ) \t [ F u n c t i o n
0076040 ] \r R e t u r n s T i f E
0076060 X P R e v a l u a t e s t o
0076100 T , N I L o t h e r w i s
0076120 e . \r ( A N D E X P R 1 E X
0076140 P R 2 . . . ) \t [ S p e c i a
0076160 l f o r m ] \r E v a l u a t
0076200 e s t h e E X P R s l e f
0076220 t t o r i g h t . I f
0076240 a t a n y t i m e i n t
0076260 h a t e v a l u a t i o n a
0076300 n E X P R r e t u r n s N
0076320 I L , e v a l u a t i o n s
0076340 t o p s a n d t h e f o r
0076360 m r e t u r n s N I L .
0076400 I f a l l E X P R s r e
0076420 t u r n n o n - N I L v a l
0076440 u e s , t h e e n t i r e
0076460 f o r m r e t u r n s t h e
0076500 v a l u e o f t h e l a
0076520 s t E X P R N . \r N o t e :
0076540 i n C M L t h i s i s
0076560 a s p e c i a l f o r m a
0076600 n d n o t a m a c r o . \r
0076620 ( O R E X P R 1 E X P R 2
0076640 . . . ) \t [ S p e c i a l f
0076660 o r m ] \r E v a l u a t e s t
0076700 h e E X P R s l e f t t o
0076720 r i g h t . I f a t a
0076740 n y t i m e i n t h a t
0076760 e v a l u a t i o n a n E X
0077000 P R r e t u r n s a n o n
0077020 - N I L v a l u e , e v a l
0077040 u a t i o n s t o p s a n d
0077060 t h e f o r m r e t u r n
0077100 s t h a t v a l u e . I
0077120 f a l l E X P R s r e t
0077140 u r n N I L v a l u e s ,
0077160 t h e e n t i r e f o r m
0077200 r e t u r n s N I L . \r N o t
0077220 e : i n C M L t h i s
0077240 i s a s p e c i a l f o r
0077260 m a n d n o t a m a c r
0077300 o . \r 2 \r \r C o n t r o l S t
0077320 r u c t u r e \r 1 \r \r R e f e r
0077340 e n c e \r 1 \r \r ( Q U O T E E
0077360 X P R ) \t [ S p e c i a l f o
0077400 r m ] \r R e t u r n s i t s
0077420 a r g u m e n t u n e v a l u
0077440 a t e d . I n d i c a t e s
0077460 a c o n s t a n t v a l u
0077500 e a n d k e e p s a n o
0077520 b j e c t f r o m b e i n g
0077540 e v a l u a t e d . \r ( F U N
0077560 C T I O N F N ) \t [ S p e c i
0077600 a l f o r m ] \r I n d i c a t
0077620 e s t h a t i t s a r g u
0077640 m e n t i s t o b e c o
0077660 n s i d e r e d a f o r m
0077700 t h a t r e p r e s e n t s
0077720 a n e x e c u t a b l e f u
0077740 n c t i o n . I f F N i
0077760 s a s y m b o l , i t s
0100000 f u n c t i o n b i n d i n g
0100020 i s r e t r i e v e d .
0100040 I f i t i s a l a m b d
0100060 a e x p r e s s i o n , i t
0100100 i s r e t u r n e d u n e
0100120 v a l u a t e d . T h e c
0100140 o m p i l e r w i l l , h o
0100160 w e v e r , c o m p i l e s
0100200 u c h f o r m s w h e n i
0100220 n d i c a t e d w i t h F U
0100240 N C T I O N . \r N o t e : i
0100260 n C M L , F U N C T I O N
0100300 d o e s n o t c r e a t e
0100320 l e x i c a l c l o s u r e s
0100340 . \r ( B O U N D P S Y M B O L
0100360 ) \t [ F u n c t i o n ] \r R e t
0100400 u r n s t r u e i f S Y M
0100420 B O L h a s a v a l u e
0100440 b o u n d t o i t , f a l
0100460 s e o t h e r w i s e . \r ( F
0100500 B O U N D P S Y M B O L ) \t [
0100520 F u n c t i o n ] \r R e t u r n
0100540 s t r u e i f S Y M B O L
0100560 h a s a f u n c t i o n ,
0100600 m a c r o , o r s p e c i
0100620 a l f o r m d e f i n i t i
0100640 o n . O t h e r w i s e i
0100660 t r e t u r n s f a l s e .
0100700 \r ( S P E C I A L - F O R M - P
0100720 S Y M B O L ) \t [ F u n c t i
0100740 o n ] \r R e t u r n s t r u e
0100760 i f S Y M B O L h a s a
0101000 f u n c t i o n a l d e f i
0101020 n i t i o n a s a s p e c
0101040 i a l f o r m ( d o e s n
0101060 o t e v a l u a t e i t s
0101100 a r g u m e n t s ) . \r A s s i
0101120 g n m e n t \r 1 \r \r ( S E T Q
0101140 { V A R F O R M } * ) \t
0101160 [ S p e c i a l f o r m ] \r A
0101200 s s i g n s o n e o r m o
0101220 r e v a r i a b l e s t o
0101240 h a v e s o m e v a l u e s
0101260 . A s s i g n m e n t t a
0101300 k e s p l a c e l e f t t
0101320 o r i g h t , a n d t h u
0101340 s a l a t e r F O R M m
0101360 a y d e p e n d o n a n
0101400 e a r l i e r V A R . \r N o t
0101420 e : t h e r e a l n a m e
0101440 o f t h i s i s C L : S
0101460 E T Q t o a v o i d c o n
0101500 f l i c t w i t h I n t e r
0101520 l i s p ' s o w n S E T Q .
0101540 \r ( P S E T Q { V A R F O
0101560 R M } * ) \t [ M a c r o ] \r
0101600 A s s i g n s o n e o r m
0101620 o r e v a r i a b l e s t o
0101640 h a v e s o m e v a l u e
0101660 s , w i t h t h e b i n d
0101700 i n g t a k i n g p l a c e
0101720 a f t e r a l l t h e F
0101740 O R M s h a v e b e e n e
0101760 v a l u a t e d . T h e V
0102000 A R a r e q u o t e d .
0102020 B e c a u s e t h e b i n d
0102040 i n g o c c u r s " i n p
0102060 a r a l l e l , 271 271 l a t e r
0102100 F O R M s m a y n o t d
0102120 e p e n d o n e a r l i e r
0102140 V A R b i n d i n g s . \r E
0102160 x a m p l e : \r ( P S E T Q A
0102200 ( M U M B L E X ) \r
0102220 B A ) \r w i l l a s s
0102240 i g n t o A t h e v a l
0102260 u e o f ( M U M B L E X )
0102300 a n d a s s i g n t o B
0102320 t h e v a l u e t h a t
0102340 A h a s b e f o r e t h e
0102360 c a l l t o P S E T Q . \r
0102400 ( S E T S Y M B O L V A L U
0102420 E ) \t [ F u n c t i o n ] \r A
0102440 s s i g n s a v a r i a b l
0102460 e , n a m e d b y a c o
0102500 m p u t e d s y m b o l , t
0102520 o a v a l u e . \r G e n e r
0102540 a l i z e d V a r i a b l e s
0102560 \r 1 \r \r F o r a n y s t o r
0102600 a g e l o c a t i o n t h e
0102620 r e a r e g e n e r a l l y
0102640 t w o o p e r a t i o n s ,
0102660 a c c e s s a n d m o d i
0102700 f y . N o r m a l l y t h
0102720 e s e o p e r a t i o n s a
0102740 r e g i v e n s e p a r a t
0102760 e n a m e s , l i k e C A
0103000 R a n d R P L A C A . H
0103020 o w e v e r , i t i s c l
0103040 e a r w e w o u l d h a v
0103060 e f e w e r n a m e s t o
0103100 r e m e m b e r i f w e
0103120 h a d a n 251 251 i n v e r s e
0103140 271 271 f u n c t i o n , o n e
0103160 t h a t t u r n e d a n
0103200 a c c e s s f o r m a n d
0103220 v a l u e i n t o a f o r
0103240 m t h a t s e t t h e s
0103260 t o r a g e t o t h a t v
0103300 a l u e . T h i s i s w
0103320 h a t S E T F d o e s . \r (
0103340 S E T F { P L A C E N E W
0103360 V A L U E } * ) \t [ M a c r
0103400 o ] \r G i v e n a p l a c e
0103420 s p e c i f i e r P L A C E
0103440 ( a n a c c e s s f o r m
0103460 l i k e C A R , G E T P R
0103500 O P , o r A R E F ) t h e
0103520 m a c r o S E T F w i l l
0103540 p r o d u c e a n a p p r
0103560 o p r i a t e f o r m t o
0103600 s e t t h e v a l u e o f
0103620 t h a t l o c a t i o n .
0103640 S E T F r e t u r n s t h
0103660 e l a s t N E W V A L U E .
0103700 \r N o t e : t h i s f a c
0103720 i l i t y d u p l i c a t e s
0103740 t h e I n t e r l i s p C
0103760 H A N G E f u n c t i o n a
0104000 n d i s i m p l e m e n t e
0104020 d a s a n i n t e r f a c
0104040 e t o i t . A l s o , o
0104060 n l y o n e P L A C E N E
0104100 W V A L U E p a i r i s a
0104120 l l o w e d i n C M L . \r I
0104140 n C M L p l a c e s p e c
0104160 i f i e r s c a n b e o n
0104200 e o f t h e f o l l o w i
0104220 n g 251 251 f u n c t i o n c a
0104240 l l s : 271 271 \r C A R C D R (
0104260 a n d a l l a b b r e v i a
0104300 t i o n s u p t o f o u r
0104320 l o n g , e . g . , C D D
0104340 D D R ) \r A R E F A R G B I
0104360 T C H A R F I L L - P O I N
0104400 T E R G E T S B I T S C H
0104420 A R S V R E F \r S Y M B O L -
0104440 F U N C T I O N S Y M B O L -
0104460 P L I S T S Y M B O L - V A L
0104500 U E \r O n l y t h e s e a
0104520 n d s p e c i f i e r s m a
0104540 d e w i t h D E F I N E - M
0104560 O D I F Y - M A C R O c a n
0104600 b e u s e d . \r ( D E F I N E
0104620 - M O D I F Y - M A C R O N A
0104640 M E L A M B D A - L I S T \r
0104660
*
0104740 F U N C T I O N [ D
0104760 O C - S T R I N G ] ) \t [ M a c
0105000 r o ] \r \r D E F I N E - M O D I
0105020 F Y - M A C R O c r e a t e s
0105040 a m a c r o d e f i n i t
0105060 i o n t o r e a d , m o d
0105100 i f y , a n d w r i t e a
0105120 p l a c e s p e c i f i e r
0105140 . T h e L A M B D A - L I
0105160 S T s h o u l d s p e c i f
0105200 y a n y a r g u m e n t s
0105220 a f t e r t h e f i r s t
0105240 ( w h i c h i s a l w a y s
0105260 a p l a c e s p e c i f i
0105300 e r ) . L A M B D A - L I S
0105320 T m a y o n l y h a v e
0105340 & K E Y a n d & R E S T l
0105360 a m b d a k e y w o r d s i
0105400 n i t . T h e F U N C T
0105420 I O N i s a p p l i e d t
0105440 o ( i n o r d e r ) t h e
0105460 o l d v a l u e i n t h
0105500 e p l a c e s p e c i f i e
0105520 r p l u s a n y o t h e r
0105540 a r g u m e n t s g i v e n
0105560 i n t h e L A M B D A - L
0105600 I S T . T h e r e s u l t
0105620 i n g v a l u e i s s t o
0105640 r e d b a c k i n t o t h
0105660 e p l a c e s p e c i f i e
0105700 r . \r E x a m p l e : \r ( D E F
0105720 I N E - M O D I F Y - M A C R O
0105740 I N C R ( & O P T I O N A L
0105760 ( D E L T A 1 ) ) + ) \r T
0106000 h e m o d i f i e r m a c r
0106020 o m i g h t l o o k l i k
0106040 e t h i s : \r ( D E F M A C R
0106060 O I N C R ( P L A C E ( &
0106100 O P T I O N A L ( D E L T A
0106120 1 ) ) \r ( B
0106140 Q U O T E ( S E T F , P L
0106160 A C E ( + , P L A C E ,
0106200 D E L T A ) ) ) ) \r T h u s ,
0106220 f o r t h e f o r m \r ( I
0106240 N C R C O U N T 5 ) \r t h e
0106260 r e s u l t i n g m a c r o
0106300 e x p a n s i o n w o u l d
0106320 b e \r ( S E T F C O U N T
0106340 ( + C O U N T 5 ) ) \r ( D E
0106360 F S E T F D E F S E T F - F O
0106400 R M ) \t [ M a c r o ] \r D E F S
0106420 E T F - F O R M i s e i t h
0106440 e r : \r A C C E S S - F N U P
0106460 D A T E - F N [ D O C - S T R
0106500 I N G ] o r \r A C C E S S -
0106520 F N L A M B D A - L I S T (
0106540 S T O R E - V A R I A B L E )
0106560 D E F S E T F - B O D Y \r N o
0106600 t e : o n l y t h e A C
0106620 C E S S - F N U P D A T E - F
0106640 N s y n t a x i s s u p p
0106660 o r t e d i n C M L . \r D E
0106700 F S E T F - B O D Y i s d e
0106720 f i n e d a s f o r L A M
0106740 B D A - B O D Y ( s e e a b
0106760 o v e u n d e r 251 251 L a m b
0107000 d a l i s t s 251 251 ) . \r I n
0107020 t h e s i m p l e f o r m ,
0107040 t h e n a m e o f a n
0107060 a c c e s s f u n c t i o n
0107100 i s g i v e n , t h e o n
0107120 e f o r w h i c h t h e
0107140 s e t t e r i s t o b e
0107160 d e f i n e d . T h e u
0107200 p d a t e f u n c t i o n i
0107220 s t h e o n e i n v o k e
0107240 d b y S E T F , w i t h
0107260 t h e n e w v a l u e a p
0107300 p e n d e d t o t h e e n
0107320 d o f t h e a r g u m e n
0107340 t s n o r m a l l y p a s s
0107360 e d t o t h e u p d a t e
0107400 f u n c t i o n . D o c u
0107420 m e n t a t i o n m a y o p
0107440 t i o n a l l y b e a t t a
0107460 c h e d w i t h t h e D O
0107500 C - S T R I N G . \r A s a n
0107520 e x a m p l e , i f t h e r
0107540 e w e r e t w o f u n c t
0107560 i o n s d e f i n e d t h u
0107600 s \r ( T A K E W H O I N D E
0107620 X ) \r ( G I V E W H O I N D
0107640 E X V A L U E ) \r a s u i t
0107660 a b l e c a l l t o m a k
0107700 e S E T F w o r k f o r
0107720 G I V E w o u l d b e \r ( D
0107740 E F S E T F T A K E G I V E
0107760 " H a n d W H O a v a l
0110000 u e " ) \r T h i s p r e s u m
0110020 e s t h a t G I V E r e t
0110040 u r n s V A L U E a s r e
0110060 q u i r e d b y t h e d e
0110100 f i n i t i o n o f S E T F
0110120 . \r T h e s e c o n d f o r
0110140 m a t i s m o r e c o m p
0110160 l e x b u t v e r s a t i l
0110200 e . A g a i n , t h e A
0110220 C C E S S - F N i s t h e
0110240 e x i s t i n g f u n c t i o
0110260 n f o r a c c e s s i n g
0110300 t h e p l a c e . L A M B
0110320 D A - L I S T i s a p p l i
0110340 e d t o t h e a r g u m e
0110360 n t s o f t h e p l a c e
0110400 s p e c i f i e r , b i n d
0110420 i n g a n y d e s i r e d
0110440 p i e c e s o f i t . I
0110460 t m a y c o n t a i n o n
0110500 l y & O P T I O N A L , & R
0110520 E S T , a n d & K E Y l a
0110540 m b d a l i s t k e y w o r
0110560 d s . S T O R E - V A R I A
0110600 B L E i s a s y m b o l
0110620 t h a t w i l l c o n t a i
0110640 n t h e n e w v a l u e
0110660 t h a t S E T F r e c e i v
0110700 e d . D E F S E T F - B O D
0110720 Y i s t h e n e v a l u a
0110740 t e d w i t h L A M B D A -
0110760 L I S T a n d t h e S T O
0111000 R E - V A R I A B L E c o n t
0111020 a i n i n g t h e a r g u m
0111040 e n t s a n d n e w v a l
0111060 u e r e s p e c t i v e l y .
0111100 I t i s t h e n t h e
0111120 j o b o f t h e D E F S
0111140 E T F - B O D Y t o c r e a
0111160 t e a f o r m t h a t w
0111200 i l l s e t t h e l o c a
0111220 t i o n . T h e D E F S E
0111240 T F - B O D Y f o r m n e e
0111260 d n o t w o r r y a b o u
0111300 t o r d e r o f e v a l u
0111320 a t i o n o r m u l t i p l
0111340 e e v a l u a t i o n s , a
0111360 s i t s p a r a m e t e r s
0111400 a r e a c t u a l l y b o
0111420 u n d t o t e m p o r a r y
0111440 s y m b o l s t h a t w i
0111460 l l h a v e t h e a p p r
0111500 o p r i a t e f o r m s i n
0111520 t h e m . \r A n e x a m p l
0111540 e m i g h t b e a f u n
0111560 c t i o n t h a t h a d t
0111600 o t e s t a l o c k o n
0111620 a l o c a t i o n b e f o
0111640 r e w r i t i n g t o i t
0111660 . G i v e n f u n c t i o
0111700 n s c a l l e d \r ( A S Y N C
0111720 H - R E A D M E M O R Y I N
0111740 D E X ) \r ( A S Y N C H - W R I
0111760 T E M E M O R Y I N D E X
0112000 V A L U E ) \r a s u i t a b l
0112020 e d e f i n i t i o n ( a
0112040 s s u m i n g t h e e x i s
0112060 t e n c e o f a L O C K
0112100 f u n c t i o n ) w o u l d
0112120 b e \r ( D E F S E T F A S Y N
0112140 C H - R E A D ( M E M O R Y
0112160 I N D E X & O P T I O N A L
0112200 ( T I M E O U T 1 0 ) ) ( N
0112220 E W - V A L U E ) \r " O b t
0112240 a i n l o c k b e f o r e
0112260 w r i t i n g t o i n d e x
0112300 e d l o c a t i o n " \r (
0112320 B Q U O T E ( W I T H - L O C
0112340 K ( , M E M O R Y , I N
0112360 D E X , T I M E O U T ) \r
0112400 ( A S Y
0112420 N C H - W R I T E , M E M O
0112440 R Y , I N D E X , N E W
0112460 - V A L U E ) ) ) ) \r N o t e
0112500 t h a t t h i s e x a m p l
0112520 e d o e s n ' t n e e d t
0112540 o a d d r e s s t h e p r
0112560 o b l e m o f t h e a r g
0112600 u m e n t f o r m s g e t t
0112620 i n g e v a l u a t e d m o
0112640 r e t h a n o n c e , a s
0112660 t h a t ' s a l l t a k e
0112700 n c a r e o f b y D E F
0112720 S E T F . \r F u n c t i o n I
0112740 n v o c a t i o n \r 1 \r \r ( A P
0112760 P L Y F N A R G & R E S T
0113000 M O R E - A R G S ) \t [ F u n
0113020 c t i o n ] \r I n v o k e s a
0113040 f u n c t i o n o n a s
0113060 e t o f a r g u m e n t s .
0113100 T h e l a s t o f t h
0113120 e a r g u m e n t s ( t h a
0113140 t i s , t h e l a s t o
0113160 f a l l o f t h e m , n
0113200 o t j u s t M O R E - A R G
0113220 S ) i s p r e s u m e d t
0113240 o b e a l i s t a n d
0113260 i s a p p e n d e d t o a
0113300 l l t h e p r e c e d i n g
0113320 a r g u m e n t s . T h e
0113340 e l e m e n t s o f t h i
0113360 s l i s t a r e t h e n
0113400 p a s s e d t o t h e f u
0113420 n c t i o n F N a s a r g
0113440 u m e n t s . \r N o t e : i n
0113460 C M L t h i s f u n c t i
0113500 o n i s c a l l e d C L :
0113520 A P P L Y t o a v o i d c
0113540 o n f l i c t w i t h I n t
0113560 e r l i s p ' s A P P L Y . \r
0113600 ( F U N C A L L F N & R E S
0113620 T A R G U M E N T S ) \t [ F u
0113640 n c t i o n ] \r C a l l s t h
0113660 e f u n c t i o n F N w i
0113700 t h t h e e l e m e n t s
0113720 o f t h e l i s t A R G U
0113740 M E N T S a s i t s a r g
0113760 u m e n t s . F U N C T I O
0114000 N i s h a n d y b e c a u
0114020 s e , b e i n g a f u n c
0114040 t i o n i t s e l f , i t
0114060 e v a l u a t e s t h e F N
0114100 a r g u m e n t t o p r o
0114120 d u c e t h e o b j e c t
0114140 t o b e c a l l e d . \r S i
0114160 m p l e S e q u e n c i n g \r
0114200 1 \r \r ( P R O G N & R E S T
0114220 F O R M S ) \t [ S p e c i a l
0114240 f o r m ] \r ( P R O G 1 F O
0114260 R M 1 & R E S T F O R M S )
0114300 \t [ M a c r o ] \r ( P R O G 2
0114320 F O R M 1 F O R M 2 & R E S
0114340 T F O R M S ) \t [ M a c r o ]
0114360 \r T h e s e f u n c t i o n s
0114400 a r e a s i n I n t e r
0114420 l i s p - D , e x c e p t t
0114440 h a t P R O G 1 a n d P R
0114460 O G 2 a r e i m p l e m e n
0114500 t e d w i t h N L A M B D A
0114520 s r a t h e r t h a n M A
0114540 C R O s . \r E s t a b l i s h i
0114560 n g N e w V a r i a b l e
0114600 B i n d i n g s \r 1 \r \r ( L E T
0114620 B I N D I N G - F O R M S &
0114640 R E S T B O D Y - F O R M S )
0114660 \t [ S p e c i a l f o r m ] \r
0114700 L E T i s a n a l t e r n
0114720 a t i v e t o L A M B D A ,
0114740 w h i c h p u t s t h e
0114760 b i n d i n g s 251 251 u p f r
0115000 o n t 251 251 l i k e P R O G
0115020 d o e s . E a c h o f t
0115040 h e B I N D I N G - F O R M S
0115060 l o o k s l i k e e i t h
0115100 e r \r ( V A R ) o r \r ( V A R
0115120 V A L U E ) \r I f n o v
0115140 a l u e i s g i v e n f o
0115160 r a v a r i a b l e i t
0115200 i s i n i t i a l i z e d t
0115220 o N I L . A l l v a l u
0115240 e s a r e f i r s t c o m
0115260 p u t e d ( l e f t t o r
0115300 i g h t ) a n d t h e n a
0115320 s s i g n e d , e f f e c t i
0115340 v e l y o c c u r r i n g 251
0115360 251 i n p a r a l l e l . 271 271 \r
0115400 T h e B O D Y - F O R M S a
0115420 r e a s f o r l a m b d a
0115440 e x p r e s s i o n s ( s e
0115460 e a b o v e ) . \r A n e x a
0115500 m p l e : \r ( L E T ( ( X (
0115520 M U M B L E ) ) \r (
0115540 Y ( G R U M B L E ) ) ) \r
0115560 ( D O . F I R S T . T H I
0115600 N G ) \r ( D O . L A S
0115620 T . T H I N G ) ) \r w o u l d
0115640 b e l i k e \r ( ( L A M B D A
0115660 ( X Y ) \r
0115700 ( D O . F I R S T . T H I N G )
0115720 \r ( D O . L A
0115740 S T . T H I N G ) ) \r ( M U M
0115760 B L E ) \r ( G R U M B L E ) )
0116000 \r N o t e : i n C M L t h
0116020 i s i s i m p l e m e n t e
0116040 d a s a m a c r o i n s
0116060 t e a d o f a s a s p e
0116100 c i a l f o r m . \r ( L E T *
0116120 B I N D I N G - F O R M S &
0116140 R E S T B O D Y - F O R M S )
0116160 \t [ S p e c i a l f o r m ] \r
0116200 L E T * i s s i m i l a r
0116220 t o L E T , b u t t h e
0116240 b i n d i n g s h a p p e n
0116260 s e q u e n t i a l l y r a t
0116300 h e r t h a n i n p a r a
0116320 l l e l . E . g . ,
0116340 \r ( L E T * ( ( X ( M U M B
0116360 L E ) ) \r ( Y (
0116400 G R U M B L E ) ) ) \r
0116420 ( D O . F I R S T . T H I N G
0116440 ) \r ( D O . L A S T
0116460 . T H I N G ) ) \r w o u l d b
0116500 e l i k e \r ( ( L A M B D A
0116520 ( X ) \r ( ( L
0116540 A M B D A ( Y ) \r
0116560 ( D O . F
0116600 I R S T . T H I N G ) \r
0116620 ( D O
0116640 . L A S T . T H I N G ) ) \r
0116660 ( G R U M B L E
0116700 ) ) \r ( M U M B L E ) ) \r N o
0116720 t e : i n C M L t h i s
0116740 i s i m p l e m e n t e d a
0116760 s a m a c r o i n s t e a
0117000 d o f a s a s p e c i a
0117020 l f o r m . \r ( P R O G V V
0117040 A R - L I S T V A L - L I S T
0117060 & R E S T F O R M S ) \t [ S
0117100 p e c i a l f o r m ] \r P R O
0117120 G V p r o v i d e s a m e
0117140 a n s f o r l a m b d a - b
0117160 i n d i n g a l i s t o f
0117200 v a r i a b l e s l i k e
0117220 P R O G N e x c e p t t h a
0117240 t t h e f i r s t t w o
0117260 i t e m s i n t h e 251 251 a
0117300 r g l i s t 271 271 a r e e v a
0117320 l u a t e d t o o b t a i n
0117340 a l i s t o f v a r i a
0117360 b l e n a m e s a n d a
0117400 l i s t o f v a l u e s ;
0117420 t h e n t h e v a r i a b l
0117440 e s a r e b o u n d ( a s
0117460 S P E C V A R S ) t o t h
0117500 e c o r r e s p o n d i n g
0117520 v a l u e s , a n d t h e
0117540 f o r m s i n t h e b o d
0117560 y e x e c u t e d , w i t h
0117600 t h e v a l u e o f t h
0117620 e l a s t o n e b e i n g
0117640 t h e r e t u r n v a l u
0117660 e o f t h e P R O G V .
0117700 T h i s f u n c t i o n s
0117720 e x i s t s p r i m a r i l y
0117740 a s a n a i d i n w r
0117760 i t i n g L i s p - l i k e
0120000 i n t e r p r e t e r s i n
0120020 L i s p . \r N o t e : i n C
0120040 M L t h i s i s i m p l e
0120060 m e n t e d a s a m a c r
0120100 o i n s t e a d o f a s
0120120 a s p e c i a l f o r m . \r
0120140 C o n d i t i o n a l s \r 1 \r \r
0120160 ( I F T E S T T H E N & O
0120200 P T I O N A L E L S E ) \t [ S
0120220 p e c i a l f o r m ] \r S i m
0120240 i l a r t o C O N D a n d
0120260 f r i e n d s . I f T E
0120300 S T e v a l u a t e s n o n
0120320 - N I L t h e n T H E N i
0120340 s e v a l u a t e d , e l s
0120360 e ( i f p r o v i d e d )
0120400 E L S E . O n l y o n e
0120420 o f e i t h e r T H E N o
0120440 r E L S E a r e e v a l u
0120460 a t e d a n d I F r e t u
0120500 r n s w h a t e v e r t h a
0120520 t f o r m d o e s . \r N o t
0120540 e : c a l l e d C L : I F
0120560 a n d i m p l e m e n t e d
0120600 a s a m a c r o . \r ( W H
0120620 E N T E S T & R E S T F O
0120640 R M S ) \t [ S p e c i a l f o
0120660 r m ] \r I n C o m m o n L i
0120700 s p t h i s i s n o t a
0120720 l o o p i n g c o n s t r u
0120740 c t ! \r T E S T i s e v a l
0120760 u a t e d . I f t h e r
0121000 e s u l t i s n o n - N I L
0121020 t h e n t h e F O R M S
0121040 a r e e v a l u a t e d ( l
0121060 e f t t o r i g h t ) a n
0121100 d t h e v a l u e o f t
0121120 h e l a s t o n e i s r
0121140 e t u r n e d , o t h e r w i
0121160 s e N I L i s r e t u r n
0121200 e d . \r N o t e : c a l l e
0121220 d C L : W H E N a n d i m
0121240 p l e m e n t e d a s a m
0121260 a c r o . \r ( U N L E S S T E
0121300 S T & R E S T F O R M S ) \t
0121320 [ S p e c i a l f o r m ] \r I
0121340 n C o m m o n L i s p t h
0121360 i s i s n o t a l o o p
0121400 i n g c o n s t r u c t ! \r T
0121420 E S T i s e v a l u a t e d
0121440 . I f t h e r e s u l t
0121460 i s N I L t h e n t h e
0121500 F O R M S a r e e v a l u a
0121520 t e d ( l e f t t o r i g
0121540 h t ) a n d t h e v a l u
0121560 e o f t h e l a s t o n
0121600 e i s r e t u r n e d , o
0121620 t h e r w i s e N I L i s
0121640 r e t u r n e d . \r N o t e :
0121660 c a l l e d C L : U N L E S
0121700 S a n d i m p l e m e n t e
0121720 d a s a m a c r o . \r ( C
0121740 O N D & R E S T C O N D I T
0121760 I O N A L - F O R M S ) \t [ M a
0122000 c r o ] \r T h i s i s t h e
0122020 c l a s s i c a l C O N D
0122040 f o r m , a s d e s c r i b
0122060 e d i n t h e I n t e r l
0122100 i s p - D R e f e r e n c e
0122120 M a n u a l . \r N o t e : i
0122140 n C M L t h i s i s i m
0122160 p l e m e n t e d a s a s
0122200 p e c i a l f o r m . \r ( C A
0122220 S E K E Y F O R M & R E S
0122240 T K E Y E D - C L A U S E S )
0122260 \t [ M a c r o ] \r S e l e c t s
0122300 a s e t o f f o r m s
0122320 t o e v a l u a t e b a s e
0122340 d o n a k e y . T h e
0122360 K E Y F O R M i s e v a l
0122400 u a t e d a n d c o m p a r
0122420 e d t o t h e k e y s i
0122440 n t h e K E Y E D - C L A U
0122460 S E S l e f t t o r i g h
0122500 t ( a n d t o k e y s w
0122520 i t h i n K E Y L I S T s ) .
0122540 A s i n g l e K E Y E D
0122560 - C L A U S E i s \r ( K E Y
0122600 . F O R M S ) o r \r ( K E Y
0122620 L I S T . F O R M S ) \r T
0122640 h e K E Y s a r e n o t
0122660 e v a l u a t e d . I t i
0122700 s a n e r r o r f o r a
0122720 K E Y t o a p p e a r m
0122740 o r e t h a n o n c e i n
0122760 t h e w h o l e e x p r e
0123000 s s i o n . T h i s m e a
0123020 n s t h a t t h e K E Y E
0123040 D - C L A U S E S ( a s i d e
0123060 f r o m t h e o p t i o n
0123100 a l d e f a u l t c l a u s
0123120 e , s e e b e l o w ) a r
0123140 e o r d e r i n d e p e n d
0123160 e n t . T h e f i r s t
0123200 o n e t o m a t c h s e l
0123220 e c t s t h o s e F O R M S
0123240 t o b e e v a l u a t e d
0123260 , v a l u e o f t h e l
0123300 a s t o f w h i c h i s
0123320 r e t u r n e d ( o r N I L
0123340 i f t h e r e w e r e n
0123360 o F O R M S ) . I f t h
0123400 e v a l u e o f t h e K
0123420 E Y F O R M d o e s n o t
0123440 m a t c h a n y o f t h e
0123460 g i v e n K E Y s , N I L
0123500 i s r e t u r n e d . \r T h
0123520 e l a s t o f t h e K E
0123540 Y E D - C L A U S E S m a y
0123560 h a v e a K E Y o f e i
0123600 t h e r T o r O T H E R W
0123620 I S E . I f n o n e o f
0123640 t h e o t h e r k e y s
0123660 m a t c h e s , t h e n t h
0123700 e F O R M S f o l l o w i n
0123720 g t h i s o n e a r e e
0123740 v a l u a t e d . T h i s
0123760 d e f a u l t c l a u s e m
0124000 a y o n l y a p p e a r a
0124020 s t h e l a s t o f t h
0124040 e c l a u s e s . \r ( T Y P E
0124060 C A S E O B J E C T - E X P R
0124100 & R E S T T Y P E - C L A U
0124120 S E S ) \t [ M a c r o ] \r S e l
0124140 e c t s a s e t o f f
0124160 o r m s t o e v a l u a t e
0124200 b a s e d o n t h e t y
0124220 p e o f a n o b j e c t .
0124240 O B J E C T - E X P R i s
0124260 e v a l u a t e d t o p r
0124300 o d u c e a n o b j e c t
0124320 o f s o m e t y p e , a n
0124340 d i t i s t e s t e d a
0124360 g a i n s t e a c h o f t
0124400 h e T Y P E - C L A U S E S
0124420 l e f t t o r i g h t , u
0124440 n t i l o n e m a t c h e s
0124460 . A s i n g l e T Y P E
0124500 - C L A U S E i s \r ( T Y P E
0124520 S P E C . F O R M S ) \r N o
0124540 n e o f t h e T Y P E S P
0124560 E C s a r e e v a l u a t e
0124600 d . T h e f i r s t o n
0124620 e t o m a t c h s e l e c
0124640 t s t h e c o r r e s p o n
0124660 d i n g F O R M S , w h i c
0124700 h a r e e v a l u a t e d
0124720 l e f t t o r i g h t a n
0124740 d r e t u r n t h e v a l
0124760 u e o f t h e l a s t (
0125000 o r N I L i f t h e r e
0125020 w e r e n o F O R M S ) .
0125040 T h e T Y P E S P E C i n
0125060 a n e a r l i e r T Y P E
0125100 - C L A U S E m a y s h a d
0125120 o w a l a t e r o n e ,
0125140 i . e . , t h e T Y P E S P
0125160 E C s a r e a l l o w e d
0125200 t o o v e r l a p i n s e
0125220 l e c t i n g o b j e c t s .
0125240 \r L i k e C A S E , t h e r
0125260 e c a n b e a T o r
0125300 O T H E R W I S E c l a u
0125320 s e w h i c h w i l l a l
0125340 w a y s s u c c e e d i n
0125360 b e i n g s e l e c t e d . \r
0125400 I t e r a t i o n \r 1 \r \r ( D O
0125420 V A R - S E T - S T E P - F O
0125440 R M S E N D - F O R M \r
0125460 & R E S T P R O
0125500 G B O D Y ) \t [ M a c r o ] \r (
0125520 D O * V A R - S E T - S T E
0125540 P - F O R M S E N D - F O R M
0125560 \r & R
0125600 E S T P R O G B O D Y ) \t [ M
0125620 a c r o ] \r T h e s e a r e
0125640 t h e p r i m a r y C o m m
0125660 o n L i s p i t e r a t i o
0125700 n f o r m s . D O b i n
0125720 d s i n p a r a l l e l a
0125740 n d D O * b i n d s s e q
0125760 u e n t i a l l y . T h e
0126000 z e r o o r m o r e V A R
0126020 - S E T - S T E P - F O R M S
0126040 i n d i c a t e t h e n a m
0126060 e s o f l o c a l v a r i
0126100 a b l e s , h o w t h e y
0126120 a r e t o b e i n i t i a
0126140 l i z e d , a n d h o w t
0126160 h e y a r e t o b e r e
0126200 s e t a t e a c h i t e r
0126220 a t i o n . T h e s y n t
0126240 a x o f o n e V A R - S E
0126260 T - S T E P - F O R M i s e
0126300 i t h e r \r ( V A R ) o r \r (
0126320 V A R I N I T - F O R M ) o
0126340 r \r ( V A R I N I T - F O R M
0126360 S T E P - F O R M ) \r V A R
0126400 i s a n ( u n e v a l u a t
0126420 e d ) s y m b o l t h a t
0126440 n a m e s t h e l o c a l
0126460 v a r i a b l e . I f a n
0126500 I N I T - F O R M i s n o
0126520 t g i v e n , t h e n V A
0126540 R i s i n i t i a l i z e d
0126560 t o N I L . \r T h e E N D
0126600 - F O R M h a s a c o n d
0126620 i t i o n a l t e s t t h a
0126640 t t e r m i n a t e s t h e
0126660 i t e r a t i o n a n d m
0126700 a y i n c l u d e z e r o
0126720 o r m o r e r e s u l t e
0126740 x p r e s s i o n s , w h i c
0126760 h a r e e v a l u a t e d
0127000 l e f t t o r i g h t a n
0127020 d t h e l a s t o f w h
0127040 o s e v a l u e s i s r e
0127060 t u r n e d . I t s s y n
0127100 t a x i s \r ( S T O P - T E S
0127120 T - E X P R . R E S U L T -
0127140 E X P R S ) \r S T O P - T E S T
0127160 - E X P R h a l t s t h e
0127200 l o o p i f n o n - N I L
0127220 a n d t h e n b e g i n s
0127240 e v a l u a t i n g t h e R
0127260 E S U L T - E X P R S . I f
0127300 n o R E S U L T - E X P R S
0127320 a r e g i v e n , t h e n
0127340 D O r e t u r n s N I L ,
0127360 o t h e r w i s e i t r e
0127400 t u r n s t h e v a l u e
0127420 o f t h e l a s t R E S U
0127440 L T - E X P R t o b e e v
0127460 a l u a t e d . \r T h e P R O
0127500 G B O D Y l i s t i s a s
0127520 d e s c r i b e d b e l o w
0127540 i n P R O G . \r N o t e :
0127560 t h e s e f u n c t i o n s
0127600 a r e c a l l e d C L : D O
0127620 a n d C L : D O * t o a
0127640 v o i d c o n f l i c t w i
0127660 t h I n t e r l i s p - D ' s
0127700 b u i l t - i n i t e r a t
0127720 i o n o p e r a t o r s . \r (
0127740 D O L I S T ( V A R L I S
0127760 T F O R M [ R E S U L T F O R
0130000 M ] ) \r
0130020 & R E S T P
0130040 R O G B O D Y ) \t [ M a c r o ]
0130060 \r T h i s i s a s i m p l
0130100 e f u n c t i o n t o i t
0130120 e r a t e a l o c a l v a
0130140 r i a b l e b o u n d t o
0130160 t h e s u c c e s s i v e e
0130200 l e m e n t s o f a l i s
0130220 t o v e r a b o d y o f
0130240 f o r m s . V A R i s
0130260 t h e s y m b o l ( u n e v
0130300 a l u a t e d ) n a m i n g
0130320 t h e l o c a l v a r i a b
0130340 l e . L I S T F O R M i s
0130360 e v a l u a t e d t o p r
0130400 o d u c e t h e l i s t o
0130420 f v a l u e s . T h e o
0130440 p t i o n a l s i n g l e R
0130460 E S U L T F O R M m a y c o
0130500 m p u t e a v a l u e t o
0130520 r e t u r n , o t h e r w i
0130540 s e N I L i s r e t u r n
0130560 e d . P R O G B O D Y i s
0130600 d e s c r i b e d b e l o w
0130620 u n d e r P R O G . \r ( D O
0130640 T I M E S ( V A R C O U N
0130660 T F O R M [ R E S U L T F O R
0130700 M ] ) \r
0130720 &
0130740 R E S T P R O G B O D Y ) \t [
0130760 M a c r o ] \r I t e r a t e s
0131000 a l o c a l v a r i a b l e
0131020 t h r o u g h t h e r a n
0131040 g e o f i n t e g e r s f
0131060 r o m z e r o ( i n c l u s
0131100 i v e ) t o t h e r e s u
0131120 l t o f C O U N T F O R M
0131140 ( e x c l u s i v e ) . I f
0131160 C O U N T F O R M i s l e s
0131200 s t h a n o r e q u a l
0131220 t o z e r o , t h e P R O
0131240 G B O D Y f o r m s a r e
0131260 n o t e v a l u a t e d .
0131300 V A R i s t h e s y m b o
0131320 l ( u n e v a l u a t e d )
0131340 n a m i n g t h e l o c a l
0131360 v a r i a b l e . T h e
0131400 o p t i o n a l s i n g l e
0131420 R E S U L T F O R M m a y c
0131440 o m p u t e a v a l u e t
0131460 o r e t u r n , o t h e r w
0131500 i s e N I L i s r e t u r
0131520 n e d . P R O G B O D Y i
0131540 s d e s c r i b e d b e l o
0131560 w u n d e r P R O G . \r M a
0131600 p p i n g \r 1 \r \r ( M A P C A R
0131620 F N & R E S T A R G - M A
0131640 P L I S T S ) \t [ F u n c t i o
0131660 n ] \r F N i s a f u n c t
0131700 i o n o f 251 251 n 271 271 a r g
0131720 u m e n t s . T h e l e n
0131740 g t h o f A R G - M A P L I
0131760 S T S m u s t b e e q u a
0132000 l t o 251 251 n . 271 271 T h e
0132020 f u n c t i o n i s c a l
0132040 l e d w i t h c o r r e s p
0132060 o n d i n g e l e m e n t s
0132100 o f t h e A R G - M A P L I
0132120 S T S u n t i l o n e o r
0132140 a l l o f t h e l i s t
0132160 s e n d . \r N o t e : i n
0132200 C M L t h i s i s c a l l
0132220 e d C L : M A P C A R t o
0132240 a v o i d c o n f l i c t w
0132260 i t h t h e e x i s t i n g
0132300 I n t e r l i s p - D f u n
0132320 c t i o n n a m e . \r T h e
0132340 251 251 P r o g r a m F e a t u r
0132360 e 271 271 \r 1 \r \r ( T A G B O D Y
0132400 & R E S T T A G B O D Y ) \t
0132420 [ S p e c i a l f o r m ] \r N
0132440 o t i m p l e m e n t e d y
0132460 e t . \r T h e s y n t a x o
0132500 f a T A G B O D Y i s a
0132520 l i s t o f z e r o o r
0132540 m o r e e l e m e n t s ,
0132560 e a c h o f w h i c h m a
0132600 y b e e i t h e r a s y
0132620 m b o l , w h i c h i s a
0132640 t a g o r l a b e l , o
0132660 r a l i s t , w h i c h
0132700 i s a n e x p r e s s i o n
0132720 t o b e e v a l u a t e d
0132740 . \r ( P R O G B I N D I N G
0132760 - F O R M S & R E S T P R O
0133000 G B O D Y ) \t [ S p e c i a l
0133020 f o r m ] \r T h e c l a s s i
0133040 c a l P R O G . A s d o
0133060 c u m e n t e d i n t h e
0133100 I n t e r l i s p - D R e f e
0133120 r e n c e M a n u a l . T
0133140 h e f o r m o f t h e P
0133160 R O G B O D Y i s z e r o
0133200 o r m o r e d e c l a r a t
0133220 i o n f o r m s a p p e n d
0133240 e d t o a T A G B O D Y .
0133260 \r ( P R O G * B I N D I N G -
0133300 F O R M S & R E S T P R O G
0133320 B O D Y ) \t [ S p e c i a l f
0133340 o r m ] \r P R O G * i s t h
0133360 e s i m i l a r e x t e n s
0133400 i o n t o P R O G , n a m
0133420 e l y t h e b i n d i n g s
0133440 h a p p e n 251 251 s e q u e n
0133460 t i a l l y 271 271 r a t h e r
0133500 t h a n i n p a r a l l e l
0133520 . \r N o t e : i m p l e m e
0133540 n t e d a s a M A C R O
0133560 i n C M L . \r ( G O T A G )
0133600 \t [ S p e c i a l f o r m ] \r
0133620 T h e c l a s s i c a l G O
0133640 . A s d o c u m e n t e d
0133660 i n t h e I n t e r l i s
0133700 p - D R e f e r e n c e M a
0133720 n u a l . \r D y n a m i c N o
0133740 n l o c a l E x i t s \r 1 \r \r
0133760 ( C A T C H T A G & R E S T
0134000 F O R M S ) \t [ S p e c i a l
0134020 f o r m ] \r C A T C H p r o
0134040 v i d e s a r e t u r n p
0134060 o i n t f o r a n o n - l
0134100 e x i c a l l y i n i t i a t
0134120 e d e x i t f r o m i t s
0134140 s c o p e . I t s e t s
0134160 u p a d y n a m i c s c
0134200 o p i n g f o r T A G . \r (
0134220 T H R O W T A G V A L U E )
0134240 \t [ F u n c t i o n ] \r I f a
0134260 t a n y t i m e d u r i n
0134300 g t h e e x e c u t i o n
0134320 o f a n y o f t h e F O
0134340 R M S o f a C A T C H t
0134360 h e r e i s a c a l l t
0134400 o T H R O W , t h e n t h
0134420 e C A T C H w i l l b e
0134440 e x i t e d w i t h V A L U
0134460 E a s i t s v a l u e ;
0134500 b u t i f n o s u c h T
0134520 H R O W i s e x e c u t e d
0134540 , t h e n t h e n o r m a
0134560 l r e t u r n v a l u e o
0134600 f F O R M S w i l l b e
0134620 t h e v a l u e o f t h e
0134640 C A T C H . T h e f o r
0134660 m s a r e e v a l u a t e d
0134700 a s t h o u g h t h e y
0134720 w e r e i n a P R O G N .
0134740 B o t h C A T C H a n d
0134760 T H R O W 251 251 e v a l u a t
0135000 e t h e i r a r g u m e n t
0135020 s , 271 271 b u t C A T C H d
0135040 o e s s o i n a w a y
0135060 t h a t t h e f i r s t a
0135100 r g u m e n t , t h e t a g
0135120 , i s a v a i l a b l e d
0135140 u r i n g t h e e v a l u a
0135160 t i o n o f t h e s e c o
0135200 n d a r g u m e n t . \r ( * C
0135220 A T C H T A G & R E S T
0135240 F O R M S ) \t [ S p e c i a l
0135260 f o r m ] \r ( * T H R O W T
0135300 A G V A L U E ) \t [ F u n c
0135320 t i o n ] \r * C A T C H a n d
0135340 * T H R O W a r e p r o v
0135360 i d e d f o r c o m p a t i
0135400 b i l i t y w i t h M a c L
0135420 i s p a n d F r a n z L i s
0135440 p . \r ( U N W I N D P R O T E C
0135460 T F O R M - T O - E V A L &
0135500 R E S T \r
0135520
0135540 C
0135560 L E A N U P - F O R M S ) \t [ S
0135600 p e c i a l f o r m ] \r U N W
0135620 I N D P R O T E C T i s v e
0135640 r y s i m i l a r t o I n
0135660 t e r l i s p - D ' s R E S E
0135700 T L S T o r R E S E T S A V
0135720 E . I t w i l l e v a l
0135740 u a t e F O R M - T O - E V A
0135760 L , a n d u p o n e x i t
0136000 w i l l e x e c u t e a l
0136020 l t h e r e m a i n i n g
0136040 C L E A N U P - F O R M S .
0136060 251 251 E x i t i n g 271 271 a l s o
0136100 m e a n s a n a b o r t i
0136120 n g d u e t o R E S E T
0136140 ( o r H A R D R E S E T ) o
0136160 r a n y e r r o r . U
0136200 n f o r t u n a t e l y , t h
0136220 e I n t e r l i s p R E T F
0136240 R O M a n d R E T T O d o
0136260 n o t c u r r e n t l y e
0136300 x e c u t e t h e R E S E T
0136320 S A V E f o r m s u n d e r
0136340 a R E S E T L S T w h e n
0136360 R E T F R O M ' i n g a f
0136400 r a m e h i g h e r i n t
0136420 h e s t a c k t h a n t h
0136440 e o n e w i t h t h e R
0136460 E S E T L S T i n i t ; t
0136500 h i s h a s t h e e f f e
0136520 c t t h a t a T H R O W
0136540 t o a f r a m e h i g h e
0136560 r t h a n a n U N W I N D
0136600 P R O T E C T w i l l c u r
0136620 r e n t l y n o t a c t u a
0136640 l l y d o i t s c l e a n
0136660 u p f o r m s . \r 2 \r \r M a c
0136700 r o s \r 1 \r \r T h e D E F M A
0136720 C R O f o r m ( i t i s
0136740 n o w a p a r t o f I n
0136760 t e r l i s p - D ) s p e c i
0137000 f i e s h o w i t a c c e
0137020 p t s a r g u m e n t s i n
0137040 a s i m i l a r m a n n e
0137060 r t o C o m m o n L i s p
0137100 l a m b d a s . O n e i
0137120 n t e r e s t i n g d i f f e
0137140 r e n c e i s t h a t c o
0137160 m p u t e d k e y w o r d s
0137200 a r e m e a n i n g l e s s
0137220 i n a f o r m t o b e
0137240 m a c r o e x p a n d e d .
0137260 T h e f o l l o w i n g d
0137300 o c u m e n t a t i o n i s
0137320 b a s e d o n t h a t i n
0137340 t h e I n t e r l i s p - D
0137360 R e f e r e n c e M a n u a
0137400 l . \r M a c r o s d e f i n e
0137420 d w i t h t h e f u n c t
0137440 i o n D E F M A C R O a r e
0137460 m u c h l i k e 251 251 c o m
0137500 p u t e d 271 271 m a c r o s (
0137520 s e e t h e I n t e r l i s
0137540 p - D R e f e r e n c e M a
0137560 n u a l s e c t i o n u n d
0137600 e r M a c r o s ) , i n t
0137620 h a t t h e y a r e d e f
0137640 i n e d w i t h a f o r m
0137660 t h a t i s e v a l u a t
0137700 e d , a n d t h e r e s u
0137720 l t o f t h e e v a l u a
0137740 t i o n i s u s e d ( e v
0137760 a l u a t e d o r c o m p i
0140000 l e d ) i n p l a c e o f
0140020 t h e m a c r o c a l l .
0140040 H o w e v e r , D E F M A C
0140060 R O m a c r o s s u p p o r
0140100 t c o m p l e x a r g u m e
0140120 n t l i s t s w i t h o p
0140140 t i o n a l a r g u m e n t s
0140160 , d e f a u l t v a l u e s
0140200 , a n d k e y w o r d a r
0140220 g u m e n t s . I n a d d
0140240 i t i o n , a r g u m e n t
0140260 l i s t d e s t r u c t u r i
0140300 n g i s s u p p o r t e d .
0140320 \r ( D E F M A C R O N A M E
0140340 A R G S F O R M ) \t [ S p e c
0140360 i a l f o r m ] \r D e f i n e
0140400 s N A M E a s a m a c r
0140420 o w i t h t h e a r g u m
0140440 e n t s A R G S a n d t h
0140460 e d e f i n i t i o n f o r
0140500 m F O R M ( N A M E , A R
0140520 G S , a n d F O R M a r e
0140540 u n e v a l u a t e d ) .
0140560 I f a n e x p r e s s i o n
0140600 s t a r t i n g w i t h N
0140620 A M E i s e v a l u a t e d
0140640 o r c o m p i l e d , a r
0140660 g u m e n t s a r e b o u n
0140700 d a c c o r d i n g t o A
0140720 R G S , F O R M i s e v a
0140740 l u a t e d , a n d t h e
0140760 v a l u e o f F O R M i s
0141000 e v a l u a t e d o r c o
0141020 m p i l e d i n s t e a d .
0141040 T h e i n t e r p r e t a t
0141060 i o n o f A R G S i s d
0141100 e s c r i b e d b e l o w . \r
0141120 N o t e : u n l i k e t h
0141140 e f u n c t i o n D E F M A
0141160 C R O i n C o m m o n L i
0141200 s p , t h i s f u n c t i o
0141220 n c u r r e n t l y d o e s
0141240 n o t r e m o v e a n y
0141260 f u n c t i o n d e f i n i t
0141300 i o n f o r N A M E . \r A R
0141320 G S i s a l i s t t h a
0141340 t d e f i n e s h o w t h
0141360 e a r g u m e n t l i s t
0141400 p a s s e d t o t h e m a
0141420 c r o N A M E i s i n t e
0141440 r p r e t e d . S p e c i f
0141460 i c a l l y , A R G S d e f
0141500 i n e s a s e t o f v a
0141520