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