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