$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLMACROS!3 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " X C 0000040 L " 247 P A C K A G E " I N T 0000060 E R L I S P " ) \r 006 001 ( f i l e 0000100 c r e a t e d " 1 6 - O c t - 0000120 8 6 1 4 : 4 2 : 3 3 " 006 004 { 0000140 e r i s } < l i s p c o r e > s 0000160 o u r c e s > c m l m a c r o s 0000200 . \ ; 3 006 001 9 0 9 1 \r \r 0000220 | p r e v i o u s | 0000240 | d a t e : | " 4 - S e p 0000260 - 8 6 1 8 : 2 2 : 2 8 " { e 0000300 r i s } < l i s p c o r e > s o 0000320 u r c e s > c m l m a c r o s . 0000340 \ ; 2 ) \r \r \r ; C o p y r i g 0000360 h t ( c ) 1 9 8 6 b y X 0000400 e r o x C o r p o r a t i o n 0000420 . A l l r i g h t s r e 0000440 s e r v e d . \r \r ( p r e t t y 0000460 c o m p r i n t c m l m a c r 0000500 o s c o m s ) \r \r ( r p a q q 0000520 006 002 c m l m a c r o s c o m s 006 0000540 001 ( ( f n s c l i s p e x p 0000560 a n s i o n \ \ i n t e r l i 0000600 s p - n l a m b d a - m a c r o 0000620 c l : m a c r o - f u n c t i 0000640 o n c l : m a c r o e x p a n 0000660 d \r 0000700 c l 0000720 : m a c r o e x p a n d - 1 s 0000740 e t f - m a c r o - f u n c t i 0000760 o n ) \r 0001000 ( a p p e n 0001020 d v a r s ( c o m p i l e r m 0001040 a c r o p r o p s d m a c r o 0001060 b y t e m a c r o m a c r o 0001100 \r 0001120 0001140 s h o u l 0001160 d - h a v e - m a c r o - f u n 0001200 c t i o n ) ) \r 0001220 ( p 0001240 r o p m a c r o * ) \r 0001260 0001300 ( i n i t v a r s ( * m 0001320 a c r o e x p a n d - h o o k * 0001340 ' c l : f u n c a l l ) ) \r 0001360 0001400 ( f u n c t i o n s 0001420 c l : m a c r o l e t ) \r 0001440 0001460 ( s e t f s c l : m a c 0001500 r o - f u n c t i o n ) \r 0001520 0001540 ( p r o p f i l e t y p 0001560 e c m l m a c r o s ) \r 0001600 0001620 ( d e c l a r e \ : d o 0001640 n t e v a l @ l o a d d o e v 0001660 a l @ c o m p i l e d o n t c 0001700 o p y c o m p i l e r v a r s 0001720 \r 0001740 ( a 0001760 d d v a r s ( n l a m a ) \r 0002000 * 0002040 ( n l a m l ) \r 0002060 0002100 ( 0002120 l a m a c l : m a c r o e x p 0002140 a n d - 1 c l : m a c r o e x 0002160 p a n d ) ) ) ) ) \r ( d e f i n 0002200 e q \r \r ( 006 004 c l i s p e x p a 0002220 n s i o n 006 001 \r ( l a m b d 0002240 a ( x e n v ) 006 003 006 001 0002260 * 0002320 006 003 ( * | l 0002340 m m | " 2 9 - J u l - 8 6 0 0002360 3 : 3 4 " ) 006 001 \r ( c l 0002400 : b l o c k c l i s p e x p a 0002420 n s i o n ( c l : v a l u e s 0002440 ( o r ( a n d ( g e t p r 0002460 o p ( c a r x ) \r 0002500 * 0002560 ' c l i s p w o r d ) \r 0002600 * 0002660 ( r e s e t v a r s ( ( c l i 0002700 s p f l g n i l ) ) \r 0002720 * 0003000 ( l e t ( ( n 0003020 o s p e l l f l g t ) \r 0003040 * 0003120 ( 0003140 v a r s n i l ) \r 0003160 * 0003240 ( c o p 0003260 ( c o p y x ) ) ) \r 0003300 * 0003360 ( 006 002 0003400 d e c l a r e 006 001 ( c l : s p 0003420 e c i a l n o s p e l l f l g 0003440 v a r s \r 0003460 * 0003560 ) ) \r 0003600 * 0003660 006 003 ( * | m a k 0003700 e | \ a | c o p y | | s o 0003720 | | d w i m | \r 006 001 0003740 * 0004020 006 003 | d o e s 0004040 n ' t | | m u c k | | w i t 0004060 h | | i t ! | ) 006 001 \r 0004100 * 0004160 ( d w 0004200 i m i f y 0 ? c o p c o p 0004220 c o p n i l n i l n i l \r 0004240 * 0004340 ' v a r s b o u 0004360 n d ) \r 0004400 * 0004460 ( r e t u r n ( g e 0004500 t h a s h c o p c l i s p a 0004520 r r a y ) ) ) ) ) \r 0004540 * 0004600 ( c l : r e t u r n 0004620 - f r o m c l i s p e x p a n 0004640 s i o n x ) ) \r 0004660 0004700 t ) ) 0004720 ) ) \r \r ( 006 004 \ \ i n t e r l i 0004740 s p - n l a m b d a - m a c r o 0004760 006 001 \r ( l a m b d a ( x 0005000 e n v ) 006 003 006 001 0005020 * 0005060 006 003 ( * | l m m | " 0005100 7 - M a y - 8 6 1 7 : 2 4 " 0005120 ) 006 001 \r ` ( c l : f u n 0005140 c a l l ( f u n c t i o n , 0005160 ( c a r x ) ) \r 0005200 , @ ( s e l e c t q 0005220 ( a r g t y p e ( c a r x ) 0005240 ) \r 0005260 ( 1 ( m a p c a r ( 0005300 c d r x ) \r 0005320 0005340 ( f u n c t i o n k w o 0005360 t e ) ) ) \r 0005400 ( 3 ( l i s t 0005420 ( k w o t e ( c d r x ) ) 0005440 ) ) \r 0005460 ( s h o u l d n t ) ) 0005500 ) ) ) \r \r ( 006 004 c l : m a c r o 0005520 - f u n c t i o n 006 001 \r ( l 0005540 a m b d a ( x e n v ) 006 003 006 0005560 001 0005600 0005620 006 003 ( 0005640 * | P a v e l | " 6 - J u 0005660 n - 8 6 1 2 : 1 8 " ) 006 001 \r 0005700 \r 0005720 006 003 ( * * " I f t 0005740 h e g i v e n s y m b o l 0005760 h a s a m a c r o d e f i 0006000 n i t i o n i n e i t h e r 0006020 t h e g i v e n l e x i c 0006040 a l e n v i r o n m e n t o 0006060 r g l o b a l l y , r e t u 0006100 r n i t s e x p a n s i o n 0006120 f u n c t i o n , e l s e 0006140 N I L . " ) 006 001 \r \r ( l 0006160 e t ( m d ) \r 0006200 ( c l : e t y p e c a s e e 0006220 n v ( e n v i r o n m e n t 0006240 0006260 006 003 ( * \r 006 001 0006300 * 0006360 006 003 " I n t 0006400 e r p r e t e r / c o d e - w a 0006420 l k e r ' s e n v i r o n m e 0006440 n t s " ) 006 001 \r 0006460 0006500 ( c o n d \r 0006520 * 0006560 ( ( s e t q m d ( 0006600 a s s o c x ( e n v i r o n 0006620 m e n t - m a c r o s e n v ) 0006640 ) ) \r 0006660 0006700 ( d e s t r u 0006720 c t u r i n g - b i n d ( n a 0006740 m e d e f m a c r o - a r g s 0006760 & r e s t d e f m a c r o - 0007000 b o d y ) \r 0007020 * 0007060 m d \r 0007100 * 0007140 ( c l : m u l t i p l e - 0007160 v a l u e - b i n d ( p a r s 0007200 e d - b o d y p a r s e d - d 0007220 e c l a r a t i o n s \r 0007240 * 0007340 p a r s e d - 0007360 d o c s t r i n g ) \r 0007400 * 0007440 ( 0007460 p a r s e - d e f m a c r o d 0007500 e f m a c r o - a r g s ' $ $ 0007520 m a c r o - f o r m \r 0007540 * 0007620 d e f m a c r o - 0007640 b o d y n a m e n i l : e 0007660 n v i r o n m e n t \r 0007700 * 0007760 ' $ $ m a c r o - e 0010000 n v i r o n m e n t ) \r 0010020 * 0010100 ` ( l a m b d a ( $ $ m a c r 0010120 o - f o r m $ $ m a c r o - e 0010140 n v i r o n m e n t ) \r 0010160 * 0010240 , @ p a r s e d - d e c l 0010260 a r a t i o n s \r 0010300 * 0010360 ( c l : b l o c k , n a m e 0010400 , p a r s e d - b o d y ) ) ) ) 0010420 ) \r 0010440 0010460 ( t ( 006 002 c l : 0010500 m a c r o - f u n c t i o n 006 001 0010520 x ( e n v i r o n m e n t - 0010540 p a r e n t e n v ) ) ) ) ) \r 0010560 0010600 ( e n v 0010620 0010640 006 003 ( 0010660 * " N e w c o m p i l e r ' 0010700 s e n v i r o n m e n t s . " 0010720 ) 006 001 \r 0010740 ( c l : m u l 0010760 t i p l e - v a l u e - b i n d 0011000 ( k i n d e x p n - f n ) \r 0011020 0011040 ( e n v 0011060 - f b o u n d p e n v x ) \r 0011100 0011120 ( c l : 0011140 i f ( e q k i n d : m a c 0011160 r o ) \r 0011200 0011220 e x p n - f n \r 0011240 * 0011300 ( 006 002 c l : m a c r o - f u 0011320 n c t i o n 006 001 x n i l ) ) 0011340 ) ) \r 0011360 ( n u l l ( c o n d \r 0011400 0011420 ( ( g e t x 0011440 ' m a c r o - f n ) ) \r 0011460 0011500 ( ( c l : s p e c i a 0011520 l - f o r m - p x ) \r 0011540 0011560 n i l ) \r 0011600 0011620 ( ( a n d ( n o t ( 0011640 f m e m b ( a r g t y p e x 0011660 ) \r 0011700 0011720 ' ( 0 0011740 2 ) ) ) \r 0011760 0012000 ( 006 002 | f i n d | 006 001 0012020 p r o p 006 002 | i n | 006 001 c 0012040 o m p i l e r m a c r o p r o p 0012060 s \r 0012100 0012120 006 002 | s u c h t h a t | 0012140 006 001 ( a n d ( s e t q m d 0012160 ( g e t p r o p x p r o p 0012200 ) ) \r 0012220 * 0012260 ( n o t ( o r ( l 0012300 i t a t o m m d ) \r 0012320 * 0012400 ( f m e m b ( c a 0012420 r m d ) \r 0012440 * 0012520 ' ( a p p l y 0012540 a p p l y * ) ) ) ) ) ) ) \r 0012560 0012600 ` ( l a m b d a 0012620 ( f o r m e n v ) \r 0012640 0012660 ( m a c r o e 0012700 x p a n s i o n f o r m ' , 0012720 m d ) ) ) \r 0012740 ( 0012760 ( a n d ( n o t ( g e t d 0013000 x ) ) \r 0013020 0013040 ( g e t p r o p x ' c 0013060 l i s p w o r d ) ) \r 0013100 0013120 ( f u n c t i o n c 0013140 l i s p e x p a n s i o n ) ) \r 0013160 0013200 ( ( f m e m b 0013220 ( a r g t y p e x ) \r 0013240 0013260 ' ( 0013300 1 3 ) ) \r 0013320 0013340 ( f u n c t i o n \ \ i n t e 0013360 r l i s p - n l a m b d a - m a 0013400 c r o ) ) ) ) ) ) ) ) \r \r ( 006 004 0013420 c l : m a c r o e x p a n d 006 001 0013440 \r ( c l : l a m b d a ( f 0013460 o r m & o p t i o n a l e n 0013500 v ) 006 003 006 001 0013520 0013540 006 003 ( * " P a v e l " " 0013560 1 6 - M a y - 8 6 1 9 : 0 7 " 0013600 ) 006 001 \r \r 0013620 006 003 ( * * 0013640 " I f F O R M i s a m a 0013660 c r o c a l l , t h e n t 0013700 h e f o r m i s e x p a n 0013720 d e d u n t i l t h e r e 0013740 s u l t i s " \r 006 001 0013760 006 003 " n o t a m 0014000 a c r o . R e t u r n s a s 0014020 m u l t i p l e v a l u e s 0014040 , t h e f o r m a f t e r 0014060 a n y e x p a n s i o n " 0014100 \r 006 001 006 003 " 0014120 h a s b e e n d o n e a n 0014140 d T i f e x p a n s i o n 0014160 w a s d o n e , o r N I 0014200 L o t h e r w i s e . E n v 0014220 i s t h e " \r 006 001 0014240 006 003 " l e x i c a l 0014260 e n v i r o n m e n t t o 0014300 e x p a n d i n , w h i c h 0014320 d e f a u l t s t o t h e 0014340 n u l l e n v i r o n m e n 0014360 t . " ) 006 001 \r \r 0014400 ( p r o g ( f l a g ) \r 0014420 ( c l 0014440 : m u l t i p l e - v a l u e - 0014460 s e t q ( f o r m f l a g ) 0014500 \r 0014520 ( 006 002 c l : m a c 0014540 r o e x p a n d - 1 006 001 f o r 0014560 m e n v ) ) \r 0014600 ( c l : u n l e s 0014620 s f l a g ( r e t u r n ( 0014640 c l : v a l u e s f o r m n 0014660 i l ) ) ) \r 0014700 c l : l o o p \r 0014720 ( c l : m u l t 0014740 i p l e - v a l u e - s e t q 0014760 ( f o r m f l a g ) \r 0015000 0015020 ( 006 002 c l : m a c r o e x p 0015040 a n d - 1 006 001 f o r m e n v 0015060 ) ) \r 0015100 ( c l : i f f l a g ( g 0015120 o c l : l o o p ) \r 0015140 0015160 ( r e t u r n ( c l : v a l 0015200 u e s f o r m t ) ) ) ) ) ) 0015220 \r \r ( 006 004 c l : m a c r o e x p 0015240 a n d - 1 006 001 \r ( c l : l a 0015260 m b d a ( f o r m & o p t i 0015300 o n a l e n v & a u x d e 0015320 f ) 006 003 006 001 0015340 006 003 ( * " P 0015360 a v e l " " 1 6 - M a y - 8 6 0015400 1 9 : 0 8 " ) 006 001 \r 0015420 \r 0015440 006 003 ( * * " I f f o r m 0015460 i s a m a c r o , e x p a 0015500 n d s i t o n c e . R e t 0015520 u r n s t w o v a l u e s , 0015540 t h e e x p a n d e d " \r 0015560 006 001 006 003 " f 0015600 o r m a n d a T - o r - N 0015620 I L f l a g i n d i c a t i 0015640 n g w h e t h e r t h e f 0015660 o r m w a s , i n f a c t 0015700 , a " \r 006 001 0015720 006 003 " m a c r o . E n v 0015740 i s t h e l e x i c a l e 0015760 n v i r o n m e n t t o e x 0016000 p a n d i n , w h i c h d 0016020 e f a u l t s t o " \r 006 001 0016040 006 003 " t h e 0016060 n u l l e n v i r o n m e n t 0016100 . " ) 006 001 \r \r 0016120 ( c o n d \r 0016140 ( ( a n d ( c l : c o n s 0016160 p f o r m ) \r 0016200 ( c l : s y 0016220 m b o l p ( c a r f o r m ) 0016240 ) ) \r 0016260 ( l e t ( ( d e f ( 006 002 c l 0016300 : m a c r o - f u n c t i o n 006 0016320 001 ( c a r f o r m ) \r 0016340 0016360 e n v ) 0016400 ) ) \r 0016420 ( c o n d \r 0016440 0016460 ( d e f ( 006 002 | i f | 006 001 ( 0016500 n e q f o r m ( s e t q f 0016520 o r m ( c l : f u n c a l l 0016540 * m a c r o e x p a n d - h o o 0016560 k * d e f f o r m e n v ) 0016600 ) ) \r 0016620 0016640 006 002 | t h e n | 006 001 ( c l : 0016660 v a l u e s f o r m t ) \r 0016700 0016720 006 002 | e l 0016740 s e | 006 001 ( c l : v a l u e s 0016760 f o r m n i l ) ) ) \r 0017000 0017020 ( t ( c l : v a l u e s 0017040 f o r m n i l ) ) ) ) ) \r 0017060 ( t ( c l 0017100 : v a l u e s f o r m n i l 0017120 ) ) ) ) ) \r \r ( 006 004 s e t f - m 0017140 a c r o - f u n c t i o n 006 001 \r 0017160 ( l a m b d a ( x b o d 0017200 y ) 006 003 006 001 0017220 * 0017260 006 003 ( * | j r b : | " 2 1 0017300 - A u g - 8 6 1 7 : 4 2 " ) 006 0017320 001 \r ( p r o g 1 ( c l 0017340 : s e t f ( g e t x ' m a 0017360 c r o - f n ) \r 0017400 b o d y ) \r 0017420 ( a n d 0017440 ( g e t d x ) \r 0017460 ( f m e m b 0017500 ( a r g t y p e x ) \r 0017520 0017540 ' ( 0 2 ) ) \r 0017560 ( p r o g 0017600 n ( p r i n t o u t t t 0017620 " W a r n i n g : w i l l s 0017640 o o n d o P U T D o n " 0017660 x " b e c a u s e i t 0017700 n o w i s a m a c r o " ) 0017720 \r 0017740 ) ) ) ) ) \r ) \r 0017760 \r ( a p p e n d t o v a r 006 002 0020000 c o m p i l e r m a c r o p r o 0020020 p s 006 001 d m a c r o b y t e 0020040 m a c r o m a c r o s h o u 0020060 l d - h a v e - m a c r o - f u 0020100 n c t i o n ) \r \r ( p u t p r o 0020120 p s 006 002 * m a c r o 006 001 ( 0020140 ( x . y ) \r 0020160 ' x ) ) \r 0020200 \r ( r p a q ? 006 002 * m a c r o 0020220 e x p a n d - h o o k * 006 001 ' 0020240 c l : f u n c a l l ) \r ( d e f 0020260 m a c r o 006 002 c l : m a c r o 0020300 l e t 006 001 ( m a c r o d e f s 0020320 & b o d y b o d y & e n v 0020340 i r o n m e n t e n v ) ( w 0020360 a l k - f o r m ( c o n s ' 0020400 p r o g n b o d y ) \r 0020420 * 0020520 : e n v i r o n m e n t \r 0020540 * 0020640 ( m a k e - e n v i r o n 0020660 m e n t : m a c r o s \r 0020700 * 0021000 m a c r o d 0021020 e f s : p a r e n t e n v ) 0021040 ) ) \r \r ( c l : d e f s e t f 0021060 006 002 c l : m a c r o - f u n c t 0021100 i o n 006 001 s e t f - m a c r o 0021120 - f u n c t i o n ) \r \r \r ( p u 0021140 t p r o p s 006 002 c m l m a c r 0021160 o s f i l e t y p e 006 001 c l 0021200 : c o m p i l e - f i l e ) \r ( 0021220 d e c l a r e \ : d o n t e v 0021240 a l @ l o a d d o e v a l @ c 0021260 o m p i l e d o n t c o p y 0021300 c o m p i l e r v a r s \r \r ( 0021320 a d d t o v a r 006 002 n l a m a 0021340 006 001 ) \r \r ( a d d t o v a r 0021360 006 002 n l a m l 006 001 ) \r \r ( a d 0021400 d t o v a r 006 002 l a m a 006 001 0021420 c l : m a c r o e x p a n d - 1 0021440 c l : m a c r o e x p a n d ) 0021460 \r ) \r ( p u t p r o p s c m l 0021500 m a c r o s c o p y r i g h t 0021520 ( " X e r o x C o r p o r a 0021540 t i o n " 1 9 8 6 ) ) \r ( d e 0021560 c l a r e \ : d o n t c o p y 0021600 \r ( f i l e m a p ( n i l 0021620 ( 1 1 4 6 8 1 7 5 ( c l i 0021640 s p e x p a n s i o n 1 1 5 6 0021660 . 2 5 1 4 ) ( \ \ i n t e 0021700 r l i s p - n l a m b d a - m a 0021720 c r o 2 5 1 6 . 2 8 8 3 ) 0021740 ( \r c l : m a c r o - f u n c 0021760 t i o n 2 8 8 5 . 5 8 9 9 0022000 ) ( c l : m a c r o e x p a n 0022020 d 5 9 0 1 . 6 8 0 0 ) ( 0022040 c l : m a c r o e x p a n d - 1 0022060 6 8 0 2 . 7 7 6 5 ) ( \r 0022100 s e t f - m a c r o - f u n c t 0022120 i o n 7 7 6 7 . 8 1 7 3 ) 0022140 ) ) ) ) \r s t o p \r 0022152