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