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