$ od -c -N 50000 [Erinyes]<LispManual>CompilerIssues.im!4
0000000 \r \r \r { B e g i n S u b S e c
0000020 G l o b a l V a r i a b l e
0000040 s } \r { T i t l e G l o b a l
0000060 V a r i a b l e s } \r { T e x
0000100 t \r \r { i n d e x * P R I M A
0000120 R Y * G l o b a l v a r i a
0000140 b l e s } \r { i n d e x * P R
0000160 I M A R Y * G l o b a l v a r
0000200 s } \r \r V a r i a b l e s t h
0000220 a t a p p e a r o n t h e
0000240 l i s t { i n d e x * P R
0000260 I M A R Y * G L O B A L V A R
0000300 S V a r } { v a r G L O B A
0000320 L V A R S } , o r h a v e
0000340 t h e p r o p e r t y { p r
0000360 o p G L O B A L V A R } { i n
0000400 d e x * P R I M A R Y * G L
0000420 O B A L V A R P r o p } w i
0000440 t h v a l u e { l i s p T
0000460 } , o r a r e d e c l a r
0000500 e d w i t h t h e { f i l
0000520 e c o m G L O B A L V A R S }
0000540 f i l e p a c k a g e c o
0000560 m m a n d ( { P a g e R e f
0000600 F i l e C o m G L O B A L V A
0000620 R S } ) , { i n d e x G L O B
0000640 A L V A R S F i l e c o m }
0000660 a r e c a l l e d g l o b a
0000700 l v a r i a b l e s . S u
0000720 c h v a r i a b l e s a r e
0000740 a l w a y s a c c e s s e d
0000760 t h r o u g h t h e i r t
0001000 o p l e v e l v a l u e w
0001020 h e n t h e y a r e u s e
0001040 d f r e e l y i n a c o
0001060 m p i l e d f u n c t i o n .
0001100 I n o t h e r w o r d s
0001120 , a r e f e r e n c e t o
0001140 t h e v a l u e o f a
0001160 g l o b a l v a r i a b l e
0001200 i s e q u i v a l e n t t o
0001220 c a l l i n g { f n G E T
0001240 T O P V A L } ( { P a g e R e
0001260 f F n G E T T O P V A L } )
0001300 o n t h e v a r i a b l e
0001320 , r e g a r d l e s s o f
0001340 w h e t h e r o r n o t i
0001360 t i s b o u n d i n t h
0001400 e c u r r e n t a c c e s s
0001420 c h a i n . S i m i l a r
0001440 l y , { l i s p ( S E T Q
0001460 { a r g V A R I A B L E } {
0001500 a r g V A L U E } ) } w i l
0001520 l c o m p i l e a s { l i
0001540 s p ( S E T T O P V A L ( Q
0001560 U O T E { a r g V A R I A B
0001600 L E } ) { a r g V A L U E }
0001620 ) } . \r \r A l l s y s t e m
0001640 p a r a m e t e r s , u n l e
0001660 s s o t h e r w i s e s p e
0001700 c i f i e d , a r e d e c l
0001720 a r e d a s g l o b a l v
0001740 a r i a b l e s . T h u s ,
0001760 { i t r e b i n d i n g }
0002000 t h e s e v a r i a b l e s
0002020 i n a d e e p b o u n d
0002040 s y s t e m ( l i k e I n t
0002060 e r l i s p - D ) w i l l n
0002100 o t a f f e c t t h e b e
0002120 h a v i o r o f t h e s y
0002140 s t e m : i n s t e a d , t
0002160 h e v a r i a b l e s m u s
0002200 t b e { i t r e s e t }
0002220 t o t h e i r n e w v a l
0002240 u e s , a n d i f t h e y
0002260 a r e t o b e r e s t o
0002300 r e d t o t h e i r o r i
0002320 g i n a l v a l u e s , r e
0002340 s e t a g a i n . F o r
0002360 e x a m p l e , t h e u s e
0002400 r m i g h t w r i t e \r \r {
0002420 L i s p c o d e \r ( S E T Q {
0002440 a r g G L O B A L V A R I A B
0002460 L E } { a r g N E W V A L U
0002500 E } ) \r { a r g F O R M } \r (
0002520 S E T Q { a r g G L O B A L
0002540 V A R I A B L E } { a r g O
0002560 L D V A L U E } ) } \r \r \r { n o
0002600 t e s h o u l d m o r e c
0002620 l e a r l y e x p l a i n d
0002640 i f f e r e n c e b e t w e e
0002660 n r e b i n d i n g a n d
0002700 r e s e t t i n g } \r \r N o t e
0002720 t h a t i n t h i s c a
0002740 s e , i f a n e r r o r
0002760 o c c u r r e d d u r i n g
0003000 t h e e v a l u a t i o n o
0003020 f { a r g F O R M } , o r
0003040 a { i n d e x c o n t r o
0003060 l - D ( I n t e r r u p t C
0003100 h a r a c t e r ) } c o n t r o
0003120 l - D w a s t y p e d , t
0003140 h e g l o b a l v a r i a b
0003160 l e w o u l d n o t b e
0003200 r e s t o r e d t o i t s
0003220 o r i g i n a l v a l u e .
0003240 T h e f u n c t i o n { f
0003260 n R E S E T V A R } ( { P a
0003300 g e R e f F n R E S E T V A
0003320 R } ) { i n d e x R E S E T V
0003340 A R F n } p r o v i d e s
0003360 a c o n v e n i e n t w a y
0003400 o f r e s e t t i n g g l
0003420 o b a l v a r i a b l e s { i
0003440 n d e x g l o b a l v a r i
0003460 a b l e s } i n s u c h a
0003500 w a y t h a t t h e i r
0003520 v a l u e s a r e r e s t o
0003540 r e d e v e n i f a n e
0003560 r r o r o c c u r r e d o r
0003600 c o n t r o l - D i s t y
0003620 p e d . \r \r N o t e : T h e
0003640 v a r i a b l e s t h a t
0003660 a g i v e n f u n c t i o n
0003700 a c c e s s e s a s g l o
0003720 b a l v a r i a b l e s c a
0003740 n b e d e t e r m i n e d
0003760 b y u s i n g t h e f u n
0004000 c t i o n { f n C A L L S }
0004020 ( { P a g e R e f F n C A
0004040 L L S } ) . \r \r } { E n d S u
0004060 b S e c G l o b a l V a r i
0004100 a b l e s } \r \r \r \r \r \r { B e g
0004120 i n S u b S e c L o c a l
0004140 V a r i a b l e s a n d S p
0004160 e c i a l V a r i a b l e s }
0004200 \r { T i t l e L o c a l V a
0004220 r i a b l e s a n d S p e c
0004240 i a l V a r i a b l e s } \r {
0004260 T e x t \r \r { i n d e x * P R
0004300 I M A R Y * S p e c i a l v
0004320 a r i a b l e s } \r { i n d e x
0004340 * P R I M A R Y * L o c a l
0004360 v a r i a b l e s } \r { i n d
0004400 e x * P R I M A R Y * L o c
0004420 a l v a r s } \r { i n d e x *
0004440 P R I M A R Y * S p e c v a r
0004460 s } \r \r I n n o r m a l c o
0004500 m p i l e d a n d i n t e r
0004520 p r e t e d c o d e , a l l
0004540 v a r i a b l e b i n d i n
0004560 g s a r e a c c e s s i b l
0004600 e b y l o w e r l e v e l
0004620 f u n c t i o n s b e c a u
0004640 s e t h e v a r i a b l e '
0004660 s n a m e i s a s s o c i
0004700 a t e d w i t h i t s v a
0004720 l u e . W e c a l l s u
0004740 c h v a r i a b l e s { i t
0004760 s p e c i a l } v a r i a b
0005000 l e s , o r s p e c v a r s
0005020 . A s m e n t i o n e d
0005040 e a r l i e r , t h e b l o
0005060 c k c o m p i l e r n o r m
0005100 a l l y d o e s { i t n o
0005120 t } a s s o c i a t e n a m
0005140 e s w i t h v a r i a b l e
0005160 v a l u e s . S u c h u
0005200 n n a m e d v a r i a b l e s
0005220 a r e n o t a c c e s s i
0005240 b l e f r o m o u t s i d e
0005260 t h e f u n c t i o n w h
0005300 i c h b i n d s t h e m a
0005320 n d a r e t h e r e f o r e
0005340 { i t l o c a l } t o t
0005360 h a t f u n c t i o n . W
0005400 e c a l l s u c h u n n a
0005420 m e d v a r i a b l e s l o
0005440 c a l v a r i a b l e s , o
0005460 r l o c a l v a r s . \r \r \r T
0005500 h e t i m e e c o n o m i e
0005520 s o f l o c a l v a r i a
0005540 b l e s c a n b e a c h i
0005560 e v e d w i t h o u t b l o
0005600 c k c o m p i l i n g b y
0005620 u s e o f d e c l a r a t i
0005640 o n s . U s i n g l o c a
0005660 l v a r i a b l e s w i l l
0005700 i n c r e a s e t h e s p
0005720 e e d o f c o m p i l e d
0005740 c o d e ; t h e p r i c e
0005760 i s t h e w o r k o f w
0006000 r i t i n g t h e n e c e s
0006020 s a r y s p e c v a r d e c
0006040 l a r a t i o n s f o r t h
0006060 o s e v a r i a b l e s w h
0006100 i c h n e e d t o b e a
0006120 c c e s s e d f r o m o u t
0006140 s i d e t h e b l o c k . \r
0006160 \r \r { v a r L O C A L V A R S
0006200 } { i n d e x * P R I M A R Y
0006220 * L O C A L V A R S V a r }
0006240 a n d { v a r S P E C V A
0006260 R S } { i n d e x * P R I M A
0006300 R Y * S P E C V A R S V a r
0006320 } a r e v a r i a b l e s
0006340 t h a t a f f e c t c o m p
0006360 i l a t i o n . D u r i n g
0006400 r e g u l a r c o m p i l a
0006420 t i o n , { v a r S P E C V
0006440 A R S } i s n o r m a l l y
0006460 { l i s p T } , a n d {
0006500 v a r L O C A L V A R S } i
0006520 s { l i s p N I L } o r
0006540 a l i s t . T h i s c o
0006560 n f i g u r a t i o n c a u s
0006600 e s a l l v a r i a b l e s
0006620 b o u n d i n t h e f u
0006640 n c t i o n s b e i n g c o
0006660 m p i l e d t o b e t r e
0006700 a t e d a s s p e c i a l
0006720 { i t e x c e p t } t h o s
0006740 e t h a t a p p e a r o n
0006760 { v a r L O C A L V A R S }
0007000 . D u r i n g b l o c k
0007020 c o m p i l a t i o n , { v a
0007040 r L O C A L V A R S } i s
0007060 n o r m a l l y { l i s p T
0007100 } a n d { v a r S P E C V
0007120 A R S } i s { l i s p N I
0007140 L } o r a l i s t . A
0007160 l l v a r i a b l e s a r e
0007200 t h e n t r e a t e d a s
0007220 l o c a l { i t e x c e p
0007240 t } t h o s e t h a t a p
0007260 p e a r o n { v a r S P E
0007300 C V A R S } . \r \r \r D e c l a r
0007320 a t i o n s t o s e t { v
0007340 a r L O C A L V A R S } a n
0007360 d { v a r S P E C V A R S }
0007400 t o o t h e r v a l u e s
0007420 , a n d t h e r e f o r e
0007440 a f f e c t h o w v a r i a
0007460 b l e s a r e t r e a t e d
0007500 , m a y b e u s e d a t
0007520 s e v e r a l l e v e l s
0007540 i n t h e c o m p i l a t i
0007560 o n p r o c e s s w i t h
0007600 v a r y i n g s c o p e . \r \r
0007620 ( 1 ) T h e d e c l a r a
0007640 t i o n s m a y b e i n c
0007660 l u d e d i n t h e f i l
0007700 e c o m s o f a f i l e ,
0007720 b y u s i n g t h e { f
0007740 i l e c o m L O C A L V A R S
0007760 } a n d { f i l e c o m S
0010000 P E C V A R S } f i l e p a
0010020 c k a g e c o m m a n d s (
0010040 { P a g e R e f F i l e C o m
0010060 L O C A L V A R S } ) . T
0010100 h e s c o p e o f t h e
0010120 d e c l a r a t i o n i s t
0010140 h e n t h e e n t i r e f
0010160 i l e : \r \r { l i s p c o d e \r
0010200 { e l l i p s i s } ( L O C A
0010220 L V A R S . T ) ( S P E C
0010240 V A R S X Y ) { e l l i p
0010260 s i s } } \r \r \r ( 2 ) T h e
0010300 d e c l a r a t i o n s m a
0010320 y b e i n c l u d e d i n
0010340 b l o c k d e c l a r a t i
0010360 o n s ; t h e s c o p e i
0010400 s t h e n t h e b l o c k
0010420 , e . g . , \r \r { l i s p c o
0010440 d e ( B L O C K S ( ( F O O
0010460 B L O C K F O O F I E ( S
0010500 P E C V A R S . T ) ( L O
0010520 C A L V A R S X ) ) ) } \r \r \r
0010540 ( 3 ) T h e d e c l a r a
0010560 t i o n s m a y a l s o a
0010600 p p e a r i n i n d i v i d
0010620 u a l f u n c t i o n s , o
0010640 r i n { f n P R O G } ' s
0010660 o r { l i s p L A M B D A
0010700 } ' s w i t h i n a f u n
0010720 c t i o n , u s i n g t h e
0010740 { f n D E C L A R E } { i n
0010760 d e x * P R I M A R Y * D E
0011000 C L A R E F n } f u n c t i
0011020 o n . I n t h i s c a s
0011040 e , t h e s c o p e o f
0011060 t h e d e c l a r a t i o n
0011100 i s t h e f u n c t i o n
0011120 o r t h e { f n P R O G }
0011140 o r { l i s p L A M B D A
0011160 } i n w h i c h i t a p
0011200 p e a r s . { v a r L O C
0011220 A L V A R S } a n d { v a r
0011240 S P E C V A R S } d e c l a
0011260 r a t i o n s m u s t a p p
0011300 e a r i m m e d i a t e l y
0011320 a f t e r t h e v a r i a b
0011340 l e l i s t i n t h e f
0011360 u n c t i o n , { f n P R O
0011400 G } , o r { l i s p L A M
0011420 B D A } , b u t i n t e r v
0011440 e n i n g c o m m e n t s a
0011460 r e p e r m i t t e d . \r F o
0011500 r e x a m p l e : \r \r \r { l
0011520 i s p c o d e \r ( D E F I N E Q
0011540 ( ( F O O \r
0011560 ( L A M B D A ( X Y ) \r
0011600 ( D E C L
0011620 A R E ( L O C A L V A R S Y
0011640 ) ) \r
0011660 ( P R O G ( X Y Z ) \r
0011700
0011720 ( D E C L A R E ( L O C A L V
0011740 A R S X ) ) \r
0011760 . . . ] }
0012000 \r \r \r I f t h e a b o v e
0012020 f u n c t i o n i s c o m p
0012040 i l e d ( n o n - b l o c k )
0012060 , t h e o u t e r { l i s
0012100 p X } w i l l b e s p e
0012120 c i a l , t h e { l i s p
0012140 X } b o u n d i n t h e
0012160 { f n P R O G } w i l l b
0012200 e l o c a l , a n d b o t
0012220 h b i n d i n g s o f { l
0012240 i s p Y } w i l l b e l
0012260 o c a l . \r \r \r D e c l a r a t
0012300 i o n s f o r { v a r L O
0012320 C A L V A R S } a n d { v a
0012340 r S P E C V A R S } c a n
0012360 b e u s e d i n t w o w
0012400 a y s : e i t h e r t o c
0012420 a u s e v a r i a b l e s t
0012440 o b e t r e a t e d t h e
0012460 s a m e w h e t h e r t h
0012500 e f u n c t i o n ( s ) a r
0012520 e b l o c k c o m p i l e d
0012540 o r c o m p i l e d n o r
0012560 m a l l y , o r t o a f f
0012600 e c t o n e c o m p i l a t
0012620 i o n m o d e w h i l e n
0012640 o t a f f e c t i n g t h e
0012660 d e f a u l t i n t h e
0012700 o t h e r m o d e . F o r
0012720 e x a m p l e : \r \r { l i s p
0012740 c o d e \r ( L A M B D A ( X
0012760 Y ) \r ( D E C
0013000 L A R E ( S P E C V A R S .
0013020 T ) ) \r ( P
0013040 R O G ( Z ) . . . ] } \r \r
0013060 \r w i l l c a u s e { l i s
0013100 p X } , { l i s p Y } ,
0013120 a n d { l i s p Z } t o
0013140 b e s p e c v a r s f o r
0013160 b o t h b l o c k a n d n
0013200 o r m a l c o m p i l a t i o
0013220 n w h i l e \r \r { l i s p c o
0013240 d e \r ( L A M B D A ( X Y )
0013260 \r ( D E C L A
0013300 R E ( S P E C V A R S X ) )
0013320 \r . . . ] }
0013340 \r \r w i l l m a k e { l i s
0013360 p X } a s p e c v a r w
0013400 h e n b l o c k c o m p i l
0013420 i n g , b u t w h e n r e
0013440 g u l a r c o m p i l i n g
0013460 t h e d e c l a r a t i o n
0013500 w i l l h a v e n o e f f
0013520 e c t , b e c a u s e t h e
0013540 d e f a u l t v a l u e o
0013560 f s p e c v a r s w o u l d
0013600 b e { l i s p T } , a n
0013620 d t h e r e f o r e { i t
0013640 b o t h } { l i s p X } a
0013660 n d { l i s p Y } w i l l
0013700 b e s p e c v a r s b y
0013720 d e f a u l t . \r \r \r A l t h o
0013740 u g h { v a r L O C A L V A
0013760 R S } a n d { v a r S P E
0014000 C V A R S } d e c l a r a t i
0014020 o n s h a v e t h e s a m
0014040 e f o r m a s o t h e r
0014060 c o m p o n e n t s o f b l
0014100 o c k d e c l a r a t i o n s
0014120 s u c h a s { l i s p (
0014140 L I N K F N S . T ) } , t
0014160 h e i r o p e r a t i o n i
0014200 s s o m e w h a t d i f f e
0014220 r e n t b e c a u s e t h e
0014240 t w o v a r i a b l e s a
0014260 r e n o t i n d e p e n d e
0014300 n t . { l i s p ( S P E C
0014320 V A R S . T ) } w i l l
0014340 c a u s e { v a r S P E C V
0014360 A R S } t o b e s e t t
0014400 o { l i s p T } , a n d
0014420 { v a r L O C A L V A R S }
0014440 t o b e s e t t o { l i
0014460 s p N I L } . \r { l i s p (
0014500 S P E C V A R S V 1 V 2 .
0014520 . . ) } w i l l h a v e
0014540 { i t n o } e f f e c t i
0014560 f t h e v a l u e o f {
0014600 v a r S P E C V A R S } i s
0014620 { l i s p T } , b u t i
0014640 f i t i s a l i s t (
0014660 o r { l i s p N I L } ) ,
0014700 { v a r S P E C V A R S } w
0014720 i l l b e s e t t o t h
0014740 e u n i o n o f i t s p
0014760 r i o r v a l u e a n d {
0015000 l i s p ( V 1 V 2 . . . )
0015020 } . T h e o p e r a t i o
0015040 n o f { v a r L O C A L V
0015060 A R S } i s a n a l o g o u
0015100 s . T h u s , t o a f f
0015120 e c t b o t h m o d e s o
0015140 f c o m p i l a t i o n o n
0015160 e o f t h e t w o ( { v
0015200 a r L O C A L V A R S } o r
0015220 { v a r S P E C V A R S } )
0015240 m u s t b e d e c l a r e
0015260 d { l i s p T } b e f o r
0015300 e s p e c i f y i n g a l
0015320 i s t f o r t h e o t h e
0015340 r . \r \r N o t e : T h e v
0015360 a r i a b l e s t h a t a
0015400 g i v e n f u n c t i o n b
0015420 i n d s a s l o c a l v a
0015440 r i a b l e s o r a c c e s
0015460 s e s a s s p e c i a l v
0015500 a r i a b l e s c a n b e
0015520 d e t e r m i n e d b y u s
0015540 i n g t h e f u n c t i o n
0015560 { f n C A L L S } ( { P a
0015600 g e R e f F n C A L L S } )
0015620 . \r \r N o t e : { v a r L
0015640 O C A L V A R S } a n d { v
0015660 a r S P E C V A R S } d e c
0015700 l a r a t i o n s a f f e c t
0015720 t h e c o m p i l a t i o n
0015740 o f l o c a l v a r i a b
0015760 l e s w i t h i n a f u n
0016000 c t i o n , b u t t h e a
0016020 r g u m e n t s t o f u n c
0016040 t i o n s a r e a l w a y s
0016060 a c c e s s a b l e a s s
0016100 p e c v a r s . T h i s c
0016120 a n b e c h a n g e d b y
0016140 r e - d e f i n i n g t h e
0016160 f o l l o w i n g f u n c t
0016200 i o n : \r \r { F n D e f { N a
0016220 m e D A S S E M . S A V E L O
0016240 C A L V A R S } { A r g s F
0016260 N } \r { T e x t \r T h i s f u
0016300 n c t i o n i s c a l l e d
0016320 b y t h e c o m p i l e r
0016340 t o d e t e r m i n e w h
0016360 e t h e r a r g u m e n t i
0016400 n f o r m a t i o n f o r {
0016420 a r g F N } s h o u l d b
0016440 e w r i t t e n o n t h e
0016460 c o m p i l e d f i l e f
0016500 o r { a r g F N } . I f
0016520 i t r e t u r n s { l i s
0016540 p N I L } , t h e a r g u
0016560 m e n t i n f o r m a t i o n
0016600 i s { i t n o t } s a v
0016620 e d , a n d t h e f u n c
0016640 t i o n i s s t o r e d w
0016660 i t h a r g u m e n t s { l
0016700 i s p U } , { l i s p V }
0016720 , { l i s p W } , e t c
0016740 i n s t e a d o f t h e o
0016760 r i g i n a l s . \r \r I n i t i
0017000 a l l y , { f n D A S S E M
0017020 . S A V E L O C A L V A R S }
0017040 i s d e f i n e d t o r e
0017060 t u r n { l i s p T } .
0017100 { l i s p ( M O V D ' N I L
0017120 L ' D A S S E M . S A V E L O
0017140 C A L V A R S ) } c a u s e s
0017160 t h e c o m p i l e r t o
0017200 r e t a i n n o l o c a l
0017220 v a r i a b l e o r a r g
0017240 u m e n t n a m e s . A l
0017260 t e r n a t i v e l y , { f n
0017300 D A S S E M . S A V E L O C A
0017320 L V A R S } c o u l d b e
0017340 r e d e f i n e d a s a m
0017360 o r e c o m p l e x p r e d
0017400 i c a t e , t o a l l o w
0017420 f i n e r d i s c r i m i n a
0017440 t i o n . \r } } \r \r \r } { E n d
0017460 S u b S e c L o c a l V a
0017500 r i a b l e s a n d S p e c
0017520 i a l V a r i a b l e s } \r \r
0017540 \r \r \r \r { B e g i n S u b S e
0017560 c C o n s t a n t s } \r { T i
0017600 t l e C o n s t a n t s } \r {
0017620 T e x t \r \r { i n d e x * P R
0017640 I M A R Y * C o n s t a n t s
0017660 i n c o m p i l e d c o d
0017700 e } \r \r I n t e r l i s p a l
0017720 l o w s t h e e x p r e s s
0017740 i o n o f c o n s t r u c t
0017760 i o n s w h i c h a r e i
0020000 n t e n d e d t o b e d e
0020020 s c r i p t i o n o f t h e
0020040 i r c o n s t a n t v a l u
0020060 e s . T h e f o l l o w i
0020100 n g f u n c t i o n s a r e
0020120 u s e d t o d e f i n e
0020140 c o n s t a n t v a l u e s .
0020160 T h e f u n c t i o n {
0020200 f n S E L E C T C } ( { P a
0020220 g e R e f F n S E L E C T C
0020240 } ) p r o v i d e s a m e
0020260 c h a n i s m f o r c o m p
0020300 a r i n g a v a l u e t o
0020320 a n u m b e r o f c o n
0020340 s t a n t s . \r \r \r { F n D e f
0020360 { N a m e C O N S T A N T }
0020400 { A r g s X } \r { T e x t \r
0020420 T h i s f u n c t i o n e n
0020440 a b l e s t h e u s e r t
0020460 o d e f i n e t h a t t h
0020500 e e x p r e s s i o n { a r
0020520 g X } s h o u l d b e t
0020540 r e a t e d a s a " c o n
0020560 s t a n t " v a l u e . W
0020600 h e n { f n C O N S T A N T
0020620 } i s i n t e r p r e t e d
0020640 , { a r g X } i s e v a
0020660 l u t e d e a c h t i m e
0020700 i t i s e n c o u n t e r e
0020720 d . I f t h e { f n C
0020740 O N S T A N T } f o r m i s
0020760 c o m p i l e d , h o w e v
0021000 e r , t h e e x p r e s s i
0021020 o n w i l l b e e v a l u
0021040 a t e d o n l y o n c e . \r
0021060 \r I f t h e v a l u e o f
0021100 { a r g X } h a s a r
0021120 e a d a b l e p r i n t n a
0021140 m e , t h e n i t w i l l
0021160 b e e v a l u a t e d a t
0021200 c o m p i l e - t i m e , a
0021220 n d t h e v a l u e w i l
0021240 l b e s a v e d a s a
0021260 l i t e r a l i n t h e c
0021300 o m p i l e d f u n c t i o n
0021320 ' s d e f i n i t i o n , a
0021340 s i f { l i s p ( Q U O T
0021360 E { a r g V A L U E - O F -
0021400 E X P R E S S I O N } ) } h a
0021420 d a p p e a r e d i n s t e
0021440 a d o f { l i s p ( C O N
0021460 S T A N T { a r g E X P R E
0021500 S S I O N } ) } . \r \r I f t h
0021520 e v a l u e o f { a r g
0021540 X } d o e s n o t h a v e
0021560 a r e a d a b l e p r i n
0021600 t n a m e , t h e n t h e
0021620 e x p r e s s i o n { a r g
0021640 X } i t s e l f w i l l
0021660 b e s a v e d w i t h t h
0021700 e f u n c t i o n , a n d
0021720 i t w i l l b e e v a l u
0021740 a t e d w h e n t h e f u
0021760 n c t i o n i s f i r s t
0022000 l o a d e d . T h e v a l
0022020 u e w i l l t h e n b e
0022040 s t o r e d i n t h e f u
0022060 n c t i o n ' s l i t e r a l
0022100 s , a n d w i l l b e r
0022120 e t r i e v e d o n f u t u
0022140 r e r e f e r e n c e s . \r }
0022160 } \r \r \r I f a u s e r p r
0022200 o g r a m n e e d e d a l
0022220 i s t o f 3 0 { l i s p
0022240 N I L } s , t h e u s e r
0022260 c o u l d s p e c i f y { l
0022300 i s p ( C O N S T A N T ( t
0022320 o 3 0 c o l l e c t N I L
0022340 ) ) } i n s t e a d o f {
0022360 l i s p ( Q U O T E ( N I L
0022400 N I L { e l l i p s i s } )
0022420 ) } . T h e f o r m e r
0022440 i s m o r e c o n c i s e
0022460 a n d d i s p l a y s t h e
0022500 i m p o r t a n t p a r a m
0022520 e t e r m u c h m o r e d
0022540 i r e c t l y t h a n t h e
0022560 l a t t e r . \r \r { f n C O
0022600 N S T A N T } c a n a l s o
0022620 b e u s e d t o d e n o
0022640 t e v a l u e s t h a t c
0022660 a n n o t b e q u o t e d
0022700 d i r e c t l y , s u c h a
0022720 s { l i s p ( C O N S T A N
0022740 T ( P A C K N I L ) ) } ,
0022760 { l i s p ( C O N S T A N T
0023000 ( A R R A Y 1 0 ) ) } . I
0023020 t i s a l s o u s e f u l
0023040 t o p a r a m e t e r i z e
0023060 q u a n t i t i e s t h a t
0023100 a r e c o n s t a n t a t
0023120 r u n t i m e b u t m a
0023140 y d i f f e r a t c o m p
0023160 i l e t i m e , e . g . ,
0023200 { l i s p ( C O N S T A N T
0023220 B I T S P E R W O R D ) } i n
0023240 a p r o g r a m i s e x
0023260 a c t l y e q u i v a l e n t
0023300 t o 3 6 , i f t h e v
0023320 a r i a b l e { l i s p B I
0023340 T S P E R W O R D } i s b o
0023360 u n d t o 3 6 w h e n t
0023400 h e { f n C O N S T A N T }
0023420 e x p r e s s i o n i s e
0023440 v a l u a t e d a t c o m p
0023460 i l e t i m e . \r \r \r W h e r
0023500 e a s t h e f u n c t i o n
0023520 { f n C O N S T A N T } a
0023540 t t e m p t s t o e v a l u
0023560 a t e t h e e x p r e s s i
0023600 o n a s s o o n a s p o
0023620 s s i b l e ( c o m p i l e -
0023640 t i m e , l o a d - t i m e ,
0023660 o r f i r s t - r u n - t i
0023700 m e ) , o t h e r o p t i o
0023720 n s a r e a v a i l a b l e
0023740 , u s i n g t h e f o l o
0023760 w i n g t w o f u n c t i o
0024000 n : \r \r { F n D e f { N a m e
0024020 L O A D T I M E C O N S T A N
0024040 T } { A r g s X } \r { T e x
0024060 t \r S i m i l a r t o { f n
0024100 C O N S T A N T } , e x c e
0024120 p t t h a t t h e e v a l
0024140 u a t i o n o f { a r g X
0024160 } i s d e f e r r e d u n
0024200 t i l t h e c o m p i l e d
0024220 c o d e f o r t h e c o
0024240 n t a i n i n g f u n c t i o
0024260 n i s l o a d e d i n .
0024300 F o r e x a m p l e , { l
0024320 i s p ( L O A D T I M E C O N
0024340 S T A N T ( D A T E ) ) } w
0024360 i l l r e t u r n t h e d
0024400 a t e t h e c o d e w a s
0024420 l o a d e d . I f { f n
0024440 L O A D T I M E C O N S T A N
0024460 T } i s i n t e r p r e t e
0024500 d , i t m e r e l y r e t
0024520 u r n s t h e v a l u e o
0024540 f { a r g X } . \r } } \r \r {
0024560 F n D e f { N a m e D E F E
0024600 R R E D C O N S T A N T } { A
0024620 r g s X } \r { T e x t \r S i m
0024640 i l a r t o { f n C O N S
0024660 T A N T } , e x c e p t t h
0024700 a t t h e e v a l u a t i o
0024720 n o f { a r g X } i s
0024740 a l w a y s d e f e r r e d
0024760 u n t i l t h e c o m p i l
0025000 e d f u n c t i o n i s f
0025020 i r s t r u n . T h i s
0025040 i s u s e f u l w h e n t
0025060 h e s t o r a g e f o r t
0025100 h e c o n s t a n t i s e
0025120 x c e s s i v e s o t h a t
0025140 i t s h o u l d n ' t b e
0025160 a l l o c a t e d u n t i l
0025200 ( u n l e s s ) t h e f u
0025220 n c t i o n i s a c t u a l
0025240 l y i n v o k e d . I f
0025260 { f n D E F E R R E D C O N S
0025300 T A N T } i s i n t e r p r
0025320 e t e d , i t m e r e l y
0025340 r e t u r n s t h e v a l u
0025360 e o f { a r g X } . \r } }
0025400 \r \r \r \r { F n D e f { N a m e
0025420 C O N S T A N T S } { A r g
0025440 s V A R { s u b 1 } V A R
0025460 { s u b 2 } { e l l i p s i
0025500 s } V A R { s u b N } } \r {
0025520 T y p e N O S P R E A D N L
0025540 A M B D A } \r { T e x t \r D e f
0025560 i n e s { a r g V A R { s u
0025600 b 1 } } , { e l l i p s i s
0025620 } { a r g V A R { s u b N
0025640 } } ( u n e v a l u a t e d )
0025660 t o b e c o m p i l e - t
0025700 i m e c o n s t a n t s .
0025720 W h e n e v e r t h e c o m
0025740 p i l e r e n c o u n t e r s
0025760 a ( f r e e ) r e f e r e
0026000 n c e t o o n e o f t h
0026020 e s e c o n s t a n t s , i
0026040 t w i l l c o m p i l e t
0026060 h e f o r m { l i s p ( C
0026100 O N S T A N T { a r g V A R
0026120 { s u b i } } ) } i n s t e
0026140 a d . \r \r I f { a r g V A R
0026160 { s u b i } } i s a l i
0026200 s t o f t h e f o r m {
0026220 l i s p ( { a r g V A R }
0026240 { a r g F O R M } ) } , a
0026260 f r e e r e f e r e n c e t
0026300 o t h e v a r i a b l e w
0026320 i l l c o m p i l e a s {
0026340 l i s p ( C O N S T A N T {
0026360 a r g F O R M } ) } . \r \r T h
0026400 e c o m p i l e r p r i n t
0026420 s a w a r n i n g i f u
0026440 s e r c o d e a t t e m p t
0026460 s t o b i n d a v a r i
0026500 a b l e p r e v i o u s l y
0026520 d e c l a r e d a s a c o
0026540 n s t a n t . \r \r C o n s t a n
0026560 t s c a n b e s a v e d
0026600 u s i n g t h e { f i l e c
0026620 o m C O N S T A N T S } f i
0026640 l e p a c k a g e c o m m a
0026660 n d ( { P a g e R e f F i l
0026700 e C o m C O N S T A N T S } )
0026720 . \r } } \r \r \r \r } { E n d S u
0026740 b S e c C o n s t a n t s } \r
0026760 \r \r \r \r { B e g i n S u b S e
0027000 c C o m p i l i n g F u n c
0027020 t i o n C a l l s } \r { T i t
0027040 l e C o m p i l i n g F u n
0027060 c t i o n C a l l s } \r { T e
0027100 x t \r \r { T a g C o m p i l i
0027120 n g N L A M B D A s } \r \r { i n
0027140 d e x * P R I M A R Y * C o
0027160 m p i l i n g f u n c t i o n
0027200 c a l l s } \r \r W h e n c o
0027220 m p i l i n g t h e c a l l
0027240 t o a f u n c t i o n ,
0027260 t h e c o m p i l e r m u s
0027300 t k n o w t h e t y p e
0027320 o f t h e f u n c t i o n ,
0027340 t o d e t e r m i n e h o
0027360 w t h e a r g u m e n t s
0027400 s h o u l d b e p r e p a r
0027420 e d ( e v a l u a t e d / u n
0027440 e v a l u a t e d , s p r e a
0027460 d / n o s p r e a d ) . T h
0027500 e r e a r e t h r e e s e
0027520 p e r a t e c a s e s : l a
0027540 m b d a , n l a m b d a s p
0027560 r e a d , a n d n l a m b d
0027600 a n o s p r e a d f u n c t
0027620 i o n s . \r \r T o d e t e r m
0027640 i n e w h i c h o f t h e
0027660 s e t h r e e c a s e s i
0027700 s a p p r o p r i a t e , t
0027720 h e c o m p i l e r w i l l
0027740 f i r s t l o o k f o r
0027760 a d e f i n i t i o n a m o
0030000 n g t h e f u n c t i o n s
0030020 i n t h e f i l e t h a
0030040 t i s b e i n g c o m p i
0030060 l e d . T h e f u n c t i
0030100 o n c a n b e d e f i n e
0030120 d a n y w h e r e i n a n
0030140 y o f t h e f i l e s g
0030160 i v e n a s a r g u m e n t
0030200 s t o { f n B C O M P L }
0030220 , { f n T C O M P L } , {
0030240 f n B R E C O M P I L E } o
0030260 r { f n R E C O M P I L E }
0030300 . { n o t e e v e n i n l
0030320 a t e r f i l e s ( i f m
0030340 o r e t h a n o n e c o m
0030360 p i l e d ) ? } I f t h e
0030400 f u n c t i o n i s n o t
0030420 c o n t a i n e d i n t h
0030440 e f i l e , t h e c o m p
0030460 i l e r w i l l l o o k f
0030500 o r o t h e r i n f o r m a
0030520 t i o n i n t h e v a r i
0030540 a b l e s { v a r N L A M A
0030560 } , { v a r N L A M L } ,
0030600 a n d { v a r L A M S } ,
0030620 w h i c h c a n b e s e t
0030640 b y t h e u s e r : \r \r {
0030660 V a r D e f { N a m e N L A
0030700 M A } \r { T e x t \r ( f o r {
0030720 l i s p N L A M } b d a { l
0030740 i s p A } t o m s ) \r A l i
0030760 s t o f f u n c t i o n s
0031000 t o b e t r e a t e d a s
0031020 n l a m b d a n o s p r e a
0031040 d f u n c t i o n s b y t
0031060 h e c o m p i l e r . \r } } \r
0031100 \r { V a r D e f { N a m e N
0031120 L A M L } \r { T e x t \r ( f o r
0031140 { l i s p N L A M } b d a
0031160 { l i s p L } i s t ) \r A l
0031200 i s t o f f u n c t i o n s
0031220 t o b e t r e a t e d a
0031240 s n l a m b d a s p r e a d
0031260 f u n c t i o n s b y t h
0031300 e c o m p i l e r . \r } } \r \r
0031320 { V a r D e f { N a m e L A
0031340 M S } \r { T e x t \r A l i s t
0031360 o f f u n c t i o n s t o
0031400 b e t r e a t e d a s l
0031420 a m b d a f u n c t i o n s
0031440 b y t h e c o m p i l e r .
0031460 N o t e t h a t i n c l
0031500 u d i n g f u n c t i o n s
0031520 o n { v a r L A M S } i s
0031540 o n l y n e c e s s a r y
0031560 t o o v e r r i d e i n - c
0031600 o r e n l a m b d a d e f i
0031620 n i t i o n s , s i n c e i
0031640 n t h e a b s e n c e o f
0031660 o t h e r i n f o r m a t i
0031700 o n , t h e c o m p i l e r
0031720 a s s u m e s t h e f u n
0031740 c t i o n i s a l a m b d
0031760 a . \r } } \r \r \r \r I f t h e
0032000 f u n c t i o n i s n o t
0032020 c o n t a i n e d i n a f
0032040 i l e , o r o n t h e l
0032060 i s t s { v a r N L A M A }
0032100 , { v a r N L A M L } , o
0032120 r { v a r L A M S } , t h
0032140 e c o m p i l e r w i l l
0032160 l o o k f o r a c u r r e
0032200 n t d e f i n i t i o n i n
0032220 t h e I n t e r l i s p s
0032240 y s t e m , a n d u s e i
0032260 t s t y p e . I f t h e
0032300 r e i s n o c u r r e n t
0032320 d e f i n i t i o n , n e x
0032340 t { v a r C O M P I L E U S
0032360 E R F N } i s c a l l e d :
0032400 \r \r { V a r D e f { N a m e
0032420 C O M P I L E U S E R F N } \r {
0032440 T e x t \r W h e n c o m p i l
0032460 i n g a f u n c t i o n c
0032500 a l l , i f t h e f u n c
0032520 t i o n t y p e c a n n o t
0032540 b e f o u n d b y l o o
0032560 k i n g i n f i l e s , t
0032600 h e v a r i a b l e s { v a
0032620 r N L A M A } , { v a r N
0032640 L A M L } , o r { v a r L
0032660 A M S } , o r a t a c u
0032700 r r e n t d e f i n i t i o n
0032720 , t h e n i f t h e v a
0032740 l u e o f { i n d e x * P
0032760 R I M A R Y * C O M P I L E U
0033000 S E R F N V a r } { v a r C
0033020 O M P I L E U S E R F N } i s
0033040 n o t { l i s p N I L } ,
0033060 t h e c o m p i l e r c a
0033100 l l s ( t h e v a l u e o
0033120 f ) { v a r C O M P I L E U
0033140 S E R F N } g i v i n g i t
0033160 a s a r g u m e n t s { f
0033200 n C D R } o f t h e f o
0033220 r m a n d t h e f o r m
0033240 i t s e l f , i . e . , t h
0033260 e c o m p i l e r d o e s
0033300 { l i s p ( A P P L Y * C O
0033320 M P I L E U S E R F N ( C D R
0033340 { a r g F O R M } ) { a r
0033360 g F O R M } ) } . I f a
0033400 n o n - { l i s p N I L }
0033420 v a l u e i s r e t u r n e
0033440 d , i t i s c o m p i l e
0033460 d i n s t e a d o f { a r
0033500 g F O R M } . I f { l i
0033520 s p N I L } i s r e t u r
0033540 n e d , t h e c o m p i l e
0033560 r c o m p i l e s t h e o
0033600 r i g i n a l e x p r e s s i
0033620 o n a s a c a l l t o
0033640 a l a m b d a s p r e a d
0033660 t h a t i s n o t y e t
0033700 d e f i n e d . \r \r N o t e t
0033720 h a t { v a r C O M P I L E
0033740 U S E R F N } i s o n l y
0033760 c a l l e d w h e n t h e
0034000 c o m p i l e r e n c o u n t
0034020 e r s a { i t l i s t }
0034040 { f n C A R } o f w h i c
0034060 h i s n o t t h e n a m
0034100 e o f a d e f i n e d f
0034120 u n c t i o n . T h e u s e
0034140 r c a n i n s t r u c t t
0034160 h e c o m p i l e r a b o u
0034200 t h o w t o c o m p i l e
0034220 o t h e r d a t a t y p e
0034240 s v i a { v a r C O M P I
0034260 L E T Y P E L S T } , { i n d e
0034300 x C O M P I L E T Y P E L S T
0034320 V a r } { P a g e R e f V
0034340 a r C O M P I L E T Y P E L S
0034360 T } . \r \r { i n d e x C L I S
0034400 P a n d c o m p i l e r } {
0034420 i n d e x C o m p i l i n g
0034440 C L I S P } C L I S P u s e s
0034460 { v a r C O M P I L E U S E
0034500 R F N } t o t e l l t h e
0034520 c o m p i l e r h o w t o
0034540 c o m p i l e i t e r a t i
0034560 v e s t a t e m e n t s , {
0034600 l i s p I F - T H E N - E L S
0034620 E } s t a t e m e n t s , a
0034640 n d p a t t e r n m a t c h
0034660 c o n s t r u c t s ( S e e
0034700 { P a g e R e f T a g C o
0034720 m p i l i n g C L I S P } ) . \r
0034740 } } \r \r \r { n o t e h o w c
0034760 a n C O M P I L E U S E R F N
0035000 b e o f a n y u s e ,
0035020 I f i t i s d e f i n e d
0035040 b y C L I S P ? C a n /
0035060 s h o u l d u s e r s a d v
0035100 i s e i t ? ? } \r \r \r \r I f
0035120 t h e c o m p i l e r c a n
0035140 n o t d e t e r m i n e t h
0035160 e f u n c t i o n t y p e
0035200 b y a n y o f t h e m e
0035220 a n s a b o v e , i t a s
0035240 s u m e s t h a t t h e f
0035260 u n c t i o n i s a l a m
0035300 b d a f u n c t i o n , a n
0035320 d i t s a r g u m e n t s
0035340 a r e t o b e e v a l u a
0035360 t e d . \r \r I f t h e r e a
0035400 r e n l a m b d a f u n c t
0035420 i o n s c a l l e d f r o m
0035440 t h e f u n c t i o n s b
0035460 e i n g c o m p i l e d , a
0035500 n d t h e y a r e o n l y
0035520 d e f i n e d i n a s e
0035540 p a r a t e f i l e , t h e
0035560 y m u s t b e i n c l u d
0035600 e d o n { v a r N L A M A
0035620 } o r { v a r N L A M L }
0035640 , o r t h e c o m p i l e
0035660 r w i l l i n c o r r e c t
0035700 l y a s s u m e t h a t t
0035720 h e i r a r g u m e n t s a
0035740 r e t o b e e v a l u a t
0035760 e d , a n d c o m p i l e
0036000 t h e c a l l i n g f u n c
0036020 t i o n c o r r e s p o n d i
0036040 n g l y . \r N o t e t h a t
0036060 t h i s i s o n l y n e c
0036100 e s s a r y i f t h e c o
0036120 m p i l e r d o e s n o t
0036140 " k n o w " a b o u t t h e
0036160 f u n c t i o n . I f t
0036200 h e f u n c t i o n i s d
0036220 e f i n e d a t c o m p i l
0036240 e t i m e , o r i s h a
0036260 n d l e d v i a a m a c r
0036300 o , o r i s c o n t a i n
0036320 e d i n t h e s a m e g
0036340 r o u p o f f i l e s a s
0036360 t h e f u n c t i o n s t
0036400 h a t c a l l i t , t h e
0036420 c o m p i l e r w i l l a
0036440 u t o m a t i c a l l y h a n
0036460 d l e c a l l s t o t h a
0036500 t f u n c t i o n c o r r e
0036520 c t l y . \r \r \r } { E n d S u
0036540 b S e c C o m p i l i n g F
0036560 u n c t i o n C a l l s } \r \r
0036600 \r \r \r { B e g i n S u b S e c
0036620 F U N C T I O N a n d F u
0036640 n c t i o n a l A r g u m e n
0036660 t s } \r { T i t l e F U N C T
0036700 I O N a n d F u n c t i o n
0036720 a l A r g u m e n t s } \r { T
0036740 e x t \r \r { T a g C o m p i l
0036760 i n g F U N C T I O N } \r \r { i
0037000 n d e x * P R I M A R Y * C
0037020 o m p i l i n g F U N C T I O
0037040 N } \r { i n d e x * P R I M A
0037060 R Y * C o m p i l i n g f u
0037100 n c t i o n a l a r g u m e n
0037120 t s } \r { i n d e x F u n c t
0037140 i o n a l a r g u m e n t s }
0037160 \r \r C o m p i l i n g t h e
0037200 f u n c t i o n { f n F U N
0037220 C T I O N } ( { P a g e R e f
0037240 F n F U N C T I O N } ) m
0037260 a y i n v o l v e c r e a t
0037300 i n g a n d c o m p i l i n
0037320 g a s e p e r a t e " a u
0037340 x i l i a r y f u n c t i o n
0037360 " , w h i c h w i l l b e
0037400 c a l l e d a t r u n t
0037420 i m e . A n a u x i l i a
0037440 r y f u n c t i o n i s n
0037460 a m e d b y a t t a c h i n
0037500 g a { f n G E N S Y M }
0037520 ( { P a g e R e f F n G E N
0037540 S Y M } ) t o t h e e n d
0037560 o f t h e n a m e o f
0037600 t h e f u n c t i o n i n
0037620 w h i c h t h e y a p p e a
0037640 r , e . g . , { l i s p F
0037660 O O A 0 0 0 3 } . F o r e
0037700 x a m p l e , s u p p o s e
0037720 { l i s p F O O } i s d e
0037740 f i n e d a s { l i s p (
0037760 L A M B D A ( X ) { e l l i
0040000 p s i s } ( F O O 1 X ( F
0040020 U N C T I O N { e l l i p s i
0040040 s } ) ) { e l l i p s i s } )
0040060 } a n d c o m p i l e d .
0040100 W h e n { l i s p F O O }
0040120 i s r u n , { l i s p F
0040140 O O 1 } w i l l b e c a l
0040160 l e d w i t h t w o a r g
0040200 u m e n t s , { l i s p X }
0040220 , a n d { l i s p F O O A
0040240 0 0 0 { a r g N } } a n d
0040260 { l i s p F O O 1 } w i l l
0040300 c a l l { l i s p F O O A
0040320 0 0 0 { a r g N } } e a c h
0040340 t i m e i t u s e s i t
0040360 s f u n c t i o n a l a r g
0040400 u m e n t . \r \r \r C o m p i l i
0040420 n g { f n F U N C T I O N }
0040440 w i l l { i t n o t } c
0040460 r e a t e a n a u x i l i a
0040500 r y f u n c t i o n i f i
0040520 t i s a f u n c t i o n a
0040540 l a r g u m e n t t o a
0040560 f u n c t i o n t h a t c o
0040600 m p i l e s o p e n , s u c
0040620 h a s m o s t o f t h e
0040640 m a p p i n g f u n c t i o
0040660 n s ( { f n M A P C A R } ,
0040700 { f n M A P L I S T } , e
0040720 t c . ) . N o t e t h a t
0040740 a c o n s i d e r a b l e
0040760 s a v i n g s i n t i m e
0041000 c o u l d b e a c h i e v e
0041020 d b y m a k i n g { l i s
0041040 p F O O 1 } c o m p i l e
0041060 o p e n v i a a c o m p u
0041100 t e d m a c r o ( { P a g e
0041120 R e f T a g M a c r o s } )
0041140 , e . g . \r \r { l i s p c o d
0041160 e \r ( P U T P R O P ' F O O 1
0041200 ' M A C R O \r ' ( Z (
0041220 L I S T ( S U B S T ( C A D
0041240 A D R Z ) \r
0041260 ( Q U
0041300 O T E F N ) \r
0041320 { a
0041340 r g D E F } ) \r
0041360 ( C A R Z ) ) )
0041400 } \r \r { a r g D E F } i s
0041420 t h e d e f i n i t i o n o
0041440 f { l i s p F O O 1 } a s
0041460 a f u n c t i o n o f j
0041500 u s t i t s f i r s t a r
0041520 g u m e n t , a n d { l i s
0041540 p F N } i s t h e n a m
0041560 e u s e d f o r i t s f
0041600 u n c t i o n a l a r g u m e
0041620 n t i n i t s d e f i n i
0041640 t i o n . I n t h i s c
0041660 a s e , { l i s p ( F O O 1
0041700 X ( F U N C T I O N { e l
0041720 l i p s i s } ) ) } w o u l d
0041740 c o m p i l e a s a n e
0041760 x p r e s s i o n , c o n t a
0042000 i n i n g t h e a r g u m e
0042020 n t t o { f n F U N C T I
0042040 O N } a s a n o p e n {
0042060 l i s p L A M B D A } e x p
0042100 r e s s i o n . T h u s y
0042120 o u s a v e n o t o n l y
0042140 t h e f u n c t i o n c a
0042160 l l t o { l i s p F O O 1
0042200 } , b u t a l s o e a c h
0042220 o f t h e f u n c t i o n
0042240 c a l l s t o i t s f u
0042260 n c t i o n a l a r g u m e n
0042300 t . F o r e x a m p l e ,
0042320 i f { l i s p F O O 1 }
0042340 o p e r a t e s o n a l i
0042360 s t o f l e n g t h t e n
0042400 , e l e v e n f u n c t i o
0042420 n c a l l s w i l l b e
0042440 s a v e d . O f c o u r s
0042460 e , t h i s s a v i n g s
0042500 i n t i m e c o s t s s p
0042520 a c e , a n d t h e u s e
0042540 r m u s t d e c i d e w h
0042560 i c h i s m o r e i m p o
0042600 r t a n t . \r \r { n o t e w o
0042620 n ' t c o d e b e g e n e
0042640 r a t e d f o r e v e r y
0042660 t i m e t h e f n i s c
0042700 a l l e d i n F O O 1 ? ?
0042720 ? } \r \r } { E n d S u b S e c
0042740 F U N C T I O N a n d F u
0042760 n c t i o n a l A r g u m e n
0043000 t s } \r \r \r \r \r { B e g i n S
0043020 u b S e c O p e n F u n c t
0043040 i o n s } \r { T i t l e O p e
0043060 n F u n c t i o n s } \r { T e
0043100 x t \r \r { i n d e x * P R I M
0043120 A R Y * O p e n f u n c t i
0043140 o n s } \r { i n d e x * P R I
0043160 M A R Y * C o m p i l i n g
0043200 o p e n f u n c t i o n s } \r
0043220 \r W h e n a f u n c t i o n
0043240 i s c a l l e d f r o m
0043260 a c o m p i l e d f u n c t
0043300 i o n , a s y s t e m r o
0043320 u t i n e i s i n v o k e d
0043340 t h a t s e t s u p t h
0043360 e p a r a m e t e r a n d
0043400 c o n t r o l p u s h l i s
0043420 t s a s n e c e s s a r y
0043440 f o r v a r i a b l e b i n
0043460 d i n g s a n d r e t u r n
0043500 i n f o r m a t i o n . I
0043520 f t h e a m o u n t o f
0043540 t i m e s p e n t { i t i
0043560 n s i d e } t h e f u n c t
0043600 i o n i s s m a l l , t h
0043620 i s f u n c t i o n c a l l
0043640 i n g t i m e w i l l b e
0043660 a s i g n i f i c a n t p
0043700 e r c e n t a g e o f t h e
0043720 t o t a l t i m e r e q u
0043740 i r e d t o u s e t h e
0043760 f u n c t i o n . T h e r e
0044000 f o r e , m a n y " s m a l
0044020 l " f u n c t i o n s , e .
0044040 g . , { f n C A R } , { f
0044060 n C D R } , { f n E Q } ,
0044100 { f n N O T } , { f n C
0044120 O N S } a r e a l w a y s
0044140 c o m p i l e d " o p e n " ,
0044160 i . e . , t h e y d o n
0044200 o t r e s u l t i n a f
0044220 u n c t i o n c a l l . O
0044240 t h e r l a r g e r f u n c
0044260 t i o n s s u c h a s { f
0044300 n P R O G } , { f n S E L
0044320 E C T Q } , { f n M A P C }
0044340 , e t c . a r e c o m p i
0044360 l e d o p e n b e c a u s e
0044400 t h e y a r e f r e q u e
0044420 n t l y u s e d . T h e
0044440 u s e r c a n m a k e o t
0044460 h e r f u n c t i o n s c o
0044500 m p i l e o p e n v i a {
0044520 i n d e x M A C R O P r o p
0044540 } { p r o p M A C R O } d e
0044560 f i n i t i o n s ( s e e {
0044600 P a g e R e f T a g M a c r
0044620 o s } ) . T h e u s e r
0044640 c a n a l s o a f f e c t
0044660 t h e c o m p i l e d c o d
0044700 e v i a { i n d e x C O M
0044720 P I L E U S E R F N V a r } {
0044740 v a r C O M P I L E U S E R F
0044760 N } ( { P a g e R e f V a r
0045000 C O M P I L E U S E R F N } )
0045020 a n d { v a r C O M P I L
0045040 E T Y P E L S T } ( { P a g e
0045060 R e f V a r C O M P I L E T
0045100 Y P E L S T } ) . \r \r \r \r { n o
0045120 t e l i s t o f o p e n
0045140 f u n c t i o n s c o m m e n
0045160 t e d o u t - - - d o w
0045200 e r e a l l y n e e d t h
0045220 i s l i s t h e r e ? d
0045240 o e s a n y o n e e v e r
0045260 u s e i t ? H o w c a n
0045300 w e b e s u r e t h i s
0045320 l i s t i s c o r r e c t
0045340 ? - - - m j s } \r \r \r \r { B e
0045360 g i n C o m m e n t } \r n o t
0045400 e : i s i t r e a l l y
0045420 n e c e s s a r y t o h a v
0045440 e t h i s l i s t ? ? i s
0045460 n ' t t h e r e s o m e w
0045500 a y f o r p e o p l e t o
0045520 f i n d o u t w h e t h e
0045540 r a g i v e n f u n c t i
0045560 o n c o m p i l e s o p e n
0045600 ? ? I n I n t e r l i s p -
0045620 D , a r e n ' t a l l o p
0045640 e n - c o m p i l e d f n s
0045660 d o n e w i t h m a c r o s
0045700 ( e x c e p t f o r a f
0045720 e w s p e c i a l o n e s
0045740 ( l i k e C O N D ) t h a t
0045760 t h e c o m p i l e r t r
0046000 e a t s s p e c i a l l y )
0046020 ? ? H o w a b o u t i n
0046040 I n t e r l i s p - 1 0 ? ?
0046060 F r a n k l y , I w o n d
0046100 e r i f a n y o n e h a s
0046120 e v e r l o o k e d a t
0046140 t h i s l i s t ! \r \r - - - -
0046160 - - - - - - \r \r I t i s u s
0046200 e f u l t o k n o w e x a
0046220 c t l y w h i c h f u n c t
0046240 i o n s a r e c o m p i l e
0046260 d o p e n i n o r d e r
0046300 t o d e t e r m i n e w h e
0046320 r e a p r o g r a m i s
0046340 s p e n d i n g i t s t i m
0046360 e . T h e r e f o r e b e
0046400 l o w i s a l i s t o f
0046420 t h o s e f u n c t i o n s
0046440 w h i c h w h e n c o m p
0046460 i l e d d o n o t r e s u
0046500 l t i n f u n c t i o n c
0046520 a l l s . T h e f o l l o
0046540 w i n g f u n c t i o n s c
0046560 o m p i l e o p e n i n I
0046600 n t e r l i s p - 1 0 : \r \r N o
0046620 t e : S o m e o f t h e s
0046640 e c o m p i l e i n - l i n
0046660 e v i a m a c r o e x p a
0046700 n s i o n s a n d s o m e
0046720 c o m p i l e s o a s t o
0046740 u s e a { l i s p P U S
0046760 H J } t o j u m p i n t o
0047000 s y s t e m c o d e . T
0047020 h e i m p o r t a n t p o i
0047040 n t f r o m t h e u s e r
0047060 ' s s t a n d p o i n t i s
0047100 t h a t a l l o f t h e
0047120 m d o n o t r e q u i r e
0047140 a f u n c t i o n c a l l
0047160 . \r \r \r \r { l i s p A C } ,
0047200 { l i s p A D D 1 } , { l i
0047220 s p A N D } , { l i s p A
0047240 P P L Y * } , { l i s p A R
0047260 G } ( w h e n t h e { l i
0047300 s p A R G } v a r i a b l e
0047320 i s b o u n d l o c a l l
0047340 y ) , { l i s p A R R A Y P
0047360 } , { l i s p A S S E M B L
0047400 E } , { l i s p A T O M } ,
0047420 { l i s p B L K A P P L Y }
0047440 , { l i s p B L K A P P L Y
0047460 * } , { l i s p B O U N D P
0047500 } , { l i s p C A R } , {
0047520 l i s p C D R } , { l i s p
0047540 C A A R } , { e l l i p s i
0047560 s } { l i s p C D D D A R }
0047600 , { l i s p C D D D D R } ,
0047620 { l i s p C L O S E R } ,
0047640 { l i s p C O N D } , { l i
0047660 s p C O N S } , { l i s p
0047700 C O N S T A N T } , { l i s p
0047720 C O R O U T I N E } , { l i
0047740 s p D O C O L L E C T } , {
0047760 l i s p E N D C O L L E C T }
0050000 , { l i s p E Q } , { l i
0050020 s p E Q M E M B } , { l i s
0050040 p E R S E T Q } , \r { l i s p
0050060 E V A L V } ( w h e n g i
0050100 v e n o n l y o n e a r g
0050120 u m e n t ) , { l i s p E V
0050140 E R Y } , { l i s p E V Q }
0050160 , { l i s p F A S S O C } ,
0050200 { l i s p F C H A R A C T E
0050220 R } , \r { l i s p F D I F F E
0050240 R E N C E } , { l i s p F G
0050260 E T D } , { l i s p F G R E
0050300 A T E R P } , { l i s p F I
0050320 X } , { l i s p F I X P } ,
0050340 { l i s p F L A S T } , {
0050360 l i s p F L E N G T H } , {
0050400 l i s p F L O A T } , { l i
0050420 s p F L O A T P } , { l i s
0050440 p F M E M B } , { l i s p
0050460 F M I N U S } , { l i s p F
0050500 N T H } , { l i s p F P L U
0050520 S } , { l i s p F Q U O T I
0050540 E N T } , \r { l i s p F R P L
0050560 A C A } , { l i s p F R P L
0050600 A C D } , { l i s p F R P L
0050620 N O D E } , { l i s p F R P
0050640 L N O D E 2 } , { l i s p F
0050660 R P T Q } , { l i s p F T I
0050700 M E S } , { l i s p F U N C
0050720 T I O N } , { l i s p G E N
0050740 E R A T O R } , { l i s p G
0050760 E Q } ( i . e . , c o m p i
0051000 l e s o p e n a s a c a
0051020 l l t o { l i s p L E S S
0051040 P } . H o w e v e r , t h e
0051060 r e i s s t i l l t h i s
0051100 f u n c t i o n c a l l a
0051120 s s o c i a t e d w i t h t
0051140 h e { l i s p G E Q } e x
0051160 p r e s s i o n ) , { l i s p
0051200 G E T A T O M V A L } , { l
0051220 i s p G E T F I L E P T R } ,
0051240 { l i s p G E T H A S H } ,
0051260 { l i s p G E T P R O P L I
0051300 S T } , { l i s p G O } ,
0051320 { l i s p I D I F F E R E N C
0051340 E } , { l i s p I E Q P } ,
0051360 { l i s p I G E Q } , { l
0051400 i s p I G R E A T E R P } ,
0051420 { l i s p I L E Q } , { l i
0051440 s p I L E S S P } , { l i s
0051460 p I M I N U S } , { l i s p
0051500 I N T E R R U P T A B L E } ,
0051520 { l i s p I P L U S } , {
0051540 l i s p I Q U O T I E N T } ,
0051560 { l i s p I R E M A I N D E
0051600 R } , { l i s p I T I M E S
0051620 } , { l i s p J S Y S } (
0051640 W h e n t h e j s y s n u
0051660 m b e r i s i t s e l f a
0051700 s m a l l i n t e g e r ,
0051720 a n d { l i s p R E S U L T
0051740 A C } i s e i t h e r a
0051760 s m a l l n u m b e r o r
0052000 { l i s p N I L } , e . g .
0052020 { l i s p ( J S Y S 5 1 Q
0052040 ) } b u t n o t { l i s p
0052060 ( J S Y S N ) } ) , { l i
0052100 s p K W O T E } , { l i s p
0052120 L E Q } ( S e e f o o t n
0052140 o t e t o { l i s p G E Q
0052160 } a b o v e ) , { l i s p
0052200 L I S P X W A T C H } , { l i
0052220 s p L I S T } , { l i s p
0052240 L I S T P } , { l i s p L I
0052260 T A T O M } , { l i s p L L
0052300 S H } , \r { l i s p L O C } ,
0052320 { l i s p L O G A N D } ,
0052340 { l i s p L O G O R } , { l
0052360 i s p L O G X O R } , { l i
0052400 s p L R S H } , { l i s p
0052420 L S H } , { l i s p M A P }
0052440 , { l i s p M A P C } , {
0052460 l i s p M A P C A R } , { l
0052500 i s p M A P C O N } , { l i
0052520 s p M A P C O N C } , \r { l i
0052540 s p M A P L I S T } , { l i
0052560 s p M I N U S P } , { l i s
0052600 p M K L I S T } , { l i s p
0052620 N C O N C 1 } , { l i s p
0052640 N E Q } , \r { l i s p N L I S
0052660 T P } , { l i s p N L S E T
0052700 Q } , { l i s p N O T } ,
0052720 { l i s p N O T E V E R Y } ,
0052740 { l i s p N O T A N Y } , \r
0052760 { l i s p N T Y P } , { l i
0053000 s p N U L L } , { l i s p
0053020 N U M B E R P } , { l i s p
0053040 O P E N R } , { l i s p O R
0053060 } , { l i s p P O S S I B I
0053100 L I T I E S } , { l i s p P
0053120 R O G } , { l i s p P R O G
0053140 1 } , { l i s p P R O G N }
0053160 , { l i s p R E S E T F O R
0053200 M } , { l i s p R E S E T L
0053220 S T } , { l i s p R E S E T
0053240 S A V E } , { l i s p R E S
0053260 E T V A R } , { l i s p R E
0053300 S E T V A R S } , \r { l i s p
0053320 R E T U R N } , { l i s p R
0053340 P T Q } , { l i s p R S H }
0053360 , { l i s p S E L E C T Q }
0053400 , { l i s p S E T } , { l
0053420 i s p S E T A R G } , { l i
0053440 s p S E T A T O M V A L } ,
0053460 { l i s p S E T N } , { l i
0053500 s p S E T P R O P L I S T } ,
0053520 { l i s p S E T Q } , { l
0053540 i s p S E T Q Q } , { l i s
0053560 p S M A L L P } , { l i s p
0053600 S O M E } , { l i s p S T
0053620 A C K P } , { l i s p S T R
0053640 I N G P } , { l i s p S U B
0053660 1 } , { l i s p S U B S E T
0053700 } , { l i s p S Y N T A X P
0053720 } ( w h e n c l a s s i s
0053740 q u o t e d , e . g . { l
0053760 i s p ( S Y N T A X P X (
0054000 Q U O T E B R E A K ) ) } ) ,
0054020 { l i s p S Y S T E M T Y P
0054040 E } , { l i s p T R Y N E X
0054060 T } , { l i s p T Y P E N A
0054100 M E P } , { l i s p T Y P E
0054120 P } , { l i s p U N D O N L
0054140 S E T Q } , { l i s p V A G
0054160 } , { l i s p Z E R O P } .
0054200 \r { E n d C o m m e n t } \r \r
0054220 \r \r \r } { E n d S u b S e c
0054240 O p e n F u n c t i o n s } \r
0054260 \r \r \r \r \r \r { B e g i n S u b
0054300 S e c C O M P I L E T Y P E L
0054320 S T } \r { T i t l e C O M P I
0054340 L E T Y P E L S T } \r { T e x t
0054360 \r \r { i n d e x C O M P I L E
0054400 T Y P E L S T V a r } \r { i n
0054420 d e x * P R I M A R Y * C o
0054440 m p i l i n g d a t a t y p
0054460 e s } \r { i n d e x * P R I M
0054500 A R Y * D a t a t y p e c
0054520 o m p i l i n g } \r \r M o s t
0054540 o f t h e c o m p i l e r '
0054560 s m e c h a n i s m d e a l
0054600 s w i t h h o w t o h a
0054620 n d l e f o r m s ( l i s t
0054640 s ) a n d v a r i a b l e s
0054660 ( l i t e r a l a t o m s )
0054700 . T h e u s e r c a n
0054720 a f f e c t t h e c o m p i
0054740 l e r ' s b e h a v i o u r
0054760 w i t h r e s p e c t t o
0055000 l i s t s a n d l i t e r a
0055020 l a t o m s i n a n u m
0055040 b e r o f w a y s , e . g
0055060 . m a c r o s , d e c l a r
0055100 a t i o n s , { v a r C O M
0055120 P I L E U S E R F N } ( { P a
0055140 g e R e f V a r C O M P I L
0055160 E U S E R F N } ) , e t c .
0055200 { v a r C O M P I L E T Y P
0055220 E L S T } a l l o w s t h e
0055240 u s e r t o t e l l t h
0055260 e c o m p i l e r w h a t
0055300 t o d o w h e n i t e n
0055320 c o u n t e r s a d a t a
0055340 t y p e { i t o t h e r }
0055360 t h a n a l i s t o r a
0055400 n a t o m . I t i s t
0055420 h e f a c i l i t y i n t
0055440 h e c o m p i l e r t h a t
0055460 c o r r e s p o n d s t o
0055500 { f n D E F E V A L } ( { P
0055520 a g e R e f F n D E F E V A
0055540 L } ) f o r t h e i n t e
0055560 r p r e t e r . \r \r { V a r D e
0055600 f { N a m e C O M P I L E T
0055620 Y P E L S T } \r { T e x t \r A
0055640 l i s t o f e l e m e n t s
0055660 o f t h e f o r m { l i
0055700 s p ( { a r g T Y P E N A M
0055720 E } . { a r g F U N C T I
0055740 O N } ) } . W h e n e v e r
0055760 t h e c o m p i l e r e n
0056000 c o u n t e r s a d a t u m
0056020 t h a t i s n o t a l
0056040 i s t a n d n o t a n a
0056060 t o m ( o r a n u m b e r
0056100 ) i n a c o n t e x t w
0056120 h e r e t h e d a t u m i
0056140 s b e i n g e v a l u a t e
0056160 d , t h e t y p e n a m e
0056200 o f t h e d a t u m i s
0056220 l o o k e d u p o n { v
0056240 a r C O M P I L E T Y P E L S
0056260 T } . I f a n e n t r y
0056300 a p p e a r s { f n C A R
0056320 } o f w h i c h i s e q
0056340 u a l t o t h e t y p e
0056360 n a m e , { f n C D R } o
0056400 f t h a t e n t r y i s
0056420 a p p l i e d t o t h e d
0056440 a t u m . I f t h e v a
0056460 l u e r e t u r n e d b y
0056500 t h i s a p p l i c a t i o n
0056520 i s { i t n o t } { f n
0056540 E Q } t o t h e d a t u
0056560 m , t h e n t h a t v a l
0056600 u e i s c o m p i l e d i
0056620 n s t e a d . I f t h e
0056640 v a l u e { i t i s } { f
0056660 n E Q } t o t h e d a t
0056700 u m , o r i f t h e r e
0056720 i s n o e n t r y o n {
0056740 v a r C O M P I L E T Y P E L
0056760 S T } f o r t h i s t y p
0057000 e n a m e , t h e c o m p
0057020 i l e r s i m p l y c o m p
0057040 i l e s t h e d a t u m a
0057060 s { l i s p ( Q U O T E {
0057100 a r g D A T U M } ) } . \r } }
0057120 \r \r \r } { E n d S u b S e c
0057140 C O M P I L E T Y P E L S T } \r
0057160 \r \r \r \r \r \r { B e g i n S u b
0057200 S e c C o m p i l i n g C L
0057220 I S P } \r { T i t l e C o m p
0057240 i l i n g C L I S P } \r { T e
0057260 x t \r \r { T a g C o m p i l i
0057300 n g C L I S P } \r \r \r { i n d e
0057320 x * P R I M A R Y * C o m p
0057340 i l i n g C L I S P } \r \r S i
0057360 n c e t h e c o m p i l e r
0057400 d o e s n o t k n o w a
0057420 b o u t C L I S P , i n o
0057440 r d e r t o c o m p i l e
0057460 f u n c t i o n s c o n t a i
0057500 n i n g C L I S P c o n s t
0057520 r u c t s , t h e d e f i n
0057540 i t i o n s m u s t f i r s
0057560 t b e { f n D W I M I F Y
0057600 } e d ( { P a g e R e f F n
0057620 D W I M I F Y } ) . T h e
0057640 u s e r c a n a u t o m a
0057660 t e t h i s p r o c e s s
0057700 i n s e v e r a l w a y s :
0057720 \r \r ( 1 ) I f t h e v a
0057740 r i a b l e { i n d e x D W
0057760 I M I F Y C O M P F L G V a r
0060000 } { v a r D W I M I F Y C O M
0060020 P F L G } i s { l i s p T
0060040 } , t h e c o m p i l e r
0060060 w i l l a l w a y s { f n
0060100 D W I M I F Y } e x p r e s s
0060120 i o n s b e f o r e c o m p
0060140 i l i n g t h e m . { v a
0060160 r D W I M I F Y C O M P F L G
0060200 } i s i n i t i a l l y {
0060220 l i s p N I L } . \r \r \r ( 2 )
0060240 I f a f i l e h a s
0060260 t h e p r o p e r t y { i n
0060300 d e x F I L E T Y P E P r o
0060320 p } { p r o p F I L E T Y P E
0060340 } w i t h v a l u e { l i
0060360 s p C L I S P } o n i t s
0060400 p r o p e r t y l i s t ,
0060420 { f n T C O M P L } , { f n
0060440 B C O M P L } , { f n R E
0060460 C O M P I L E } , a n d { f
0060500 n B R E C O M P I L E } w i
0060520 l l o p e r a t e a s t h
0060540 o u g h { v a r D W I M I F
0060560 Y C O M P F L G } i s { l i
0060600 s p T } a n d { f n D W
0060620 I M I F Y } a l l e x p r e
0060640 s s i o n s b e f o r e c o
0060660 m p i l i n g . \r \r \r ( 3 )
0060700 I f t h e f u n c t i o n
0060720 d e f i n i t i o n h a s a
0060740 l o c a l { l i s p C L I
0060760 S P } d e c l a r a t i o n
0061000 ( s e e { P a g e R e f T a
0061020 g C L I S P L o c a l D e c l
0061040 a r a t i o n s } ) , i n c l
0061060 u d i n g a n u l l d e c
0061100 l a r a t i o n , i . e . ,
0061120 j u s t { l i s p ( C L I S
0061140 P : ) } , t h e d e f i n i
0061160 t i o n w i l l b e a u t
0061200 o m a t i c a l l y { f n D
0061220 W I M I F Y } e d b e f o r e
0061240 c o m p i l i n g . \r \r \r N o
0061260 t e : { v a r C O M P I L
0061300 E U S E R F N } { i n d e x C
0061320 O M P I L E U S E R F N F N }
0061340 ( { P a g e R e f V a r C
0061360 O M P I L E U S E R F N } ) i
0061400 s d e f i n e d t o c a l
0061420 l { f n D W I M I F Y } o
0061440 n i t e r a t i v e s t a t
0061460 e m e n t s , { l i s p I F
0061500 } - { l i s p T H E N } s t
0061520 a t e m e n t s , a n d { l
0061540 i s p f e t c h } , { l i s
0061560 p r e p l a c e } , a n d
0061600 { l i s p m a t c h } e x p
0061620 r e s s i o n s , i . e . ,
0061640 a n y C L I S P c o n s t r
0061660 u c t w h i c h c a n b e
0061700 r e c o g n i z e d b y i
0061720 t s { f n C A R } o f f
0061740 o r m . T h u s , i f t
0061760 h e o n l y C L I S P c o
0062000 n s t r u c t s i n a f u
0062020 n c t i o n a p p e a r i n
0062040 s i d e o f i t e r a t i v
0062060 e s t a t e m e n t s , { l
0062100 i s p I F } s t a t e m e n
0062120 t s , e t c . , t h e f u
0062140 n c t i o n d o e s n o t
0062160 h a v e t o b e d w i m i
0062200 f i e d b e f o r e c o m p
0062220 i l i n g . \r \r \r I f { f n
0062240 D W I M I F Y } i s e v e r
0062260 u n s u c c e s s f u l i n
0062300 p r o c e s s i n g a { l
0062320 i s p C L I S P } e x p r e
0062340 s s i o n , i t w i l l p
0062360 r i n t t h e e r r o r m
0062400 e s s a g e { i n d e x U N
0062420 A B L E T O D W I M I F Y
0062440 E r r o r } { l i s p U N A B
0062460 L E T O D W I M I F Y } f
0062500 o l l o w e d b y t h e e
0062520 x p r e s s i o n , a n d g
0062540 o i n t o a b r e a k u
0062560 n l e s s { v a r D W I M E
0062600 S S G A G } { i n d e x D W I
0062620 M E S S G A G V a r } = { l i
0062640 s p T } . I n t h i s
0062660 c a s e , t h e e x p r e s
0062700 s i o n i s j u s t c o m
0062720 p i l e d a s i s , i . e
0062740 . a s t h o u g h C L I S
0062760 P h a d n o t b e e n e
0063000 n a b l e d . T h e u s e
0063020 r c a n e x i t t h e b
0063040 r e a k i n s e v e r a l
0063060 d i f f e r e n t w a y s :
0063100 ( 1 ) t y p e { l i s p
0063120 O K } t o t h e b r e a k
0063140 , w h i c h w i l l c a u
0063160 s e t h e c o m p i l e r
0063200 t o t r y a g a i n , e .
0063220 g . t h e u s e r c o u l
0063240 d d e f i n e s o m e m i
0063260 s s i n g r e c o r d s w h
0063300 i l e i n t h e b r e a k
0063320 , a n d t h e n c o n t i
0063340 n u e ; o r ( 2 ) t y p
0063360 e { l i s p ^ } , w h i c
0063400 h w i l l c a u s e t h e
0063420 c o m p i l e r t o s i m
0063440 p l y c o m p i l e t h e
0063460 e x p r e s s i o n a s i s
0063500 , i . e . a s t h o u g h
0063520 C L I S P h a d n o t b
0063540 e e n e n a b l e d i n t
0063560 h e f i r s t p l a c e ;
0063600 o r ( 3 ) r e t u r n a
0063620 n e x p r e s s i o n t o
0063640 b e c o m p i l e d i n i
0063660 t s p l a c e b y u s i n
0063700 g t h e { b r e a k c o m
0063720 R E T U R N } b r e a k c o
0063740 m m a n d ( { P a g e R e f
0063760 B r e a k C o m R E T U R N }
0064000 ) . \r \r \r \r N o t e : { f n
0064020 T C O M P L } , { f n B C O
0064040 M P L } , { f n R E C O M P
0064060 I L E } , a n d { f n B R
0064100 E C O M P I L E } a l l s c
0064120 a n t h e e n t i r e f i
0064140 l e b e f o r e d o i n g
0064160 a n y c o m p i l i n g , a
0064200 n d t a k e n o t e o f
0064220 t h e n a m e s o f a l l
0064240 f u n c t i o n s t h a t
0064260 a r e d e f i n e d i n t
0064300 h e f i l e a s w e l l
0064320 a s t h e n a m e s o f
0064340 a l l v a r i a b l e s t h
0064360 a t a r e s e t b y a d
0064400 d i n g t h e m t o { i n
0064420 d e x N O F I X F N S L S T
0064440 V a r } { v a r N O F I X F N
0064460 S L S T } a n d { i n d e x
0064500 N O F I X V A R S L S T V a
0064520 r } { v a r N O F I X V A R S
0064540 L S T } , r e s p e c t i v e
0064560 l y . \r T h u s , i f a f
0064600 u n c t i o n i s n o t c
0064620 u r r e n t l y d e f i n e d
0064640 , b u t { i t i s } d e
0064660 f i n e d i n t h e f i l
0064700 e b e i n g c o m p i l e d
0064720 , w h e n { f n D W I M I
0064740 F Y } i s c a l l e d b e
0064760 f o r e c o m p i l i n g ,
0065000 i t w i l l n o t a t t e
0065020 m p t t o i n t e r p r e t
0065040 t h e f u n c t i o n n a
0065060 m e a s C L I S P w h e n
0065100 i t a p p e a r s a s {
0065120 f n C A R } o f a f o r
0065140 m . { f n D W I M I F Y }
0065160 a l s o t a k e s i n t o
0065200 a c c o u n t v a r i a b l
0065220 e s t h a t h a v e b e e
0065240 n d e c l a r e d t o b e
0065260 { l i s p L O C A L V A R S
0065300 } , o r { l i s p S P E C
0065320 V A R S } , e i t h e r v i
0065340 a b l o c k d e c l a r a t
0065360 i o n s o r { l i s p D E
0065400 C L A R E } e x p r e s s i o
0065420 n s i n t h e f u n c t i
0065440 o n b e i n g c o m p i l e
0065460 d , a n d d o e s n o t
0065500 a t t e m p t s p e l l i n g
0065520 c o r r e c t i o n o n t
0065540 h e s e v a r i a b l e s .
0065560 T h e d e c l a r a t i o n
0065600 { i n d e x U S E D F R E E
0065620 ( C L I S P d e c l a r a t
0065640 i o n ) } { l i s p U S E D F
0065660 R E E } m a y a l s o b e
0065700 u s e d t o d e c l a r e
0065720 v a r i a b l e s s i m p l
0065740 y u s e d f r e e l y i n
0065760 a f u n c t i o n . T h
0066000 e s e v a r i a b l e s w i
0066020 l l a l s o b e l e f t
0066040 a l o n e b y { f n D W I
0066060 M I F Y } . F i n a l l y ,
0066100 { v a r N O S P E L L F L G
0066120 } ( { P a g e R e f V a r
0066140 N O S P E L L F L G } ) i s
0066160 r e s e t t o { l i s p T
0066200 } w h e n c o m p i l i n g
0066220 f u n c t i o n s f r o m
0066240 a f i l e ( a s o p p o s
0066260 e d t o f r o m t h e i r
0066300 i n - c o r e d e f i n i t
0066320 i o n ) s o a s t o s u
0066340 p p r e s s s p e l l i n g
0066360 c o r r e c t i o n . \r \r } { E
0066400 n d S u b S e c C o m p i l
0066420 i n g C L I S P } \r \r \r \0 \0 \0
0066440 \0 \0 004 \0 001 \0 ? \0 1 ( D E F A U L
0066460 T F O N T 1 ( G A C H A 1
0066500 0 ) ( G A C H A 8 ) ( T E
0066520 R M I N A L 8 ) ) \0 \n \0 \0 \0 \0
0066540 \0 \0 \0 \0 \0 \0 m 035 \0 \0 \0 \0 001 \0 \0 m
0066560 035 \0 001 z 272
0066565