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