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