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