$ 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