$ od -c -N 50000 [eris]<Lisp>KOTO>Library>CHAPEXEC.TXT!1 0000000 \r 1 3 . \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 3 . 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 3 . 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 3 . 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 0023220 c o n s i s t s o f a s e 0023240 q u e n c e o f " c o m m a 0023260 n d s " f o r m o v i n g 0023300 a n i m a g i n a r y c u r 0023320 s o r u p o r d o w n t 0023340 h 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 0023400 n e r o f t h e a r g u m 0023420 e n t s t o t h e @ b r 0023440 e a k c o m m a n d ( s e e 0023460 p a g e X . X X ) . T h 0023500 e e v e n t i d e n t i f i 0023520 e d i s t h e o n e " u 0023540 n d e r " t h e i m a g i n 0023560 a r y c u r s o r w h e n 0023600 t h e r e a r e n o m o r 0023620 e c o m m a n d s . ( I f 0023640 a n y c o m m a n d f a i 0023660 l s , a n e r r o r i s 0023700 g e n e r a t e d a n d t h 0023720 e h i s t o r y c o m m a n 0023740 d i s a b o r t e d . ) 0023760 F 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 0024020 2 r e f e r s t o t h e 0024040 e 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 0024100 O 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 0024140 a r c h i n g b a c k f r o 0024160 m e v e n t 4 2 ) w h o s 0024200 e 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 0024240 n d 4 2 F O O - 1 r e f 0024260 e 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 0024360 s s w i l l c o n t a i n 0024400 o n l y o n e o r t w o 0024420 c o m m a n d s . \r M o s t o 0024440 f t h e e v e n t a d d r 0024460 e s s c o m m a n d s p e r 0024500 f o r m s e a r c h e s f o 0024520 r e v e n t s w h i c h s 0024540 a t i s f y s o m e c o n d 0024560 i t i o n . U n l e s s t 0024600 h e _ c o m m a n d i s 0024620 g i v e n ( s e e b e l o w 0024640 ) , t h i s s e a r c h a 0024660 l w a y s g o e s b a c k w 0024700 a 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 0024740 r o m t h e m o s t r e c 0024760 e n t e v e n t s p e c i f 0025000 i e d t o t h e o l d e s 0025020 t . N o t e t h a t e a 0025040 c h s e a r c h s k i p s 0025060 t h e c u r r e n t e v e n 0025100 t . F o r e x a m p l e , 0025120 i f F O O r e f e r s t 0025140 o e v e n t N , F O O F 0025160 I 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 0025220 r e e v e n t N , e v e n 0025240 i f t h e r e i s a F 0025260 I E i n e v e n t N . \r T 0025300 h 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 0025340 t e r p r e t e d a s f o l 0025360 l o w s : \r \t N ( a n i n t 0025400 e g e r ) \t I f N i s t h 0025420 e f i r s t c o m m a n d 0025440 i n a n e v e n t a d d r 0025460 e s s , r e f e r s t o t 0025500 h e e v e n t w i t h e v 0025520 e n t n u m b e r N . O 0025540 t 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 0025600 e v e n t s f o r w a r d ( 0025620 i n d i r e c t i o n o f 0025640 i n c r e a s i n g e v e n t 0025660 n u m b e r ) . I f N 0025700 i s n e g a t i v e , i t 0025720 a 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 0025760 e n t s b a c k w a r d s . \r 0026000 F o r e x a m p l e , - 1 0026020 r e f e r s t o t h e p r 0026040 e 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 0026120 h 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 0026160 r e s s ) , a n d 4 2 3 0026200 r e f e r s t o t h e e v 0026220 e n t w i t h e v e n t n 0026240 u m b e r 4 5 . \r \t _ L I T A 0026260 T O M \t S p e c i f i e s t h 0026300 e l a s t e v e n t w i t 0026320 h a n A P P L Y - f o r m a 0026340 t i n p u t w h o s e f u 0026360 n c t i o n m a t c h e s L 0026400 I T A T O M . \r N o t e : T h 0026420 e r e m u s t n o t b e 0026440 a s p a c e b e t w e e n 0026460 _ a n d L I T A T O M . \r 0026500 \t _ \t S p e c i f i e s t h a 0026520 t t h e n e x t s e a r c 0026540 h i s t o g o f o r w a 0026560 r d i n s t e a d o f b a 0026600 c k w a r d . I f g i v e 0026620 n a s t h e f i r s t e 0026640 v e n t a d d r e s s c o m 0026660 m a n d , t h e n e x t s 0026700 e a r c h b e g i n s w i t 0026720 h l a s t ( o l d e s t ) 0026740 e v e n t o n t h e h i s 0026760 t o r y l i s t . \r \t F \t S p 0027000 e 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 0027040 t h e e v e n t a d d r e s 0027060 s i s t o b e s e a r c 0027100 h e d f o r , r e g a r d l 0027120 e s s o f w h a t i t i 0027140 s . F o r e x a m p l e , 0027160 F - 2 l o o k s f o r 0027200 a n e v e n t c o n t a i n 0027220 i n g - 2 . \r \t = \t S p e c i 0027240 f i e s t h a t t h e n e 0027260 x t o b j e c t ( p r e s u 0027300 m 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 0027340 d a g a i n s t t h e v a 0027360 l u e s o f e v e n t s , 0027400 i n s t e a d o f t h e i 0027420 n p u t s . \r \t \ \t S p e c i f 0027440 i e s t h e e v e n t l a 0027460 s t l o c a t e d . \r \t S U C 0027500 H T H A T P R E D \t S p e c i 0027520 f i e s a n e v e n t f o 0027540 r w h i c h t h e f u n c 0027560 t i o n P R E D r e t u r n 0027600 s t r u e . P R E D s h 0027620 o u l d b e a f u n c t i 0027640 o n o f t w o a r g u m e 0027660 n t s , t h e i n p u t p 0027700 o r t i o n o f t h e e v 0027720 e n t , a n d t h e e v e 0027740 n t i t s e l f . S e e 0027760 p a g e X . X X f o r a 0030000 d i s c u s s i o n o f t h 0030020 e f o r m a t o f e v e n 0030040 t s o n t h e h i s t o r 0030060 y 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 0030120 r e s s c o m m a n d s p e 0030140 c i f i e s a n e v e n t 0030160 w h o s e i n p u t c o n t 0030200 a i n s a n e x p r e s s i 0030220 o n t h a t m a t c h e s 0030240 P 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 0030300 h e m a t c h i n g i s p 0030320 e r f o r m e d b y t h e 0030340 f u n c t i o n H I S T O R Y 0030360 M A T C H ( p a g e X . X X 0030400 ) , w h i c h i s i n i t 0030420 i 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 0030460 b u t c a n b e a d v i s 0030500 e d o r r e d e f i n e d 0030520 f o r s p e c i a l i z e d 0030540 a p p l i c a t i o n s . \r N o 0030560 t e : S y m b o l s u s 0030600 e d b e l o w o f t h e 0030620 f o r m E v e n t A d d r e s 0030640 s i r e f e r t o e v e n 0030660 t a d d r e s s e s , d e s 0030700 c r i b e d a b o v e . S 0030720 i n c e a n e v e n t a d 0030740 d r e s s m a y c o n t a i 0030760 n 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 0031020 e 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 0031060 h e w o r d s w h i c h d 0031100 e l i m i t i t . F o r 0031120 e 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 0031160 H R U E v e n t A d d r e s s 0031200 2 , t h e s y m b o l E v 0031220 e n t A d d r e s s 1 c o r r 0031240 e s p o n d s t o a l l w 0031260 o r d s b e t w e e n F R O 0031300 M a n d T H R U i n t h 0031320 e e v e n t s p e c i f i c 0031340 a t i o n , a n d E v e n t 0031360 A d d r e s s 2 t o a l l 0031400 w o r d s f r o m T H R U 0031420 t o t h e e n d o f t h 0031440 e e v e n t s p e c i f i c 0031460 a t i o n . \r \t F R O M E v e 0031500 n t A d d r e s s 1 T H R U 0031520 E v e n t A d d r e s s 2 \t \r \t 0031540 E v e n t A d d r e s s 1 T H 0031560 R U E v e n t A d d r e s s 2 0031600 \t S p e c i f i e s t h e s 0031620 e q u e n c e o f e v e n t 0031640 s 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 0031700 e n t A d d r e s s 1 t h r o 0031720 u g h t h e e v e n t w i 0031740 t h a d d r e s s E v e n t 0031760 A d d r e s s 2 . F o r e 0032000 x a m p l e , F R O M 4 7 0032020 T H R U 4 9 s p e c i f i e 0032040 s e v e n t s 4 7 , 4 8 , 0032060 a n d 4 9 . E v e n t A 0032100 d d r e s s 1 c a n b e m 0032120 o r e r e c e n t t h a n 0032140 E v e n t A d d r e s s 2 . 0032160 F o r e x a m p l e , F R O 0032200 M 4 9 T H R U 4 7 s p e 0032220 c i f i e s e v e n t s 4 9 0032240 , 4 8 , a n d 4 7 ( n o 0032260 t e r e v e r s a l o f o 0032300 r d e r ) . \r \t F R O M E v e 0032320 n t A d d r e s s 1 T O E v 0032340 e n t A d d r e s s 2 \t \r \t E v 0032360 e n t A d d r e s s 1 T O E 0032400 v e n t A d d r e s s 2 \t S a m 0032420 e a s T H R U b u t d o 0032440 e s n o t i n c l u d e e 0032460 v e n t E v e n t A d d r e s 0032500 s 2 . \r \t F R O M E v e n t A 0032520 d d r e s s 1 \t S a m e a s 0032540 F R O M E v e n t A d d r e s 0032560 s 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 0032640 s n u m b e r 5 3 , t h e 0032660 n F R O M 4 9 s p e c i f 0032700 i e s e v e n t s 4 9 , 5 0032720 0 , 5 1 , a n d 5 2 . \r \t 0032740 T H R U E v e n t A d d r e s 0032760 s 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 0033020 r e s s 2 . F o r e x a m 0033040 p l e , i f t h e c u r r 0033060 e n t e v e n t i s n u m 0033100 b e r 5 3 , t h e n T H R 0033120 U 4 9 s p e c i f i e s e 0033140 v e n t s 5 2 , 5 1 , 5 0 0033160 , a n d 4 9 ( n o t e r 0033200 e 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 0033240 e s s 2 \t S a m e a s F R O 0033260 M - 1 T O E v e n t A d d 0033300 r e s s 2 . \r \t A L L E v e n 0033320 t A d d r e s s 1 \t S p e c i f 0033340 i e s a l l e v e n t s s 0033360 a t i s f y i n g E v e n t A 0033400 d d r e s s 1 . F o r e x 0033420 a 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 0033460 O . \r \t e m p t y \t I f n o t 0033500 h i n g i s s p e c i f i e 0033520 d , i t i s t h e s a m 0033540 e a s s p e c i f y i n g 0033560 - 1 . \r N o t e : I n t h 0033600 e s p e c i a l c a s e t 0033620 h a t t h e l a s t e v e 0033640 n t w a s a n U N D O , 0033660 i t i s t h e s a m e a 0033700 s s p e c i f y i n g - 2 . 0033720 F o r e x a m p l e , i 0033740 f 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 0034020 p e U N D O , f o l l o w e 0034040 d b y U S E N C O N C 1 . 0034060 \r \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 0034140 c N \t \r \t \t E a c h o f t h 0034160 e E v e n t S p e c i i s 0034200 a n e v e n t s p e c i f i 0034220 c a t i o n . T h e l i s 0034240 t 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 . 0034300 F o r e x a m p l e , F R O 0034320 M 3 0 T H R U 3 2 A N D 0034340 3 5 T H R U 3 7 i s t 0034360 h e s a m e a s 3 0 A N 0034400 D 3 1 A N D 3 2 A N D 0034420 3 5 A N D 3 6 A N D 3 7 0034440 . \r \t @ L I T A T O M \t I f 0034460 L I T A T O M i s t h e n 0034500 a 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 0034560 a g e X . X X ) , s p e c i 0034600 f 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 0034640 O M . \r \t @ @ E v e n t S p e 0034660 c \t E v e n t S p e c i s a 0034700 n e v e n t s p e c i f i c 0034720 a t i o n i n t e r p r e t e 0034740 d a s a b o v e , b u t 0034760 w i t h r e s p e c t t o 0035000 t h e a r c h i v e d h i s 0035020 t o r y l i s t ( s e e t 0035040 h e A R C H I V E c o m m a 0035060 n d , p a g e X . X X ) . \r 0035100 I 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 0035140 a 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 , 0035200 s p e l l i n g c o r r e c t 0035220 i 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 0035260 e c i f i c a t i o n i s p 0035300 e r f o r m e d u s i n g L 0035320 I 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 0035360 s 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 0035440 c t l y . I f t h e e v 0035460 e n t s p e c i f i c a t i o 0035500 n 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 0035540 n t s a f t e r s p e l l i 0035560 n g c o r r e c t i o n , a 0035600 n e r r o r i s g e n e r 0035620 a t e d . \r 1 3 . 2 . 2 \t C 0035640 o m m a n d s \r \r A l l p r o 0035660 g r a m m e r ' s a s s i s t 0035700 a 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 0035740 t f o r m s , o r a s l 0035760 i n e s ( s e e p a g e X 0036000 . X X ) . F o r e x a m p 0036020 l e , t y p i n g R E D O 0036040 5 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 0036120 s 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 0036160 t i o n . U n l e s s s p 0036200 e c i f i e d o t h e r w i s 0036220 e , o m i t t i n g E v e n 0036240 t S p e c i s t h e s a m 0036260 e a s s p e c i f y i n g 0036300 E v e n t S p e c = - 1 . F 0036320 o 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 0036400 E v e n t S p e c \t [ P r o 0036420 g . 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 0036460 n t o r e v e n t s s p e 0036500 c i f i e d b y E v e n t S 0036520 p e c . F o r e x a m p l 0036540 e , R E D O F R O M - 3 0036560 r e d o e s t h e l a s t 0036600 t h r e e e v e n t s . \r \r R 0036620 E D O E v e n t S p e c N 0036640 T I M E S \t [ P r o g . A 0036660 s s t . C o m m a n d ] \r R e 0036700 d o e s t h e e v e n t o 0036720 r e v e n t s s p e c i f i 0036740 e d b y E v e n t S p e c 0036760 N t i m e s . F o r e x 0037000 a m p l e , R E D O 1 0 T 0037020 I M E S r e d o e s t h e 0037040 l a s t e v e n t t e n t 0037060 i m e s . \r \r R E D O E v e n 0037100 t S p e c W H I L E F O R M 0037120 \t [ P r o g . A s s t . 0037140 C o m m a n d ] \r R e d o e s 0037160 t h e s p e c i f i e d e v 0037200 e n t s a s l o n g a s 0037220 t h e v a l u e o f F O R 0037240 M i s t r u e . F O R M 0037260 i s e v a l u a t e d b e 0037300 f o r e e a c h i t e r a t 0037320 i o n s o i f i t s i n 0037340 i t i a l v a l u e i s N 0037360 I 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 0037420 v e n t S p e c U N T I L F 0037440 O R M \t [ P r o g . A s s 0037460 t . 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 0037520 e c W H I L E ( N O T F O 0037540 R M ) . \r \r R E P E A T E v e 0037560 n t S p e c \t [ P r o g . 0037600 A s s t . C o m m a n d ] \r S 0037620 a m e a s R E D O E v e n 0037640 t S p e c W H I L E T . 0037660 T 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 0037720 a 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 0037760 e s c o n t r o l - E o r 0040000 c o n t r o l - D . \r \r R E P E 0040020 A T E v e n t S p e c W H I 0040040 L E F O R M \t [ P r o g . 0040060 A s s t . C o m m a n d ] \r 0040100 R 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 0040140 r o g . A s s t . C o m m a 0040160 n 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 0040220 r 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 0040260 e r e p e t i t i o n s , t 0040300 h e v a r i a b l e R E D O 0040320 C N T i s i n i t i a l i z 0040340 e d t o 0 a n d i n c r 0040360 e m e n t e d e a c h i t e 0040400 r a t i o n . I f t h e 0040420 e 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 0040500 d b y a n e r r o r o r 0040520 c o n t r o l - D , t h e 0040540 n u m b e r o f i t e r a t 0040560 i o n s i s p r i n t e d . 0040600 \r R E T R Y E v e n t S p e c 0040620 \t [ P r o g . A s s t . 0040640 C 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 0040700 s e t s H E L P C L O C K ( 0040720 p a g e X . X X ) s o t h 0040740 a t a n y e r r o r s t h 0040760 a t o c c u r w h i l e e 0041000 x e c u t i n g E v e n t S p 0041020 e c w i l l c a u s e b r 0041040 e 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 0041100 n t S p e c \t [ P r o g . 0041120 A s s t . C o m m a n d ] \r S 0041140 u 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 0041200 n t S p e c , a n d r e d o 0041220 e s t h e r e s u l t . 0041240 S u b s t i t u t i o n i s 0041260 d o n e b y E S U B S T ( 0041300 p a g e X . X X ) , a n d 0041320 i s c a r r i e d o u t a 0041340 s d e s c r i b e d b e l o 0041360 w . E X P R S a n d A R 0041400 G S c a n i n c l u d e n 0041420 o n - a t o m i c m e m b e r 0041440 s . \r F o r e x a m p l e , 0041460 U S E L O G ( M I N U S X 0041500 ) F O R A N T I L O G X 0041520 I N - 2 A N D - 1 w i l 0041540 l 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 0041600 r 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 0041700 U S X ) f o r e v e r y 0041720 o 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 0041760 h e m . N o t e t h a t 0042000 t h e s e s u b s t i t u t i 0042020 o n s d o n o t c h a n g 0042040 e t h e i n f o r m a t i o 0042060 n s a v e d a b o u t t h 0042100 e s e e v e n t s o n t h 0042120 e h i s t o r y l i s t . \r 0042140 A n y e x p r e s s i o n t 0042160 o 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 0042260 s i o n i s t o b e s u 0042300 b s t i t u t e d a s a s 0042320 e g m e n t , e . g . , L I 0042340 S T ( A B C ) f o l l o w 0042360 e d b y U S E ! ( X Y 0042400 Z ) F O R B w i l l p 0042420 r o d u c e L I S T ( A X 0042440 Y 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 0042520 C ) . \r I f I N E v e n t S 0042540 p e c i s o m i t t e d , 0042560 t 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 0042660 E P U T D F O R @ U T D 0042700 i 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 0042740 T D I N F @ U T D . T 0042760 h 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 0043020 c t l y t h e c a s e w h 0043040 e r e t h e f i r s t m e 0043060 m b e r o f A R G S c o u 0043100 l d b e i n t e r p r e t e 0043120 d a s a n e v e n t a d 0043140 d r e s s c o m m a n d . \r \r 0043160 U S E E X P R S I N E v e 0043200 n t S p e c \t [ P r o g . 0043220 A s s t . C o m m a n d ] \r I 0043240 f A R G S a r e o m i t t 0043260 e d , a n d t h e e v e n 0043300 t r e f e r r e d t o w a 0043320 s i t s e l f a U S E c 0043340 o m m a n d , t h e a r g u 0043360 m e n t s a n d e x p r e s 0043400 s 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 0043440 m e a s f o r t h e i n 0043460 d i c a t e d U S E c o m m 0043500 a n d . I n e f f e c t , 0043520 t h i s U S E c o m m a n 0043540 d i s t h u s a c o n t 0043560 i n u a t i o n o f t h e 0043600 p r e v i o u s U S E c o m 0043620 m a n d . F o r e x a m p l 0043640 e , f o l l o w i n g U S E 0043660 X F O R Y I N 5 0 , 0043700 t 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 0043760 I N 5 0 . \r I f A R G S a 0044000 r e o m i t t e d a n d t 0044020 h e e v e n t r e f e r r e 0044040 d t o w a s n o t a U 0044060 S E c o m m a n d , s u b s 0044100 t i t u t i o n i s f o r 0044120 t h e " o p e r a t o r " i 0044140 n 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 0044200 L I S T ( F F ) f o l l o w e 0044220 d b y U S E C A L L S I 0044240 N - 1 i s e q u i v a l e 0044260 n t t o U S E C A L L S 0044300 F O R A R G L I S T I N - 0044320 1 . \r I f I N E v e n t S p 0044340 e c i s o m i t t e d , i 0044360 t i s t h e s a m e a s 0044400 s p e c i f y i n g I N - 0044420 1 . \r \r U S E E X P R S 1 F 0044440 O R A R G S 1 A N D . . . 0044460 A N D E X P R S N F O R 0044500 A R G S N I N E v e n t S p 0044520 e c \t [ P r o g . A s s t 0044540 . C o m m a n d ] \r M o r e 0044560 g e n e r a l f o r m o f 0044600 U S E c o m m a n d . S e 0044620 e 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 0044660 n a l g o r i t h m b e l o 0044700 w . \r N o t e : T h e U S 0044720 E c o m m a n d i s p a r 0044740 s e d b y a s m a l l f 0044760 i n i t e s t a t e p a r s 0045000 e r t o d i s t i n g u i s 0045020 h t h e e x p r e s s i o n 0045040 s a n d a r g u m e n t s . 0045060 F o r e x a m p l e , U 0045100 S E F O R F O R A N D A 0045120 N D A N D F O R F O R w 0045140 i l l b e p a r s e d c o 0045160 r r e c t l y . \r \r E v e r y 0045200 U S E c o m m a n d i n v o 0045220 l v e s t h r e e p i e c e 0045240 s 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 0045300 s t o b e s u b s t i t u 0045320 t e d , t h e a r g u m e n 0045340 t s t o b e s u b s t i t 0045360 u 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 0045420 t i o n , w h i c h d e f i 0045440 n e s t h e i n p u t e x 0045460 p r e s s i o n i n w h i c 0045500 h t h e s u b s t i t u t i 0045520 o n t a k e s p l a c e . 0045540 I f t h e U S E c o m m 0045560 a 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 0045620 s s i o n s a s a r g u m e 0045640 n t s , t h e s u b s t i t 0045660 u t i o n p r o c e d u r e 0045700 i s s t r a i g h t f o r w a 0045720 r d . F o r e x a m p l e 0045740 , U S E X Y F O R U 0045760 V m e a n s s u b s t i t u 0046000 t e X f o r U a n d Y 0046020 f o r V , a n d i s e 0046040 q u i v a l e n t t o U S E 0046060 X F O R U A N D Y F 0046100 O R V . H o w e v e r , 0046120 t h e U S E c o m m a n d 0046140 a l s o p e r m i t s d i s 0046160 t r i b u t i v e s u b s t i 0046200 t u t i o n s , f o r s u b 0046220 s t i t u t i n g s e v e r a 0046240 l e x p r e s s i o n s f o 0046260 r t h e s a m e a r g u m 0046300 e n t . F o r e x a m p l 0046320 e , U S E A B C F O R 0046340 X m e a n s f i r s t s 0046360 u b s t i t u t e A f o r 0046400 X t h e n s u b s t i t u t 0046420 e B f o r X ( i n a 0046440 n e w c o p y o f t h e 0046460 e x p r e s s i o n ) , t h e 0046500 n s u b s t i t u t e C f 0046520 o r X . T h e e f f e c 0046540 t 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 0046600 U S E c o m m a n d s . S 0046620 i m i l a r l y , U S E A 0046640 B C F O R D A N D X 0046660 Y Z F O R W i s e q u 0046700 i 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 0046760 U S E B F O R D A N D 0047000 Y F O R W , f o l l o w e 0047020 d b y U S E C F O R D 0047040 A N D Z F O R W . U 0047060 S E A B C F O R D A 0047100 N D X F O R Y a l s o 0047120 c o r r e s p o n d s t o t 0047140 h 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 0047220 o r Y , t h e s e c o n d 0047240 w i t h B f o r D , a 0047260 n d X f o r Y , a n d 0047300 t h e t h i r d w i t h C 0047320 f o r D , a n d a g a i 0047340 n X f o r Y . H o w e 0047360 v e r , U S E A B C F 0047400 O R D A N D X Y F O R 0047420 Z i s a m b i g u o u s 0047440 a n d w i l l c a u s e a 0047460 n e r r o r . E s s e n t 0047500 i a l l y , t h e U S E c 0047520 o m m a n d o p e r a t e s 0047540 b y p r o c e e d i n g f r 0047560 o 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 " 0047620 A 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 0047660 u m b e r o f e x p r e s s 0047700 i 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 0047740 s 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 0050000 x p r e s s i o n s a r e g 0050020 e n e r a t e d . T h u s 0050040 U S E A B C D F O R 0050060 E F m e a n s s u b s t i 0050100 t u t e A f o r E a t 0050120 t 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 0050160 f o r F , t h e n i n a 0050200 n o t h e r c o p y o f t 0050220 h e i n d i c a t e d e x p 0050240 r e s s i o n , s u b s t i t 0050260 u t e C f o r E a n d 0050300 D f o r F . N o t e t 0050320 h 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 0050360 S 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 0050440 S E c o m m a n d g e t s 0050460 m 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 0050540 n e o f t h e e x p r e s 0050560 s i o n s a r e t h e s a 0050600 m e , e . g . , U S E X 0050620 Y F O R Y X , o r U S 0050640 E X F O R Y A N D Y 0050660 F O R X . T h i s s i t 0050700 u a t i o n i s n o t i c e 0050720 d w h e n p a r s i n g t 0050740 h e c o m m a n d , a n d 0050760 h a n d l e d c o r r e c t l 0051000 y . \r . . . V A R S \t [ P 0051020 r o g . A s s t . C o m m a 0051040 n d ] \r S i m i l a r t o U 0051060 S E e x c e p t s u b s t i 0051100 t u t e s f o r t h e ( f 0051120 i r s t ) o p e r a n d . \r F 0051140 o r e x a m p l e , E X P R 0051160 P ( F O O ) f o l l o w e d 0051200 b y . . . F I E F U M i 0051220 s e q u i v a l e n t t o 0051240 U S E F I E F U M F O R 0051260 F O O . \r \r N o t e : I n 0051300 t h e f o l l o w i n g d i 0051320 s c u s s i o n , $ i s u 0051340 s 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 " 0051400 e s c a p e , " s i n c e t 0051420 h i s i s h o w t h i s 0051440 c h a r a c t e r i s e c h 0051460 o e d . \r $ X F O R Y I 0051500 N E v e n t S p e c \t [ P 0051520 r o g . A s s t . C o m m a 0051540 n d ] \r $ ( e s c a p e ) i 0051560 s a s p e c i a l f o r m 0051600 o f t h e U S E c o m m 0051620 a n d f o r c o n v e n i e 0051640 n t l y s p e c i f y i n g 0051660 c h a r a c t e r s u b s t i 0051700 t u t i o n s i n l i t a t 0051720 o m s o r s t r i n g s . 0051740 I n a d d i t i o n , i t 0051760 h a s a n u m b e r o f 0052000 u s e f u l p r o p e r t i 0052020 e s i n c o n n e c t i o n 0052040 w i t h e v e n t s t h a 0052060 t i n v o l v e e r r o r s 0052100 ( s e e b e l o w ) . \r E q 0052120 u i v a l e n t t o U S E 0052140 $ X $ F O R $ Y $ I N E 0052160 v e n t S p e c , w h i c h 0052200 w i l l d o a c h a r a c 0052220 t e r s u b s t i t u t i o n 0052240 o f t h e c h a r a c t e 0052260 r s i n X f o r t h e 0052300 c h a r a c t e r s i n Y . 0052320 \r F o r e x a m p l e , i f 0052340 t h e u s e r t y p e s 0052360 M O V D ( F O O F O O S A V E 0052400 T ) , h e c a n t h e n 0052420 t y p e $ F I E F O R 0052440 F O O I N M O V D t o p 0052460 e r f o r m M O V D ( F I E 0052500 F I E S A V E T ) . N o t 0052520 e t h a t U S E F I E F 0052540 O R F O O w o u l d p e r 0052560 f o r m M O V D ( F I E F O 0052600 O S A V E T ) . \r \r $ Y X 0052620 I N E v e n t S p e c \t 0052640 [ P r o g . A s s t . C o m 0052660 m a n d ] \r $ Y T O X I 0052700 N E v e n t S p e c \t [ P 0052720 r o g . A s s t . C o m m a 0052740 n d ] \r $ Y = X I N E 0052760 v e n t S p e c \t [ P r o g 0053000 . A s s t . C o m m a n d ] 0053020 \r $ Y - > X I N E v e 0053040 n t S p e c \t [ P r o g . 0053060 A s s t . C o m m a n d ] \r A 0053100 b b r e v i a t e d f o r m s 0053120 o f t h e $ ( e s c a p 0053140 e ) c o m m a n d : t h e 0053160 s a m e a s $ X F O R 0053200 Y I N E v e n t S p e c , 0053220 w h i c h c h a n g e s Y s 0053240 t o X s . \r \r $ d o e s 0053260 e v e n t l o c a t i o n t 0053300 h e s a m e a s t h e U 0053320 S E c o m m a n d , i . e . 0053340 , i f I N E v e n t S p e 0053360 c i s n o t s p e c i f i 0053400 e d , $ s e a r c h e s f 0053420 o r Y . H o w e v e r , 0053440 u n l i k e U S E , $ c a 0053460 n o n l y b e u s e d t 0053500 o s p e c i f y o n e s u 0053520 b s t i t u t i o n a t a 0053540 t i m e . A f t e r $ f 0053560 i n d s t h e e v e n t , 0053600 i t l o o k s t o s e e 0053620 i f a n e r r o r w a s 0053640 i n v o l v e d i n t h a t 0053660 e v e n t , a n d i f t 0053700 h e i n d i c a t e d c h a 0053720 r a c t e r s u b s t i t u t 0053740 i o n c a n b e p e r f o 0053760 r m e d i n t h e o b j e 0054000 c t o f t h e e r r o r 0054020 m e s s a g e , c a l l e d 0054040 t h e o f f e n d e r . I 0054060 f s o , $ a s s u m e s 0054100 t h e s u b s t i t u t i o n 0054120 r e f e r s t o t h e o 0054140 f f e n d e r , p e r f o r m 0054160 s t h e i n d i c a t e d 0054200 c h a r a c t e r s u b s t i 0054220 t u t i o n i n t h e o f 0054240 f e n d e r o n l y , a n d 0054260 t h e n s u b s t i t u t e 0054300 s t h e r e s u l t f o r 0054320 t h e o r i g i n a l o f 0054340 f e n d e r t h r o u g h o u 0054360 t t h e e v e n t . F o 0054400 r e x a m p l e , s u p p o 0054420 s e t h e u s e r t y p e 0054440 s ( P R E T T Y D E F F O O 0054460 F N S ' F O O F O O O V A R 0054500 S ) c a u s i n g a U . B 0054520 . A . F O O O V A R S e r r 0054540 o r m e s s a g e . T h e 0054560 u s e r c a n n o w t y 0054600 p e $ O O O , w h i c h 0054620 w i l l c h a n g e F O O 0054640 O V A R S t o F O O V A R S 0054660 , b u t n o t c h a n g e 0054700 F O O F N S o r F O O . \r 0054720 I f a n e r r o r d i d 0054740 o c c u r i n t h e s p e 0054760 c i f i e d e v e n t , t h 0055000 e u s e r c a n a l s o 0055020 o m i t s p e c i f y i n g 0055040 t h e o b j e c t o f t h 0055060 e s u b s t i t u t i o n , 0055100 Y , i n w h i c h c a s e 0055120 t h e o f f e n d e r i t 0055140 s e l f i s u s e d . T 0055160 h u s , t h e u s e r c o 0055200 u l d h a v e c o r r e c t 0055220 e d t h e a b o v e e x a 0055240 m p l e b y s i m p l y t 0055260 y p i n g $ F O O V A R S . 0055300 S i n c e E S U B S T i 0055320 s u s e d f o r p e r f o 0055340 r m i n g t h e s u b s t i 0055360 t u t i o n ( s e e p a g e 0055400 X . X X ) , $ c a n b e 0055420 u s e d i n X t o r e 0055440 f e r t o t h e c h a r a 0055460 c t e r s i n Y . F o r 0055500 e x a m p l e , i f t h e 0055520 u s e r t y p e s L O A D 0055540 ( P R S T R U C P R O P ) , 0055560 c a u s i n g t h e e r r o 0055600 r F I L E N O T F O U N D 0055620 P R S T R U C , h e c a n 0055640 r e q u e s t t h e f i l 0055660 e t o b e l o a d e d f 0055700 r o m L I S P ' s d i r e c 0055720 t o r y b y s i m p l y t 0055740 y p i n g $ < L I S P > $ . 0055760 T h i s i s e q u i v a 0056000 l e n t t o p e r f o r m i 0056020 n g ( R P R S T R U C < L 0056040 I S P > $ ) o n t h e e v 0056060 e n t , a n d t h e r e f o 0056100 r e r e p l a c e s P R S T 0056120 R U C b y < L I S P > P R S 0056140 T R U C . \r N o t e t h a t 0056160 $ n e v e r s e a r c h e s 0056200 f o r a n e r r o r . 0056220 T h u s , i f t h e u s e 0056240 r t y p e s L O A D ( P R S 0056260 T R U C P R O P ) c a u s i 0056300 n g a F I L E N O T F O 0056320 U N D e r r o r , t y p e s 0056340 C L O S E A L L ( ) , a n d 0056360 t h e n t y p e s $ < L 0056400 I S P > $ , L I S P X w i l 0056420 l c o m p l a i n t h a t 0056440 t h e r e i s n o e r r o 0056460 r i n C L O S E A L L ( ) . 0056500 I n t h i s c a s e , t 0056520 h e u s e r w o u l d h a 0056540 v e t o t y p e $ < L I 0056560 S P > $ I N L O A D , o r 0056600 $ P R S < L I S P > P R S 0056620 ( w h i c h w o u l d c a 0056640 u s e a s e a r c h f o r 0056660 P R S ) . \r N o t e a l s o 0056700 t h a t $ o p e r a t e s 0056720 o n i n p u t , n o t o 0056740 n p r o g r a m s . I f 0056760 t h e u s e r t y p e s F 0057000 O O ( ) , a n d w i t h i n 0057020 t h e c a l l t o F O O 0057040 g e t s a U . D . F . C 0057060 O N D D e r r o r , h e c 0057100 a n n o t r e p a i r t h i 0057120 s b y $ C O N D . L I 0057140 S P X w i l l t y p e C O 0057160 N D D N O T F O U N D I N 0057200 F O O ( ) . \r F I X E v e n 0057220 t S p e c \t [ P r o g . A 0057240 s s t . C o m m a n d ] \r E n 0057260 v o k e s t h e d e f a u l 0057300 t p r o g r a m e d i t o r 0057320 ( D e d i t o r t h e t 0057340 e l e t y p e e d i t o r ) 0057360 o n a c o p y o f t h e 0057400 i n p u t ( s ) f o r E v 0057420 e n t S p e c . W h e n e v 0057440 e r t h e u s e r e x i t 0057460 s v i a O K , t h e r e 0057500 s u l t i s u n r e a d a 0057520 n d r e e x e c u t e d e x 0057540 a c t l y a s w i t h R E 0057560 D O . \r \r F I X i s p r o v 0057600 i d e d f o r t h o s e c 0057620 a s e s w h e n t h e m o 0057640 d i f i c a t i o n s t o t 0057660 h e i n p u t ( s ) a r e 0057700 n o t s i m p l e s u b s t 0057720 i t u t i o n s o f t h e 0057740 t y p e t h a t c a n b e 0057760 s p e c i f i e d b y U S 0060000 E . F o r e x a m p l e , 0060020 i f t h e d e f a u l t 0060040 e d i t o r i s t h e t e 0060060 l e t y p e e d i t o r , t 0060100 h e n : \r _ ( D E F I N E Q F 0060120 O O ( L A M B D A ( X ) ( 0060140 F I X S P E L L S P E L L I N 0060160 G S 2 X 7 0 ] \r I N C O R R 0060200 E C T D E F I N I N G F O R 0060220 M \r F O O \r _ F I X \r E D I T \r 0060240 * P \r ( D E F I N E Q F O O 0060260 ( L A M B D A & & ) ) \r * ( 0060300 L I 2 ) \r * P \r ( D E F I N E 0060320 Q ( F O O & ) ) \r * O K \r ( 0060340 F O O ) \r _ \r T h e u s e r 0060360 c a n a l s o s p e c i f y 0060400 t h e e d i t c o m m a n 0060420 d ( s ) t o L I S P X , b 0060440 y t y p i n g - f o l l o 0060460 w e d b y t h e c o m m a 0060500 n d ( s ) a f t e r t h e 0060520 e v e n t s p e c i f i c a t 0060540 i o n , e . g . , F I X - 0060560 ( L I 2 ) . I n t h i 0060600 s c a s e , t h e e d i t 0060620 o r w i l l n o t t y p e 0060640 E D I T , o r w a i t f 0060660 o r a n O K a f t e r e 0060700 x e c u t i n g t h e c o m 0060720 m a n d s . \r N o t e : F I 0060740 X c a l l s t h e e d i t 0060760 o r o n t h e " i n p u t 0061000 s e q u e n c e " o f a n 0061020 e v e n t , a d j u s t i n 0061040 g t h e e d i t o r s o 0061060 i t i s i n i t i a l l y 0061100 e d i t i n g t h e e x p r 0061120 e s s i o n t y p e d . H 0061140 o w e v e r , t h e e n t i 0061160 r e i n p u t s e q u e n c 0061200 e i s b e i n g e d i t e 0061220 d , s o i t i s p o s s 0061240 i b l e t o g i v e e d i 0061260 t o r c o m m a n d s t h a 0061300 t e x a m i n e t h i s s 0061320 t r u c t u r e f u r t h e r 0061340 . F o r m o r e i n f o 0061360 r m a t i o n o n t h e f 0061400 o r m a t o f a n e v e n 0061420 t ' s i n p u t , s e e p 0061440 a g e X . X X . \r ? ? E v e 0061460 n t S p e c \t [ P r o g . 0061500 A s s t . C o m m a n d ] \r P 0061520 r i n t s t h e s p e c i f 0061540 i e d e v e n t s f r o m 0061560 t h e h i s t o r y l i s t 0061600 . I f E v e n t S p e c 0061620 i s o m i t t e d , ? ? p 0061640 r i n t s t h e e n t i r e 0061660 h i s t o r y l i s t , b 0061700 e g i n n i n g w i t h m o 0061720 s t r e c e n t e v e n t s 0061740 . O t h e r w i s e ? ? 0061760 p r i n t s o n l y t h o s 0062000 e e v e n t s s p e c i f i 0062020 e d i n E v e n t S p e c 0062040 ( i n t h e o r d e r s p 0062060 e c i f i e d ) . F o r e 0062100 x a m p l e , ? ? - 1 , ? 0062120 ? 1 0 T H R U 1 5 , e t 0062140 c . \r F o r e a c h e v e n 0062160 t s p e c i f i e d , ? ? 0062200 p r i n t s t h e e v e n t 0062220 n u m b e r , t h e p r o 0062240 m p t , t h e i n p u t l 0062260 i n e ( s ) , a n d t h e 0062300 v a l u e ( s ) . I f t h 0062320 e e v e n t i n p u t w a 0062340 s a p . a . c o m m a n d 0062360 t h a t " u n r e a d " s 0062400 o m e o t h e r i n p u t 0062420 l i n e s , t h e p . a . 0062440 c o m m a n d i s p r i n t 0062460 e d w i t h o u t a p r e 0062500 c e d i n g p r o m p t , t 0062520 o s h o w t h a t t h e y 0062540 a r e n o t s t o r e d 0062560 a s t h e i n p u t , a n 0062600 d t h e i n p u t l i n e 0062620 s a r e p r i n t e d w i 0062640 t h p r o m p t s . \r E v e n 0062660 t s a r e i n i t i a l l y 0062700 s t o r e d o n t h e h 0062720 i s t o r y l i s t w i t h 0062740 t h e i r v a l u e f i e 0062760 l d e q u a l t o t h e 0063000 c h a r a c t e r " b e l l " 0063020 ( c o n t r o l - G ) . T 0063040 h e f o r e , i f a n o p 0063060 e r a t i o n f a i l s t o 0063100 c o m p l e t e f o r a n 0063120 y r e a s o n , e . g . , 0063140 c a u s e s a n e r r o r , 0063160 i s a b o r t e d , e t c 0063200 . , ? ? w i l l p r i n t 0063220 a b e l l a s i t s " 0063240 v a l u e " . \r ? ? c o m m a 0063260 n d s a r e n o t e n t e 0063300 r e d o n t h e h i s t o 0063320 r y l i s t , a n d s o 0063340 d o n o t a f f e c t r e 0063360 l a t i v e e v e n t n u m 0063400 b e r s . I n o t h e r 0063420 w o r d s , a n e v e n t 0063440 s p e c i f i c a t i o n o f 0063460 - 1 t y p e d f o l l o w 0063500 i n g a ? ? c o m m a n d 0063520 w i l l r e f e r t o t 0063540 h e e v e n t i m m e d i a 0063560 t e l y p r e c e d i n g t 0063600 h e ? ? c o m m a n d . \r ? 0063620 ? i s i m p l e m e n t e d 0063640 v i a t h e f u n c t i o 0063660 n P R I N T H I S T O R Y , 0063700 p a g e X . X X , w h i c h 0063720 c a n a l s o b e c a l 0063740 l e d d i r e c t l y b y 0063760 t h e u s e r . P r i n t 0064000 i n g i s p e r f o r m e d 0064020 v i a t h e f u n c t i o 0064040 n S H O W P R I N 2 ( p a g 0064060 e X . X X ) , s o t h a t 0064100 i f t h e v a l u e o f 0064120 S Y S P R E T T Y F L G = T , 0064140 e v e n t s w i l l b e 0064160 p r e t t y p r i n t e d . \r \r 0064200 U N D O E v e n t S p e c 0064220 \t [ P r o g . A s s t . C o 0064240 m m a n d ] \r U n d o e s t h 0064260 e s i d e e f f e c t s o 0064300 f t h e s p e c i f i e d 0064320 e v e n t s . F o r e a c 0064340 h e v e n t u n d o n e , 0064360 U N D O p r i n t s a m e 0064400 s s a g e : R P L A C A u 0064420 n d o n e , R E D O u n d o 0064440 n e e t c . I f n o t h 0064460 i n g i s u n d o n e b e 0064500 c a u s e n o t h i n g w a 0064520 s s a v e d , U N D O t y 0064540 p e s n o t h i n g s a v e 0064560 d . I f n o t h i n g w 0064600 a s u n d o n e b e c a u s 0064620 e t h e e v e n t ( s ) w 0064640 e r e a l r e a d y u n d o 0064660 n e , U N D O t y p e s a 0064700 l r e a d y u n d o n e . \r I 0064720 f E v e n t S p e c i s n 0064740 o t g i v e n , U N D O s 0064760 e a r c h e s b a c k f o r 0065000 t h e l a s t e v e n t 0065020 t h a t c o n t a i n e d s 0065040 i d e e f f e c t s , w a s 0065060 n o t u n d o n e , a n d 0065100 i t s e l f w a s n o t 0065120 a n U N D O c o m m a n d . 0065140 N o t e t h a t t h e 0065160 u s e r c a n u n d o U N 0065200 D O c o m m a n d s t h e m 0065220 s e l v e s b y s p e c i f 0065240 y i n g t h e c o r r e s p 0065260 o n d i n g e v e n t a d d 0065300 r e s s , e . g . , U N D O 0065320 - 7 o r U N D O U N D O 0065340 . \r \r I n o r d e r t o r 0065360 e s t o r e a l l p o i n t 0065400 e r s c o r r e c t l y , t 0065420 h e u s e r s h o u l d U 0065440 N D O e v e n t s i n t h 0065460 e r e v e r s e o r d e r 0065500 f r o m w h i c h t h e y 0065520 w e r e e x e c u t e d . 0065540 F o r e x a m p l e , t o 0065560 u n d o a l l t h e s i d 0065600 e e f f e c t s o f t h e 0065620 l a s t f i v e e v e n t 0065640 s , p e r f o r m U N D O 0065660 T H R U - 5 , n o t U N D 0065700 O F R O M - 5 . U n d o 0065720 i n g o u t o f o r d e r 0065740 m a y h a v e u n f o r s 0065760 e e n e f f e c t s i f t 0066000 h e o p e r a t i o n s a r 0066020 e d e p e n d e n t . F o 0066040 r e x a m p l e , i f t h 0066060 e u s e r p e r f o r m e d 0066100 ( N C O N C 1 F O O F I E 0066120 ) , f o l l o w e d b y ( 0066140 N C O N C 1 F O O F U M ) , 0066160 a n d t h e n u n d o e s 0066200 t h e ( N C O N C 1 F O O 0066220 F I E ) , h e w i l l a 0066240 l s o h a v e u n d o n e 0066260 t h e ( N C O N C 1 F O O 0066300 F U M ) . I f h e t h e 0066320 n u n d o e s t h e ( N C 0066340 O N C 1 F O O F U M ) , h 0066360 e w i l l c a u s e t h e 0066400 F I E t o r e a p p e a r 0066420 , b y v i r t u e o f r 0066440 e s t o r i n g F O O t o 0066460 i t s s t a t e b e f o r e 0066500 t h e e x e c u t i o n o 0066520 f ( N C O N C 1 F O O F U 0066540 M ) . F o r m o r e d e 0066560 t a i l s , s e e p a g e 0066600 X . X X . \r U N D O E v e n t 0066620 S p e c : X 1 . . . X N 0066640 \t [ P r o g . A s s t . 0066660 C o m m a n d ] \r E a c h X i 0066700 i s a p a t t e r n t h 0066720 a t i s m a t c h e d t o 0066740 a m e s s a g e p r i n t 0066760 e d b y D W I M i n t h 0067000 e e v e n t ( s ) s p e c i 0067020 f i e d b y E v e n t S p e 0067040 c . T h e s i d e e f f 0067060 e c t s o f t h e c o r r 0067100 e s p o n d i n g D W I M c 0067120 o r r e c t i o n s , a n d 0067140 o n l y t h o s e s i d e 0067160 e f f e c t s , a r e u n d 0067200 o n e . \r F o r e x a m p l e 0067220 , i f D W I M p r i n t e 0067240 d t h e m e s s a g e P R 0067260 I N T T [ I N F O O ] - > 0067300 P R I N T , t h e n U N D 0067320 O : P R I N T T o r U N 0067340 D O : P R I N T w o u l d 0067360 u n d o t h e c o r r e c 0067400 t i o n . \r S o m e p o r t i 0067420 o n s o f t h e m e s s a 0067440 g e s p r i n t e d b y D 0067460 W I M a r e s t r i n g s , 0067500 e . g . , t h e m e s s a 0067520 g e F O O U N S A V E D i 0067540 s p r i n t e d b y p r i 0067560 n t i n g F O O a n d t h 0067600 e n " U N S A V E D " . 0067620 T h e r e f o r e , i f t h 0067640 e u s e r t y p e s U N D 0067660 O : U N S A V E D , t h e 0067700 D W I M c o r r e c t i o n 0067720 w i l l n o t b e f o u 0067740 n d . H e s h o u l d i 0067760 n s t e a d t y p e U N D O 0070000 : F O O o r U N D O : 0070020 $ U N S A V E D $ ( < e s c 0070040 > U N S A V E D < e s c > , s 0070060 e e R c o m m a n d i n 0070100 e d i t o r , p a g e X . X 0070120 X ) . \r \r N A M E L I T A T O 0070140 M E v e n t S p e c \t [ P 0070160 r o g . A s s t . C o m m a 0070200 n d ] \r S a v e s t h e e v 0070220 e n t ( s ) ( i n c l u d i n 0070240 g s i d e e f f e c t s ) 0070260 s p e c i f i e d b y E v e 0070300 n t S p e c o n t h e p r 0070320 o p e r t y l i s t o f L 0070340 I T A T O M ( u n d e r t h 0070360 e p r o p e r t y H I S T O 0070400 R Y ) . F o r e x a m p l 0070420 e , N A M E F O O 1 0 T 0070440 H R U 1 5 . N A M E c o 0070460 m m a n d s a r e u n d o a 0070500 b l e . \r E v e n t s s a v e 0070520 d o n a l i t a t o m c 0070540 a n b e r e t r i e v e d 0070560 w i t h t h e e v e n t s 0070600 p e c i f i c a t i o n @ L 0070620 I T A T O M . F o r e x a 0070640 m p l e , ? ? @ F O O , 0070660 R E D O @ F O O , e t c . 0070700 \r C o m m a n d s d e f i n e 0070720 d b y N A M E c a n a l 0070740 s o b e t y p e d i n d 0070760 i r e c t l y a s t h o u g 0071000 h t h e y w e r e b u i l 0071020 t - i n c o m m a n d s , e 0071040 . g . , F O O c r i s e q 0071060 u i v a l e n t t o R E D O 0071100 @ F O O . H o w e v e r 0071120 , i f F O O i s t h e 0071140 n a m e o f a v a r i a b 0071160 l e , i t w o u l d b e 0071200 e v a l u a t e d , i . e . , 0071220 F O O c r w o u l d r e t 0071240 u r n t h e v a l u e o f 0071260 F O O . \r \r C o m m a n d s 0071300 d e f i n e d b y N A M E 0071320 c a n a l s o b e d e f i 0071340 n e d t o t a k e a r g u 0071360 m e n t s : \r N A M E L I T A 0071400 T O M ( A R G 1 . . . A R 0071420 G N ) : E v e n t S p e c 0071440 \t [ P r o g . A s s t . C 0071460 o m m a n d ] \r N A M E L I T 0071500 A T O M A R G 1 . . . A R 0071520 G N : E v e n t S p e c 0071540 \t [ P r o g . A s s t . C o 0071560 m m a n d ] \r T h e a r g u m 0071600 e n t s A R G i a r e i n 0071620 t e r p r e t e d t h e s a 0071640 m e a s t h e a r g u m e 0071660 n t s f o r a U S E c o 0071700 m m a n d . W h e n L I T 0071720 A T O M i s i n v o k e d , 0071740 t h e a r g u m e n t v a 0071760 l u e s a r e s u b s t i t 0072000 u t e d f o r A R G 1 . . 0072020 . A R G N u s i n g t h e 0072040 s a m e s u b s t i t u t i 0072060 o n a l g o r i t h m a s 0072100 f o r U S E . \r N A M E F O 0072120 O E v e n t S p e c i s e 0072140 q u i v a l e n t t o N A M 0072160 E F O O : E v e n t S p e 0072200 c . I n e i t h e r c a 0072220 s e , i f F O O i s i n 0072240 v o k e d w i t h a r g u m 0072260 e n t s , a n e r r o r i 0072300 s g e n e r a t e d . \r \r F o 0072320 r e x a m p l e , f o l l o 0072340 w i n g t h e e v e n t ( 0072360 P U T D ' F O O ( C O P Y 0072400 ( G E T P R O P ' F I E ' E 0072420 X P R ) ) ) , t h e u s e r 0072440 t y p e s N A M E M O V E 0072460 F O O F I E : P U T D . 0072500 T h e n t y p i n g M O V 0072520 E T E S T 1 T E S T 2 w o 0072540 u l d c a u s e ( P U T D 0072560 ' T E S T 1 ( C O P Y ( G E 0072600 T P R O P ' T E S T 2 ' E X 0072620 P R ) ) ) t o b e e x e c 0072640 u t e d , i . e . , w o u l 0072660 d b e e q u i v a l e n t 0072700 t o t y p i n g U S E T E 0072720 S T 1 T E S T 2 F O R F O 0072740 O F I E I N M O V E . T 0072760 y p i n g M O V E A B C 0073000 D w o u l d c a u s e t 0073020 w o P U T D ' s t o b e 0073040 e x e c u t e d . N o t e t 0073060 h a t ! ' s a n d $ ' s 0073100 c a n a l s o b e e m p l 0073120 o y e d t h e s a m e a s 0073140 w i t h U S E . F o r 0073160 e x a m p l e , i f f o l l 0073200 o w i n g \r _ P R E P I N D E X 0073220 ( < M A N U A L > 1 4 L I S P . 0073240 X G P ) \r _ F I X F I L E ( < M 0073260 A N U A L > 1 4 L I S P . X G P 0073300 I D X ) \r t h e u s e r p e 0073320 r f o r m e d N A M E F O O 0073340 $ 1 4 $ : - 2 A N D - 0073360 1 , t h e n F O O $ 1 5 $ 0073400 w o u l d p e r f o r m t 0073420 h e i n d i c a t e d t w o 0073440 o p e r a t i o n s w i t h 0073460 1 4 r e p l a c e d b y 0073500 1 5 . \r R E T R I E V E L I T 0073520 A T O M \t [ P r o g . A s 0073540 s t . C o m m a n d ] \r R e t 0073560 r i e v e s a n d r e e n t 0073600 e r s o n t h e h i s t o 0073620 r y l i s t t h e e v e n 0073640 t s n a m e d b y L I T A 0073660 T O M . C a u s e s a n 0073700 e r r o r i f L I T A T O M 0073720 w a s n o t n a m e d b 0073740 y a N A M E c o m m a n d 0073760 . \r \r F o r e x a m p l e , 0074000 i f t h e u s e r p e r f 0074020 o r m s N A M E F O O 1 0 0074040 T H R U 1 5 , a n d a t 0074060 s o m e t i m e l a t e r 0074100 t y p e s R E T R I E V E 0074120 F O O , 6 n e w e v e n t 0074140 s w i l l b e r e c o r d 0074160 e d o n t h e h i s t o r 0074200 y l i s t ( w h e t h e r 0074220 o r n o t t h e c o r r e 0074240 s p o n d i n g e v e n t s 0074260 h a v e b e e n f o r g o t 0074300 t e n y e t ) . N o t e 0074320 t h a t R E T R I E V E d o 0074340 e s n o t r e e x e c u t e 0074360 t h e e v e n t s , i t 0074400 s i m p l y r e t r i e v e s 0074420 t h e m . T h e u s e r 0074440 c a n t h e n R E D O , 0074460 U N D O , F I X , e t c . 0074500 a n y o r a l l o f t h 0074520 e s e e v e n t s . N o t e 0074540 t h a t t h e u s e r c 0074560 a n c o m b i n e t h e e 0074600 f f e c t s o f a R E T R 0074620 I E V E a n d a s u b s e 0074640 q u e n t h i s t o r y c o 0074660 m m a n d i n a s i n g l 0074700 e o p e r a t i o n , e . g 0074720 . , R E D O F O O i s e 0074740 q u i v a l e n t t o R E T 0074760 R I E V E F O O , f o l l o 0075000 w e d b y a n a p p r o p 0075020 r i a t e R E D O . A c t 0075040 u a l l y , R E D O F O O 0075060 i s b e t t e r t h a n R 0075100 E T R I E V E f o l l o w e d 0075120 b y R E D O s i n c e i 0075140 n t h e l a t t e r c a s 0075160 e , t h e c o r r e s p o n 0075200 d i n g e v e n t s w o u l 0075220 d b e e n t e r e d o n 0075240 t h e h i s t o r y l i s t 0075260 t w i c e , o n c e f o r 0075300 t h e R E T R I E V E a n 0075320 d o n c e f o r t h e R 0075340 E D O . N o t e t h a t 0075360 U N D O F O O a n d ? ? 0075400 F O O a r e p e r m i t t e 0075420 d . \r B E F O R E L I T A T O 0075440 M \t [ P r o g . A s s t . 0075460 C o m m a n d ] \r U n d o e s 0075500 t h e e f f e c t s o f 0075520 t h e e v e n t s n a m e d 0075540 b y L I T A T O M . \r \r A F 0075560 T E R L I T A T O M \t [ P 0075600 r o g . A s s t . C o m m a 0075620 n d ] \r U n d o e s a B E F 0075640 O R E L I T A T O M . \r \r B E 0075660 F O R E a n d A F T E R p 0075700 r o v i d e a c o n v e n i 0075720 e n t w a y o f f l i p p 0075740 i n g b a c k a n d f o r 0075760 t h b e t w e e n t w o s 0076000 t a t e s , n a m e l y t h 0076020 e s t a t e b e f o r e a 0076040 s p e c i f i e d e v e n t 0076060 o r e v e n t s w e r e 0076100 e x e c u t e d , a n d t h 0076120 a t s t a t e a f t e r e 0076140 x e c u t i o n . F o r e 0076160 x a m p l e , i f t h e u 0076200 s e r h a s a c o m p l e 0076220 x d a t a s t r u c t u r e 0076240 w h i c h h e w a n t s 0076260 t o b e a b l e t o i n 0076300 t e r r o g a t e b e f o r e 0076320 a n d a f t e r c e r t a 0076340 i n m o d i f i c a t i o n s 0076360 , h e c a n e x e c u t e 0076400 t h e m o d i f i c a t i o 0076420 n s , n a m e t h e c o r 0076440 r e s p o n d i n g e v e n t 0076460 s w i t h t h e N A M E 0076500 c o m m a n d , a n d t h e 0076520 n c a n t u r n t h e s e 0076540 m o d i f i c a t i o n s o 0076560 f f a n d o n v i a B E 0076600 F O R E o r A F T E R c o 0076620 m m a n d s . B o t h B E 0076640 F O R E a n d A F T E R a 0076660 r e n o - o p s i f t h e 0076700 L I T A T O M w a s a l r 0076720 e a d y i n t h e c o r r 0076740 e s p o n d i n g s t a t e ; 0076760 b o t h g e n e r a t e e 0077000 r r o r s i f L I T A T O M 0077020 w a s n o t n a m e d b 0077040 y a N A M E c o m m a n d 0077060 . \r T h e a l t e r n a t i v 0077100 e t o B E F O R E a n d 0077120 A F T E R f o r r e p e a t 0077140 e d s w i t c h i n g b a c 0077160 k a n d f o r t h i n v o 0077200 l v e s t y p i n g U N D O 0077220 , U N D O o f t h e U N 0077240 D O , U N D O o f t h a t 0077260 e t c . A t e a c h s 0077300 t a g e , t h e u s e r w 0077320 o u l d h a v e t o l o c 0077340 a t e t h e c o r r e c t 0077360 e v e n t t o u n d o , a 0077400 n d f u r t h e r m o r e w 0077420 o u l d r u n t h e r i s 0077440 k o f t h a t e v e n t 0077460 b e i n g " f o r g o t t e n 0077500 " i f h e d i d n o t 0077520 s w i t c h a t l e a s t 0077540 o n c e p e r t i m e - s l 0077560 i c e . \r N o t e : S i n c 0077600 e U N D O , N A M E , R E 0077620 T R I E V E , B E F O R E , 0077640 a n d A F T E R a r e r e 0077660 c o r d e d a s i n p u t s 0077700 t h e y c a n b e r e f 0077720 e r e n c e d b y R E D O , 0077740 U S E , e t c . i n t h 0077760 e n o r m a l w a y . H 0100000 o w e v e r , t h e u s e r 0100020 m u s t a g a i n r e m e 0100040 m b e r t h a t t h e c o 0100060 n t e x t i n w h i c h t 0100100 h e c o m m a n d i s r e 0100120 e x e c u t e d i s d i f f 0100140 e r e n t t h a n t h e o 0100160 r i g i n a l c o n t e x t . 0100200 F o r e x a m p l e , i 0100220 f t h e u s e r t y p e s 0100240 N A M E F O O D E F I N E 0100260 Q T H R U C O M P I L E , 0100300 t h e n t y p e s . . . F 0100320 I E , t h e i n p u t t h 0100340 a t w i l l b e r e r e a 0100360 d w i l l b e N A M E F 0100400 I E D E F I N E Q T H R U 0100420 C O M P I L E a s w a s i 0100440 n t e n d e d , b u t b o t 0100460 h D E F I N E Q a n d C O 0100500 M P I L E , w i l l r e f e 0100520 r t o t h e m o s t r e 0100540 c e n t e v e n t c o n t a 0100560 i n i n g t h o s e a t o m 0100600 s , n a m e l y t h e e v 0100620 e n t c o n s i s t i n g o 0100640 f N A M E F O O D E F I N 0100660 E Q T H R U C O M P I L E . 0100700 \r A R C H I V E E v e n t S p 0100720 e c \t [ P r o g . A s s t 0100740 . C o m m a n d ] \r R e c o r 0100760 d s t h e e v e n t s s p 0101000 e c i f i e d b y E v e n t 0101020 S p e c o n a p e r m a n 0101040 e n t " a r c h i v e d " h 0101060 i s t o r y l i s t , A R C 0101100 H I V E L S T ( p a g e X . 0101120 X X ) . T h i s h i s t o 0101140 r y l i s t c a n b e r 0101160 e f e r e n c e d b y p r e 0101200 c e d i n g a s t a n d a r 0101220 d e v e n t s p e c i f i c 0101240 a t i o n w i t h @ @ ( s 0101260 e e p a g e X . X X ) . 0101300 F o r e x a m p l e , ? ? 0101320 @ @ p r i n t s t h e a r 0101340 c h i v e d h i s t o r y l 0101360 i s t , R E D O @ @ - 1 0101400 w i l l r e c o v e r t h e 0101420 c o r r e s p o n d i n g e 0101440 v e n t f r o m t h e a r 0101460 c h i v e d h i s t o r y l 0101500 i s t a n d r e d o i t , 0101520 e t c . \r T h e u s e r c 0101540 a n a l s o p r o v i d e 0101560 f o r a u t o m a t i c a r 0101600 c h i v i n g o f s e l e c 0101620 t e d e v e n t s b y a p 0101640 p r o p r i a t e l y d e f i 0101660 n i n g A R C H I V E F N ( 0101700 p a g e X . X X ) , o r b 0101720 y p u t t i n g t h e h i 0101740 s t o r y l i s t p r o p e 0101760 r t y * A R C H I V E * , w 0102000 i t h v a l u e T , o n 0102020 t h e e v e n t ( p a g e 0102040 X . X X ) . E v e n t s t 0102060 h a t a r e r e f e r e n c 0102100 e d b y h i s t o r y c o 0102120 m m a n d s a r e a u t o m 0102140 a t i c a l l y m a r k e d 0102160 f o r a r c h i v i n g i n 0102200 t h i s f a s h i o n . \r \r 0102220 F O R G E T E v e n t S p e c 0102240 \t [ P r o g . A s s t . 0102260 C o m m a n d ] \r P e r m a n e 0102300 n t l y e r a s e s t h e 0102320 r e c o r d o f t h e s i 0102340 d e e f f e c t s f o r t 0102360 h e e v e n t s s p e c i f 0102400 i e d b y E v e n t S p e c 0102420 . I f E v e n t S p e c i 0102440 s o m i t t e d , f o r g e 0102460 t s s i d e e f f e c t s 0102500 f o r e n t i r e h i s t o 0102520 r y l i s t . \r F O R G E T 0102540 i s p r o v i d e d f o r 0102560 u s e r s w i t h s p a c e 0102600 p r o b l e m s . F o r 0102620 e x a m p l e , i f t h e 0102640 u s e r h a s j u s t p e 0102660 r f o r m e d S E T s , R P 0102700 L A C A s , R P L A C D s , 0102720 P U T D , R E M P R O P s , 0102740 e t c . t o r e l e a s e 0102760 s t o r a g e , t h e o l d 0103000 p o i n t e r s w o u l d 0103020 n o t b e g a r b a g e c 0103040 o l l e c t e d u n t i l t 0103060 h e c o r r e s p o n d i n g 0103100 e v e n t s a g e s u f f 0103120 i c i e n t l y t o d r o p 0103140 o f f t h e e n d o f 0103160 t h e h i s t o r y l i s t 0103200 a n d b e f o r g o t t e 0103220 n . F O R G E T c a n b 0103240 e u s e d t o f o r c e 0103260 i m m e d i a t e f o r g e t 0103300 t i n g ( o f t h e s i d 0103320 e - e f f e c t s o n l y ) . 0103340 F O R G E T i s n o t 0103360 u n d o a b l e ( o b v i o u 0103400 s l y ) . \r \r R E M E M B E R 0103420 E v e n t S p e c \t [ P r o 0103440 g . A s s t . C o m m a n d 0103460 ] \r I n s t r u c t s t h e 0103500 f i l e p a c k a g e t o 0103520 " r e m e m b e r " t h e e 0103540 v e n t s s p e c i f i e d 0103560 b y E v e n t S p e c . T 0103600 h e s e e v e n t s w i l l 0103620 b e m a r k e d a s c h 0103640 a n g e d o b j e c t s o f 0103660 f i l e p a c k a g e t y 0103700 p e E X P R E S S I O N S , 0103720 w h i c h c a n b e w r i 0103740 t t e n o u t v i a t h e 0103760 f i l e p a c k a g e c o 0104000 m m a n d P . F o r e x 0104020 a m p l e , a f t e r t h e 0104040 u s e r t y p e s : \r _ M 0104060 O V D ? ( D E L F I L E / D E 0104100 L F I L E ) \r D E L F I L E \r _ 0104120 R E M E M B E R - 1 \r ( M O V 0104140 D ? ( Q U O T E D E L F I L 0104160 E ) ( Q U O T E / D E L F I 0104200 L E ) ) \r _ \r I f t h e u s 0104220 e r c a l l s F I L E S ? , 0104240 M A K E F I L E S , o r C 0104260 L E A N U P , t h e c o m m 0104300 a n d ( P ( M O V D ? ( Q 0104320 U O T E D E L F I L E ) ( Q 0104340 U O T E / D E L F I L E ) ) ) 0104360 w i l l b e c o n s t r u 0104400 c t e d b y t h e f i l e 0104420 p a c k a g e a n d a d d 0104440 e d t o t h e f i l e c o 0104460 m s i n d i c a t e d b y 0104500 t h e u s e r , u n l e s s 0104520 t h e u s e r h a s a l 0104540 r e a d y e x p l i c i t l y 0104560 a d d e d t h e c o r r e 0104600 s p o n d i n g e x p r e s s 0104620 i o n t o s o m e P c o 0104640 m m a n d h i m s e l f . \r N 0104660 o t e t h a t " r e m e m b 0104700 e r i n g " a n e v e n t 0104720 l i k e ( P U T P R O P ' F 0104740 O O ' C L I S P T Y P E E X 0104760 P R E S S I O N ) w i l l n 0105000 o t r e s u l t i n a ( 0105020 P R O P C L I S P T Y P E F 0105040 O O ) c o m m a n d , b e c 0105060 a u s e t h i s w i l l s 0105100 a v e t h e c u r r e n t 0105120 ( a t t h e t i m e o f 0105140 t h e M A K E F I L E ) v a 0105160 l u e f o r t h e C L I S 0105200 P T Y P E p r o p e r t y , 0105220 w h i c h m a y o r m a y 0105240 n o t b e E X P R E S S I 0105260 O N . T h u s , e v e n 0105300 i f t h e r e i s a P R 0105320 O P c o m m a n d w h i c h 0105340 s a v e s t h e C L I S P 0105360 T Y P E p r o p e r t y f o 0105400 r F O O i n s o m e F I 0105420 L E C O M S , r e m e m b e r 0105440 i n g t h i s e v e n t w 0105460 i l l s t i l l r e q u i r 0105500 e a ( P ( P U T P R O P 0105520 ' F O O ' C L I S P T Y P E 0105540 E X P R E S S I O N ) ) c o m 0105560 m a n d t o a p p e a r . \r 0105600 \r P L L I T A T O M \t [ P 0105620 r o g . A s s t . C o m m a 0105640 n d ] \r " P r i n t P r o p e 0105660 r t y L i s t . " P r i n 0105700 t s o u t t h e p r o p e 0105720 r t y l i s t o f L I T A 0105740 T O M i n a n i c e f o 0105760 r m a t , w i t h P R I N T 0106000 L E V E L r e s e t t o ( 0106020 2 . 3 ) . F o r e x a 0106040 m p l e , \r _ P L + \r C L I S 0106060 P T Y P E : 1 2 \r A C C E S 0106100 S F N S : ( P L U S I P L 0106120 U S F P L U S ) \r P L i s 0106140 i m p l e m e n t e d v i a 0106160 t h e f u n c t i o n P R I 0106200 N T P R O P S . \r \r P B L I T 0106220 A T O M \t [ P r o g . A s 0106240 s t . C o m m a n d ] \r " P r 0106260 i n t B i n d i n g s . " 0106300 P r i n t s t h e v a l u e 0106320 o f L I T A T O M w i t h 0106340 P R I N T L E V E L r e s e 0106360 t t o ( 2 . 3 ) . I 0106400 f L I T A T O M i s n o t 0106420 b o u n d , d o e s n o t 0106440 a t t e m p t s p e l l i n 0106460 g c o r r e c t i o n o r 0106500 g e n e r a t e a n e r r o 0106520 r . P B i s i m p l e m 0106540 e n t e d v i a t h e f u 0106560 n c t i o n P R I N T B I N D 0106600 I N G S . \r P B i s a l s o 0106620 a b r e a k c o m m a n d 0106640 ( p a g e X . X X ) . A s 0106660 a b r e a k c o m m a n d 0106700 , i t a s c e n d s t h e 0106720 s t a c k a n d , f o r 0106740 e a c h f r a m e i n w h 0106760 i c h L I T A T O M i s b 0107000 o u n d , p r i n t s t h e 0107020 f r a m e n a m e a n d 0107040 v a l u e o f L I T A T O M 0107060 . I f t y p e d i n t 0107100 o t h e p r o g r a m m e r 0107120 ' s a s s i s t a n t w h e 0107140 n n o t a t t h e t o p 0107160 l e v e l , e . g . i n 0107200 t h e e d i t o r , e t c . 0107220 , P B w i l l a l s o a 0107240 s c e n d t h e s t a c k 0107260 a s i t d o e s w i t h 0107300 a b r e a k . H o w e v e 0107320 r , a s a p r o g r a m m 0107340 e r ' s a s s i s t a n t c 0107360 o m m a n d , i t i s p r 0107400 i m a r i l y u s e d t o 0107420 e x a m i n e t h e t o p 0107440 l e v e l v a l u e o f a 0107460 v a r i a b l e t h a t m 0107500 a y o r m a y n o t b e 0107520 b o u n d , o r t o e x 0107540 a m i n e a v a r i a b l e 0107560 w h o s e v a l u e i s 0107600 a l a r g e l i s t . \r \r ; 0107620 F O R M \t [ P r o g . A 0107640 s s t . C o m m a n d ] \r A l 0107660 l o w s t h e u s e r t o 0107700 t y p e a l i n e o f 0107720 t e x t w i t h o u t h a v 0107740 i n g t h e p r o g r a m m 0107760 e r ' s a s s i s t a n t p 0110000 r o c e s s i t . U s e f 0110020 u l w h e n l i n k e d t 0110040 o o t h e r u s e r s , o 0110060 r t o a n n o t a t e a 0110100 d r i b b l e f i l e ( p a 0110120 g e X . X X ) . \r \r S H H F 0110140 O R M \t [ P r o g . A s s 0110160 t . C o m m a n d ] \r A l l o 0110200 w s t h e u s e r t o e 0110220 v a l u a t e a n e x p r e 0110240 s s i o n w i t h o u t h a 0110260 v i n g t h e p r o g r a m 0110300 m e r ' s a s s i s t a n t 0110320 p r o c e s s i t o r r e 0110340 c o r d i t o n a h i s 0110360 t o r y l i s t . U s e f 0110400 u l w h e n o n e w a n t 0110420 s t o b y p a s s a p r 0110440 o g r a m m e r ' s a s s i s 0110460 t a n t c o m m a n d o r 0110500 t o k e e p t h e e v a l 0110520 u a t i o n o f f t h e h 0110540 i s t o r y l i s t . \r \r T Y 0110560 P E - A H E A D \t [ P r o g 0110600 . A s s t . C o m m a n d ] 0110620 \r A c o m m a n d t h a t 0110640 a l l o w s t h e u s e r 0110660 t o t y p e - a h e a d a n 0110700 i n d e f i n i t e n u m b 0110720 e r o f i n p u t s . \r \r T 0110740 h e a s s i s t a n t r e s 0110760 p o n d s t o T Y P E - A H 0111000 E A D w i t h a p r o m p 0111020 t c h a r a c t e r o f 0111040 > . T h e u s e r c a n 0111060 n o w t y p e i n a n 0111100 i n d e f i n i t e n u m b e 0111120 r o f l i n e s o f i n 0111140 p u t , u n d e r E R R O R 0111160 S E T p r o t e c t i o n . 0111200 T h e i n p u t l i n e s 0111220 a r e s a v e d a n d u 0111240 n r e a d w h e n t h e u 0111260 s e r e x i t s t h e t y 0111300 p e - a h e a d l o o p w i 0111320 t h t h e c o m m a n d $ 0111340 G O ( e s c a p e - G O ) . 0111360 W h i l e i n t h e t y 0111400 p e - a h e a d l o o p , ? 0111420 ? c a n b e u s e d t o 0111440 p r i n t t h e t y p e - 0111460 a h e a d , F I X t o e d 0111500 i t t h e t y p e - a h e a 0111520 d , a n d $ Q ( e s c a p 0111540 e - Q ) t o e r a s e t h 0111560 e l a s t i n p u t ( m a 0111600 y b e u s e d r e p e a t 0111620 e d l y ) . T h e T Y P E 0111640 - A H E A D c o m m a n d m 0111660 a y b e a b o r t e d b y 0111700 $ S T O P ( e s c a p e - S 0111720 T O P ) ; c o n t r o l - E 0111740 s i m p l y a b o r t s t h 0111760 e c u r r e n t l i n e o 0112000 f i n p u t . \r F o r e x a 0112020 m p l e : \r _ T Y P E - A H E A 0112040 D \r > S Y S O U T ( T E M ) \r > 0112060 M A K E F I L E ( E D I T ) \r > 0112100 B R E C O M P I L E ( ( E D I T 0112120 W E D I T ) ) \r > F \r > $ Q \r 0112140 \ \ F \r > $ Q \r \ \ B R E C O M 0112160 P I L E \r > L O A D ( W E D I T 0112200 P R O P ) \r > B R E C O M P I 0112220 L E ( ( E D I T W E D I T ) ) 0112240 \r > F \r > M A K E F I L E ( B R 0112260 E A K ) \r > L I S T F I L E S ( 0112300 E D I T B R E A K ) \r > S Y S 0112320 O U T ( C U R R E N T ) \r > L O 0112340 G O U T ] \r > ? ? \r > 0112360 S Y S O U T ( T E M ) \r 0112400 > M A K E F I L E ( E D I T ) 0112420 \r > L O A D ( W E D I 0112440 T P R O P ) \r > B R 0112460 E C O M P I L E ( ( E D I T W 0112500 E D I T ) ) \r > F \r 0112520 > M A K E F I L E ( B R 0112540 E A K ) \r > L I S T F 0112560 I L E S ( E D I T B R E A K ) 0112600 \r > S Y S O U T ( C U 0112620 R R E N T ) \r > L O G 0112640 O U T ] \r > F I X \r E D I T \r * 0112660 ( R B R E C O M P I L E B C 0112700 O M P L ) \r * P \r ( ( L O G O U 0112720 T ) ( S Y S O U T & ) ( L 0112740 I S T F I L E S & ) ( M A K 0112760 E F I L E & ) ( F ) ( B C 0113000 O M P L & ) \r ( L O A D & ) 0113020 ( M A K E F I L E & ) ( S 0113040 Y S O U T & ) ) \r * ( D E L E 0113060 T E L O A D ) \r * O K \r > $ G 0113100 O \r N o t e t h a t t y p e 0113120 - a h e a d c a n b e a d 0113140 d r e s s e d t o t h e c 0113160 o m p i l e r , s i n c e i 0113200 t u s e s L I S P X R E A D 0113220 f o r i n p u t . T y p 0113240 e - a h e a d c a n a l s o 0113260 b e d i r e c t e d t o 0113300 t h e e d i t o r , b u t 0113320 t y p e - a h e a d t o t h 0113340 e e d i t o r a n d t o 0113360 L I S P X c a n n o t b e 0113400 i n t e r m i x e d . \r T h e 0113420 f o l l o w i n g a r e s o 0113440 m e u s e f u l f u n c t i 0113460 o n s a n d v a r i a b l e 0113500 s : \r ( V A L U E O F L I N E 0113520 ) \t [ N L a m b d a N o S 0113540 p r e a d F u n c t i o n ] \r 0113560 A n n l a m b d a f u n c t 0113600 i o n f o r o b t a i n i n 0113620 g t h e v a l u e o f a 0113640 p a r t i c u l a r e v e n 0113660 t , e . g . , ( V A L U E O 0113700 F - 1 ) , ( V A L U E O F 0113720 _ F O O - 2 ) . T h e v 0113740 a l u e o f a n e v e n t 0113760 c o n s i s t i n g o f s 0114000 e v e r a l o p e r a t i o n 0114020 s i s a l i s t o f t 0114040 h e v a l u e s f o r e a 0114060 c h o f t h e i n d i v i 0114100 d u a l o p e r a t i o n s . 0114120 \r N o t e : T h e v a l u 0114140 e f i e l d o f a h i s 0114160 t o r y e n t r y i s i n 0114200 i t i a l i z e d t o b e l 0114220 l ( c o n t r o l - G ) . 0114240 T h u s a v a l u e o f 0114260 b e l l i n d i c a t e s t 0114300 h a t t h e c o r r e s p o 0114320 n d i n g o p e r a t i o n 0114340 d i d n o t c o m p l e t e 0114360 , i . e . , w a s a b o r 0114400 t e d o r c a u s e d a n 0114420 e r r o r ( o r e l s e 0114440 i t r e t u r n e d b e l l 0114460 ) . \r N o t e : A l t h o u 0114500 g h t h e i n p u t f o r 0114520 V A L U E O F i s e n t e 0114540 r e d o n t h e h i s t o 0114560 r y l i s t b e f o r e V 0114600 A L U E O F i s c a l l e d 0114620 , ( V A L U E O F - 1 ) s 0114640 t i l l r e f e r s t o t 0114660 h e v a l u e o f t h e 0114700 e x p r e s s i o n i m m e d 0114720 i a t e l y b e f o r e t h 0114740 e V A L U E O F i n p u t , 0114760 b e c a u s e V A L U E O F 0115000 e f f e c t i v e l y b a c 0115020 k s t h e h i s t o r y l 0115040 i s t u p o n e e n t r y 0115060 w h e n i t r e t r i e v 0115100 e s t h e s p e c i f i e d 0115120 e v e n t . S i m i l a r 0115140 l y , ( V A L U E O F F O O 0115160 ) w i l l f i n d t h e 0115200 f i r s t e v e n t b e f o 0115220 r e t h i s o n e t h a t 0115240 c o n t a i n s a F O O . 0115260 \r \r I T \t [ V a r i a b l e 0115300 ] \r T h e v a l u e o f t 0115320 h e v a r i a b l e I T i 0115340 s a l w a y s t h e v a l 0115360 u e o f t h e l a s t e 0115400 v e n t e x e c u t e d , i 0115420 . e . ( V A L U E O F - 1 ) 0115440 . F o r e x a m p l e , \r 0115460 _ ( S Q R T 2 ) \r 1 . 4 1 4 2 0115500 1 4 \r _ ( S Q R T I T ) \r 1 . 0115520 1 8 9 2 0 7 \r I f t h e l a 0115540 s t e v e n t w a s a m 0115560 u l t i p l e e v e n t , e 0115600 . g . R E D O - 3 T H R U 0115620 - 1 , I T i s s e t t 0115640 o v a l u e o f t h e l 0115660 a s t o f t h e s e e v e 0115700 n t s . F o l l o w i n g 0115720 a ? ? c o m m a n d , I T 0115740 i s s e t t o v a l u e 0115760 o f t h e l a s t e v e 0116000 n t p r i n t e d . I n 0116020 o t h e r w o r d s , i n 0116040 a l l c a s e s , I T i s 0116060 s e t t o t h e l a s t 0116100 v a l u e p r i n t e d o 0116120 n t h e t e r m i n a l . \r 0116140 \r 1 3 . 2 . 3 \t P . A . C 0116160 o m m a n d s A p p l i e d 0116200 t o P . A . C o m m a n d s 0116220 \r \r P r o g r a m m e r ' s a 0116240 s s i s t a n t c o m m a n d 0116260 s t h a t u n r e a d e x 0116300 p r e s s i o n s , s u c h 0116320 a s R E D O , U S E , e t 0116340 c . d o n o t a p p e a r 0116360 i n t h e i n p u t p o 0116400 r t i o n o f e v e n t s , 0116420 a l t h o u g h t h e y a 0116440 r e s t o r e d e l s e w h 0116460 e r e i n t h e e v e n t 0116500 . T h e y d o n o t i 0116520 n t e r f e r e w i t h o r 0116540 a f f e c t t h e s e a r 0116560 c h i n g o p e r a t i o n s 0116600 o f e v e n t s p e c i f 0116620 i c a t i o n s . A s a 0116640 r e s u l t , p . a . c o m 0116660 m a n d s t h e m s e l v e s 0116700 c a n n o t b e r e c o v 0116720 e r e d f o r e x e c u t i 0116740 o n i n t h e n o r m a l 0116760 w a y . F o r e x a m p 0117000 l e , i f t h e u s e r 0117020 t y p e s U S E A B C 0117040 F O R D a n d f o l l o w 0117060 s t h i s w i t h U S E 0117100 E F O R D , h e w i l l 0117120 n o t p r o d u c e t h e 0117140 e f f e c t o f U S E A 0117160 B C F O R E , b u t 0117200 i n s t e a d w i l l s i m 0117220 p l y c a u s e E t o b 0117240 e s u b s t i t u t e d f o 0117260 r D i n t h e l a s t 0117300 e v e n t c o n t a i n i n g 0117320 a D . T o p r o d u c 0117340 e t h e d e s i r e d e f 0117360 f e c t , t h e u s e r s 0117400 h o u l d t y p e U S E D 0117420 F O R E I N U S E . 0117440 T h e a p p e a r a n c e o 0117460 f t h e w o r d R E D O , 0117500 U S E o r F I X i n a 0117520 n e v e n t a d d r e s s 0117540 s p e c i f i e s a s e a r 0117560 c h f o r t h e c o r r e 0117600 s p o n d i n g p r o g r a m 0117620 m e r ' s a s s i s t a n t 0117640 c o m m a n d . I t a l s 0117660 o s p e c i f i e s t h a t 0117700 t h e t e x t o f t h e 0117720 p r o g r a m m e r ' s a s 0117740 s i s t a n t c o m m a n d 0117760 i t s e l f b e t r e a t e 0120000 d a s t h o u g h i t w 0120020 e r e t h e i n p u t . H 0120040 o w e v e r , t h e u s e r 0120060 m u s t r e m e m b e r t 0120100 h a t t h e c o n t e x t 0120120 i n w h i c h a h i s t o 0120140 r y c o m m a n d i s r e 0120160 e x e c u t e d i s t h a t 0120200 o f t h e c u r r e n t 0120220 h i s t o r y , n o t t h e 0120240 o r i g i n a l c o n t e x 0120260 t . F o r e x a m p l e , 0120300 i f t h e u s e r t y p 0120320 e s U S E F O O F O R F 0120340 I E I N - 1 , a n d t h 0120360 e n l a t e r t y p e s R 0120400 E D O U S E , t h e - 1 0120420 w i l l r e f e r t o t h 0120440 e e v e n t b e f o r e t 0120460 h e R E D O , n o t b e f 0120500 o r e t h e U S E . \r T h e 0120520 o n e e x c e p t i o n t 0120540 o t h e s t a t e m e n t 0120560 t h a t p r o g r a m m e r ' 0120600 s a s s i s t a n t c o m m 0120620 a n d s " d o n o t i n t 0120640 e r f e r e w i t h o r a 0120660 f f e c t t h e s e a r c h 0120700 i n g o p e r a t i o n s o 0120720 f e v e n t s p e c i f i c 0120740 a t i o n s " o c c u r s w 0120760 h e n a p . a . c o m m a 0121000 n d f a i l s t o p r o d 0121020 u c e a n y i n p u t . 0121040 F o r e x a m p l e , s u p 0121060 p o s e t h e u s e r t y 0121100 p e s U S E L O G F O R 0121120 A N T I L O G A N D A N T I 0121140 L O G F O R L O G G , m i 0121160 s p e l l i n g t h e s e c 0121200 o n d L O G . T h i s w 0121220 i l l c a u s e a n e r r 0121240 o r , L O G G ? . S i n 0121260 c e t h e U S E c o m m a 0121300 n d d i d n o t p r o d u 0121320 c e a n y i n p u t , t h 0121340 e u s e r c a n r e p a i 0121360 r i t b y t y p i n g U 0121400 S E L O G F O R L O G G , 0121420 w i t h o u t h a v i n g 0121440 t o s p e c i f y I N U S 0121460 E . T h i s l a t t e r U 0121500 S E c o m m a n d w i l l 0121520 i n v o k e a s e a r c h 0121540 f o r L O G G , w h i c h 0121560 w i l l f i n d t h e b a 0121600 d U S E c o m m a n d . 0121620 T h e p r o g r a m m e r ' s 0121640 a s s i s t a n t t h e n 0121660 p e r f o r m s t h e i n d 0121700 i c a t e d s u b s t i t u t 0121720 i o n , a n d u n r e a d s 0121740 U S E L O G F O R A N T 0121760 I L O G A N D A N T I L O G 0122000 F O R L O G . I n t u 0122020 r n , t h i s U S E c o m 0122040 m a n d i n v o k e s a s 0122060 e a r c h f o r A N T I L O 0122100 G , w h i c h , b e c a u s 0122120 e i t w a s n o t t y p 0122140 e d i n b u t r e r e a d 0122160 , i g n o r e s t h e b a 0122200 d U S E c o m m a n d w h 0122220 i c h w a s f o u n d b y 0122240 t h e e a r l i e r s e a 0122260 r c h f o r L O G G , a n 0122300 d w h i c h i s s t i l l 0122320 o n t h e h i s t o r y 0122340 l i s t . I n o t h e r 0122360 w o r d s , p . a . c o m m 0122400 a n d s t h a t f a i l t 0122420 o p r o d u c e i n p u t 0122440 a r e v i s i b l e t o s 0122460 e a r c h e s a r i s i n g 0122500 f r o m e v e n t s p e c i 0122520 f i c a t i o n s t y p e d 0122540 i n b y t h e u s e r , 0122560 b u t n o t t o s e c o n 0122600 d a r y e v e n t s p e c i 0122620 f i c a t i o n s . \r I n a d 0122640 d i t i o n , i f t h e m 0122660 o s t r e c e n t e v e n t 0122700 i s a h i s t o r y c o 0122720 m m a n d w h i c h f a i l 0122740 e d t o p r o d u c e i n 0122760 p u t , a s e c o n d a r y 0123000 e v e n t s p e c i f i c a 0123020 t i o n w i l l e f f e c t 0123040 i v e l y b a c k u p t h 0123060 e h i s t o r y l i s t o 0123100 n e e v e n t s o t h a t 0123120 r e l a t i v e e v e n t 0123140 n u m b e r s f o r t h a t 0123160 e v e n t s p e c i f i c a 0123200 t i o n w i l l n o t c o 0123220 u n t t h e b a d p . a . 0123240 c o m m a n d . F o r e 0123260 x a m p l e , s u p p o s e 0123300 t h e u s e r t y p e s U 0123320 S E L O G F O R A N T I L 0123340 O G A N D A N T I L O G F 0123360 O R L O G G I N - 2 A N 0123400 D - 1 , a n d a f t e r 0123420 t h e p . a . t y p e s L 0123440 O G G ? , t h e u s e r 0123460 t y p e s U S E L O G F O 0123500 R L O G G . H e t h u s 0123520 c a u s e s t h e c o m m 0123540 a n d U S E L O G F O R 0123560 A N T I L O G A N D A N T I 0123600 L O G F O R L O G I N - 0123620 2 A N D - 1 t o b e c 0123640 o n s t r u c t e d a n d u 0123660 n r e a d . I n t h e n 0123700 o r m a l c a s e , - 1 w 0123720 o u l d r e f e r t o t h 0123740 e l a s t e v e n t , i . 0123760 e . , t h e " b a d " U S 0124000 E c o m m a n d , a n d - 0124020 2 t o t h e e v e n t b 0124040 e f o r e i t . H o w e v 0124060 e r , i n t h i s c a s e 0124100 , - 1 r e f e r s t o t 0124120 h e e v e n t b e f o r e 0124140 t h e b a d U S E c o m m 0124160 a n d , a n d t h e - 2 0124200 t o t h e e v e n t b e f 0124220 o r e t h a t . I n s h 0124240 o r t , t h e c a v e a t 0124260 a b o v e t h a t " t h e 0124300 u s e r m u s t r e m e m b 0124320 e r t h a t t h e c o n t 0124340 e x t i n w h i c h a h 0124360 i s t o r y c o m m a n d i 0124400 s r e e x e c u t e d i s 0124420 t h a t o f t h e c u r r 0124440 e n t h i s t o r y , n o t 0124460 t h e o r i g i n a l c o 0124500 n t e x t " d o e s n o t 0124520 a p p l y i f t h e c o r 0124540 r e c t i o n i s p e r f o 0124560 r m e d i m m e d i a t e l y 0124600 . \r \r 1 3 . 3 \t C h a n g i 0124620 n g T h e P r o g r a m m e 0124640 r ' s A s s i s t a n t \r \r ( 0124660 C H A N G E S L I C E N H I 0124700 S T O R Y ) \t [ F u n c 0124720 t i o n ] \r C h a n g e s t h 0124740 e t i m e - s l i c e o f 0124760 t h e h i s t o r y l i s t 0125000 H I S T O R Y t o N ( s 0125020 e e p a g e X . X X ) . 0125040 I f H I S T O R Y i s N I 0125060 L , c h a n g e s b o t h 0125100 t h e t o p l e v e l h i 0125120 s t o r y l i s t L I S P X 0125140 H I S T O R Y a n d t h e 0125160 e d i t h i s t o r y l i s 0125200 t E D I T H I S T O R Y . \r N 0125220 o t e : T h e e f f e c t 0125240 o f i n c r e a s i n g t 0125260 h e t i m e - s l i c e i s 0125300 g r a d u a l : t h e h i 0125320 s t o r y l i s t i s s i 0125340 m p l y a l l o w e d t o 0125360 g r o w t o t h e c o r r 0125400 e s p o n d i n g l e n g t h 0125420 b e f o r e a n y e v e n 0125440 t s a r e f o r g o t t e n 0125460 . D e c r e a s i n g t h 0125500 e t i m e - s l i c e w i l 0125520 l i m m e d i a t e l y r e 0125540 m o v e a s u f f i c i e n 0125560 t n u m b e r o f t h e 0125600 o l d e r e v e n t s t o 0125620 b r i n g t h e h i s t o r 0125640 y l i s t d o w n t o t 0125660 h e p r o p e r s i z e . 0125700 H o w e v e r , C H A N G E 0125720 S L I C E i s u n d o a b l 0125740 e , s o t h a t t h e s e 0125760 e v e n t s a r e ( t e m 0126000 p o r a r i l y ) r e c o v e 0126020 r a b l e . T h e r e f o r 0126040 e , i f t h e u s e r w 0126060 a n t s t o r e c o v e r 0126100 t h e s t o r a g e a s s o 0126120 c i a t e d w i t h t h e s 0126140 e e v e n t s w i t h o u t 0126160 w a i t i n g N m o r e 0126200 e v e n t s u n t i l t h e 0126220 C H A N G E S L I C E e v e 0126240 n t d r o p s o f f t h e 0126260 h i s t o r y l i s t , h 0126300 e m u s t p e r f o r m a 0126320 F O R G E T c o m m a n d 0126340 ( p a g e X . X X ) . \r \r P R 0126360 O M P T # F L G \t [ V a r i 0126400 a b l e ] \r W h e n t h i s 0126420 v a r i a b l e i s s e t 0126440 t o T , t h e c u r r e n 0126460 t e v e n t n u m b e r t 0126500 o b e p r i n t e d b e f 0126520 o r e e a c h p r o m p t 0126540 c h a r a c t e r . S e e 0126560 P R O M P T C H A R , p a g e 0126600 X . X X . P R O M P T # F 0126620 L G i s i n i t i a l l y 0126640 T . \r \r P R O M P T C H A R F O 0126660 R M S \t [ V a r i a b l e ] 0126700 \r T h e v a l u e o f P R 0126720 O M P T C H A R F O R M S i s 0126740 a l i s t o f e x p r e 0126760 s s i o n w h i c h a r e 0127000 e v a l u a t e d e a c h t 0127020 i m e P R O M P T C H A R ( 0127040 p a g e X . X X ) i s c a 0127060 l l e d t o p r i n t t h 0127100 e p r o m p t c h a r a c t 0127120 e r . I f P R O M P T C H 0127140 A R i s g o i n g t o p 0127160 r i n t s o m e t h i n g , 0127200 i t f i r s t m a p s d o 0127220 w n P R O M P T C H A R F O R 0127240 M S e v a l u a t i n g e a 0127260 c h e x p r e s s i o n u n 0127300 d e r a n E R R O R S E T . 0127320 \r T h e s e e x p r e s s 0127340 i o n s c a n a c c e s s 0127360 t h e s p e c i a l v a r i 0127400 a b l e s H I S T O R Y ( t 0127420 h e c u r r e n t h i s t o 0127440 r y l i s t ) , I D ( t h 0127460 e p r o m p t c h a r a c t 0127500 e r t o b e p r i n t e d 0127520 ) , a n d P R O M P T S T R 0127540 , w h i c h i s w h a t 0127560 P R O M P T C H A R w i l l 0127600 p r i n t b e f o r e I D , 0127620 i f a n y t h i n g . W 0127640 h e n P R O M P T # F L G i 0127660 s T , P R O M P T S T R w 0127700 i l l b e t h e e v e n t 0127720 n u m b e r . T h e e x 0127740 p r e s s i o n s o n P R O 0127760 M P T C H A R F O R M S c a n 0130000 c h a n g e t h e s h a p 0130020 e o f a c u r s o r , u 0130040 p d a t e a c l o c k , c 0130060 h e c k f o r m a i l , e 0130100 t c . o r c h a n g e w h 0130120 a t P R O M P T C H A R i s 0130140 a b o u t t o p r i n t 0130160 b y r e s e t t i n g I D 0130200 a n d / o r P R O M P T S T R 0130220 . A f t e r t h e e x p 0130240 r e s s i o n s o n P R O M 0130260 P T C H A R F O R M S h a v e 0130300 b e e n e v a l u a t e d , 0130320 P R O M P T S T R i s p r 0130340 i n t e d i f i t i s ( 0130360 s t i l l ) n o n - N I L , 0130400 a n d t h e n I D i s p 0130420 r i n t e d , i f i t i s 0130440 ( s t i l l ) n o n - N I L 0130460 . \r \r H I S T O R Y S A V E F O 0130500 R M S \t [ V a r i a b l e ] 0130520 \r T h e v a l u e o f H I 0130540 S T O R Y S A V E F O R M S i 0130560 s a l i s t o f e x p r 0130600 e s s i o n s t h a t a r e 0130620 e v a l u a t e d u n d e r 0130640 e r r o r s e t p r o t e c 0130660 t i o n e a c h t i m e H 0130700 I S T O R Y S A V E ( p a g e 0130720 X . X X ) c r e a t e s a 0130740 n e w e v e n t . T h i 0130760 s h a p p e n s e a c h t 0131000 i m e t h e r e i s a n 0131020 i n t e r a c t i o n w i t h 0131040 t h e u s e r , b u t n 0131060 o t w h e n p e r f o r m i 0131100 n g a n o p e r a t i o n 0131120 t h a t i s b e i n g r e 0131140 d o n e . \r T h e e x p r e s 0131160 s i o n s o n H I S T O R Y 0131200 S A V E F O R M S a r e p r 0131220 e s u m a b l y e x e c u t e 0131240 d f o r e f f e c t , a n 0131260 d c a n a c c e s s t h e 0131300 s p e c i a l v a r i a b l 0131320 e s H I S T O R Y ( t h e 0131340 c u r r e n t h i s t o r y 0131360 l i s t ) , I D ( t h e c 0131400 u r r e n t p r o m p t c h 0131420 a r a c t e r ) , a n d E V 0131440 E N T ( t h e c u r r e n t 0131460 e v e n t w h i c h H I S 0131500 T O R Y S A V E i s g o i n 0131520 g t o r e t u r n ) . \r \r N 0131540 o t e t h a t P R O M P T C 0131560 H A R F O R M S a n d H I S 0131600 T O R Y S A V E F O R M S t o 0131620 g e t h e r e n a b l e b r 0131640 a c k e t i n g e a c h i n 0131660 t e r a c t i o n w i t h t 0131700 h e u s e r . T h e s e 0131720 c a n b e u s e d t o m 0131740 e a s u r e h o w l o n g 0131760 t h e u s e r t a k e s t 0132000 o r e s p o n d , t o u s 0132020 e a d i f f e r e n t r e 0132040 a d t a b l e o r t e r m i 0132060 n a l t a b l e , e t c . \r 0132100 R E S E T F O R M S \t [ V a 0132120 r i a b l e ] \r T h e v a l u 0132140 e o f R E S E T F O R M S 0132160 i s a l i s t o f f o r 0132200 m s t h a t a r e e v a l 0132220 u a t e d a t e a c h R E 0132240 S E T , i . e . w h e n u 0132260 s e r t y p e s c o n t r o 0132300 l - D , o r c a l l s f u 0132320 n c t i o n R E S E T . \r \r A 0132340 R C H I V E F N \t [ V a r i 0132360 a b l e ] \r I f t h e v a l 0132400 u e o f A R C H I V E F N 0132420 i s T , a n d a n e v e 0132440 n t i s a b o u t t o d 0132460 r o p o f f t h e e n d 0132500 o f t h e h i s t o r y l 0132520 i s t a n d b e f o r g o 0132540 t t e n , A R C H I V E F N 0132560 i s c a l l e d a s a f 0132600 u n c t i o n w i t h t w o 0132620 a r g u m e n t s : t h e 0132640 i n p u t p o r t i o n o f 0132660 t h e e v e n t , a n d 0132700 t h e e n t i r e e v e n t 0132720 ( s e e p a g e X . X X 0132740 f o r t h e f o r m a t o 0132760 f e v e n t s ) . I f A 0133000 R C H I V E F N r e t u r n s 0133020 T , t h e e v e n t i s 0133040 a r c h i v e d o n a p 0133060 e r m a n e n t h i s t o r y 0133100 l i s t ( s e e p a g e 0133120 X . X X ) . N o t e t h a 0133140 t A R C H I V E F N m u s t 0133160 b e b o t h s e t a n d 0133200 d e f i n e d . A R C H I 0133220 V E F N i s i n i t i a l l 0133240 y N I L a n d u n d e f i 0133260 n e d . \r F o r e x a m p l e 0133300 , d e f i n i n g A R C H I 0133320 V E F N a s ( L A M B D A 0133340 ( X Y ) ( E Q ( C A R X 0133360 ) ' L O A D ) ) w i l l k 0133400 e e p a r e c o r d o f 0133420 a l l c a l l s t o L O A 0133440 D . \r \r A R C H I V E F L G 0133460 \t [ V a r i a b l e ] \r I f t 0133500 h e v a l u e o f A R C H 0133520 I V E F L G i s n o n - N I 0133540 L , t h e s y s t e m a u 0133560 t o m a t i c a l l y m a r k 0133600 s a l l e v e n t s t h a 0133620 t a r e r e f e r e n c e d 0133640 b y h i s t o r y c o m m 0133660 a n d s s o t h a t t h e 0133700 y w i l l b e a r c h i v 0133720 e d w h e n t h e y d r o 0133740 p o f f t h e h i s t o r 0133760 y l i s t . A R C H I V E 0134000 F L G i s i n i t i a l l y 0134020 T , s o o n c e a n e 0134040 v e n t i s r e d o n e , 0134060 i t i s g u a r a n t e e d 0134100 t o b e s a v e d . \r 0134120 A n e v e n t i s " m a r 0134140 k e d f o r a r c h i v i n 0134160 g " b y p u t t i n g t h 0134200 e p r o p e r t y * A R C H 0134220 I V E * , v a l u e T , o 0134240 n t h e e v e n t ( s e e 0134260 p a g e X . X X ) . T h 0134300 e u s e r c o u l d d o 0134320 t h i s b y m e a n s o f 0134340 a n a p p r o p r i a t e l 0134360 y d e f i n e d L I S P X U 0134400 S E R F N ( s e e b e l o w 0134420 ) . \r \r L I S P X M A C R O S 0134440 \t [ V a r i a b l e ] \r L I S 0134460 P X M A C R O S p r o v i d e 0134500 s a m a c r o f a c i l i 0134520 t y t h a t a l l o w s t 0134540 h e u s e r t o d e f i n 0134560 e h i s o w n p r o g r a 0134600 m m e r ' s a s s i s t a n t 0134620 c o m m a n d s . I t i 0134640 s a l i s t o f e l e m 0134660 e n t s o f t h e f o r m 0134700 ( C O M M A N D D E F ) . 0134720 W h e n e v e r C O M M A N 0134740 D a p p e a r s a s t h e 0134760 f i r s t e x p r e s s i o 0135000 n o n a l i n e i n a 0135020 L I S P X i n p u t , t h 0135040 e v a r i a b l e L I S P X 0135060 L I N E i s b o u n d t o 0135100 t h e r e s t o f t h e 0135120 l i n e , t h e e v e n t 0135140 i s r e c o r d e d o n 0135160 t h e h i s t o r y l i s t 0135200 , D E F i s e v a l u a t 0135220 e d , a n d D E F ' s v a 0135240 l u e i s s t o r e d a s 0135260 t h e v a l u e o f t h 0135300 e e v e n t . S i m i l a r 0135320 l y , w h e n e v e r C O M 0135340 M A N D a p p e a r s a s 0135360 C A R o f a f o r m i n 0135400 a L I S P X i n p u t , 0135420 t h e v a r i a b l e L I S 0135440 P X L I N E i s b o u n d 0135460 t o C D R o f t h e f o 0135500 r m , t h e e v e n t i s 0135520 r e c o r d e d , a n d D 0135540 E F i s e v a l u a t e d . 0135560 \r A n e l e m e n t o f t 0135600 h e f o r m ( C O M M A N D 0135620 N I L D E F ) i s i n t 0135640 e r p r e t e d t o m e a n 0135660 b i n d L I S P X L I N E 0135700 a n d e v a l u a t e D E F 0135720 a s d e s c r i b e d a b 0135740 o v e , e x c e p t d o n 0135760 o t s a v e t h e e v e n 0136000 t o n t h e h i s t o r y 0136020 l i s t . \r \r L I S P X H I S 0136040 T O R Y M A C R O S \t [ V a 0136060 r i a b l e ] \r L I S P X H I S 0136100 T O R Y M A C R O S a l l o w 0136120 s t h e u s e r t o d e 0136140 f i n e p r o g r a m m e r ' 0136160 s a s s i s t a n t c o m m 0136200 a n d s t h a t r e - e x e 0136220 c u t e o t h e r e v e n t 0136240 s . L I S P X H I S T O R Y 0136260 M A C R O S i s i n t e r p 0136300 r e t e d t h e s a m e a 0136320 s L I S P X M A C R O S , e 0136340 x c e p t t h a t t h e r 0136360 e s u l t o f e v a l u a t 0136400 i n g D E F i s t r e a t 0136420 e d a s a l i s t o f 0136440 e x p r e s s i o n s t o b 0136460 e u n r e a d , e x a c t l 0136500 y a s t h o u g h t h e 0136520 e x p r e s s i o n s h a d 0136540 b e e n r e t r i e v e d b 0136560 y a R E D O c o m m a n d 0136600 , o r c o m p u t e d b y 0136620 a U S E c o m m a n d . 0136640 N o t e t h a t r e t u r 0136660 n i n g N I L m e a n s n 0136700 o t h i n g e l s e i s d 0136720 o n e . T h i s p r o v i 0136740 d e s a m e c h a n i s m 0136760 f o r d e f i n i n g L I S 0137000 P X c o m m a n d s w h i c 0137020 h a r e e x e c u t e d f 0137040 o r e f f e c t o n l y . \r 0137060 \r M a n y p r o g r a m m e r 0137100 ' s a s s i s t a n t c o m 0137120 m a n d s , s u c h a s R 0137140 E T R I E V E , B E F O R E , 0137160 A F T E R , e t c . a r e 0137200 i m p l e m e n t e d t h r 0137220 o u g h L I S P X M A C R O S 0137240 o r L I S P X H I S T O R Y 0137260 M A C R O S . \r N o t e : D 0137300 e f i n i t i o n s o f c o 0137320 m m a n d s o n L I S P X M 0137340 A C R O S o r L I S P X H I 0137360 S T O R Y M A C R O S c a n 0137400 b e s a v e d o n f i l e 0137420 s w i t h t h e f i l e 0137440 p a c k a g e c o m m a n d 0137460 L I S P X M A C R O S ( s e e 0137500 p a g e X . X X ) . \r L I S 0137520 P X U S E R F N \t [ V a r i 0137540 a b l e ] \r W h e n L I S P X 0137560 U S E R F N i s s e t t o 0137600 T , i t i s a p p l i e 0137620 d a s a f u n c t i o n 0137640 t o a l l i n p u t s n o 0137660 t r e c o g n i z e d a s 0137700 a p r o g r a m m e r ' s a 0137720 s s i s t a n t c o m m a n d 0137740 , o r o n L I S P X M A C 0137760 R O S o r L I S P X H I S T 0140000 O R Y M A C R O S . I f L 0140020 I S P X U S E R F N d e c i d 0140040 e s t o h a n d l e t h i 0140060 s i n p u t , i t s i m p 0140100 l y p r o c e s s e s i t 0140120 ( t h e e v e n t w a s a 0140140 l r e a d y s t o r e d o n 0140160 t h e h i s t o r y l i s 0140200 t b e f o r e L I S P X U S 0140220 E R F N w a s c a l l e d ) 0140240 , s e t s L I S P X V A L U 0140260 E t o t h e v a l u e f 0140300 o r t h e e v e n t , a n 0140320 d r e t u r n s T . T h 0140340 e p r o g r a m m e r ' s a 0140360 s s i s t a n t w i l l t h 0140400 e n k n o w n o t t o c 0140420 a l l E V A L o r A P P L 0140440 Y , a n d w i l l s i m p 0140460 l y s t o r e L I S P X V A 0140500 L U E i n t o t h e v a l 0140520 u e s l o t f o r t h e 0140540 e v e n t , a n d p r i n t 0140560 i t . I f L I S P X U S 0140600 E R F N r e t u r n s N I L 0140620 , E V A L o r A P P L Y 0140640 i s c a l l e d i n t h e 0140660 u s u a l w a y . N o t 0140700 e t h a t L I S P X U S E R 0140720 F N m u s t b e b o t h 0140740 s e t a n d d e f i n e d . 0140760 \r L I S P X U S E R F N i s 0141000 g i v e n t w o a r g u m e 0141020 n t s : X a n d L I N E . 0141040 X i s t h e f i r s t 0141060 e x p r e s s i o n t y p e 0141100 d , a n d L I N E i s t 0141120 h e r e s t o f t h e l 0141140 i n e , a s r e a d b y 0141160 R E A D L I N E ( p a g e X 0141200 . X X ) . F o r e x a m p 0141220 l e , i f t h e u s e r 0141240 t y p e d F O O ( A B C ) 0141260 , X = F O O , a n d L I N 0141300 E = ( ( A B C ) ) ; i f 0141320 t h e u s e r t y p e d ( 0141340 F O O A B C ) , X = ( F 0141360 O O A B C ) , a n d L 0141400 I N E = N I L ; a n d i f 0141420 t h e u s e r t y p e d F 0141440 O O A B C , X = F O O 0141460 a n d L I N E = ( A B C ) 0141500 . \r B y a p p r o p r i a t e 0141520