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