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