$ 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