$ od -c -N 50000 [phylum]<3-LISP>DESRIVIERES>PRELIMINARY>LIBRARY.3-LISP!1 0000000 ; ; ; F i l e { p h y l u m 0000020 } < d e s r i v i e r e s > n l 0000040 i s p > l i b r a r y . 3 - l i 0000060 s p \r \r ; * * * * 3 - L 0000100 I S P L I B R 0000120 A R Y * * * * \r \r ; ; ; 0000140 T h e 3 - L I S P l i b r 0000160 a r y c o n s i s t s o f 0000200 t h a t p o r t i o n o f 0000220 t h e \r ; ; ; s t a n d a r 0000240 d s y s t e m t h a t i s 0000260 n e i t h e r p r i m i t i 0000300 v e n o r \r ; ; ; k e r n 0000320 e l . N o t e t h a t n 0000340 o n e o f t h e p r o c e 0000360 d u r e s d e f i n e d \r ; ; 0000400 ; i n t h e e a r l i e r 0000420 i n i t i a l i z a t i o n 0000440 f i l e s m a y u s e a n 0000460 y \r ; ; ; o f t h e p r o 0000500 c e d u r e s d e f i n e d 0000520 h e r e . \r \r \r ; ( A R G N 0000540 P A I R ) : t h e N t h 0000560 a r g u m e n t s t r u c t u 0000600 r e o f \r ; t h e p a i r 0000620 P A I R ; a s s u m e s t 0000640 h a t t h e a r g u m e n t 0000660 s t r u c t u r e i s \r ; 0000700 a r a i l . \r \r ( s y s t e m 0000720 - d e f i n e a r g \r ( 0000740 l a m b d a [ n p a i r ] \r 0000760 ( n t h n ( p a 0001000 r g s p a i r ) ) ) ) \r \r \r \r 0001020 ; ( S O M E F U N S E Q ) 0001040 : t r u e i s F U N i s 0001060 t r u e o f s o m e e l 0001100 e m e n t o f S E Q . \r ; 0001120 G o e s w i t h E V E R Y . 0001140 \r \r ( s y s t e m - d e f i n e 0001160 s o m e \r ( l a m b d a 0001200 [ f u n s e q ] \r 0001220 ( c o n d [ ( n u l l s e 0001240 q ) $ f a l s e ] \r 0001260 [ ( f u n ( f i 0001300 r s t s e q ) ) $ t r u e ] 0001320 \r [ $ t 0001340 r u e ( s o m e f u n ( r 0001360 e s t s e q ) ) ] ) ) ) \r \r \r 0001400 \r ; ( M E M B E R E 0001420 S E Q ) : t r u e i f E 0001440 i s a m e m b e r o f t 0001460 h e s e q u e n c e \r ; o r 0001500 r a i l S E Q . \r \r ( s y s 0001520 t e m - d e f i n e m e m b e 0001540 r \r ( l a m b d a [ e 0001560 s e q ] \r ( s o m e 0001600 ( l a m b d a [ x ] ( = 0001620 x e ) ) s e q ) ) ) \r \r \r \r 0001640 ; ( V E C T O R - C O N S T R 0001660 U C T O R T E M P L A T E ) : 0001700 e i t h e r L I S T o r 0001720 R C O N S , \r ; d e p e n d i 0001740 n g o n w h e t h e r o r 0001760 n o t T E M P L A T E i s 0002000 a b s t r a c t o r \r ; s 0002020 t r u c t u r e . \r \r ( s y s t 0002040 e m - d e f i n e v e c t o r 0002060 - c o n s t r u c t o r \r 0002100 ( l a m b d a [ t e m p l a t 0002120 e ] \r ( i f ( s t 0002140 r u c t u r e t e m p l a t e 0002160 ) r c o n s l i s t ) ) ) \r 0002200 \r \r \r ; ( C O P Y - V E C T O 0002220 R S E Q ) : c o p i e s t 0002240 h e t o p - l e v e l s t r 0002260 u c t u r e o f \r ; t h e 0002300 S E Q . \r \r ( s y s t e m - d e 0002320 f i n e c o p y - v e c t o r 0002340 \r ( l a m b d a [ s e q 0002360 ] \r ( i f ( n u l 0002400 l s e q ) \r 0002420 ( ( v e c t o r - c o n s t r 0002440 u c t o r s e q ) ) \r 0002460 ( c o n s ( f i r 0002500 s t s e q ) \r 0002520 ( c o p y - v e 0002540 c t o r ( r e s t s e q ) ) 0002560 ) ) ) ) \r \r \r \r ; ( R E V E R 0002600 S E S E Q ) : s e q u e n c 0002620 e o f e l e m e n t s o f 0002640 S E Q i n r e v e r s e 0002660 o r d e r . \r \r ( l e t r e c 0002700 \r [ [ r e v e r s e - h e l 0002720 p e r \r ( l a m b d a 0002740 [ s e q a c c u m u l a t o r 0002760 ] \r ( i f ( n u 0003000 l l s e q ) \r 0003020 a c c u m u l a t o r \r 0003040 ( r e v e r 0003060 s e - h e l p e r ( r e s t 0003100 s e q ) \r 0003120 ( c o n s ( f i r s t 0003140 s e q ) a c c u m u l a t o r 0003160 ) ) ) ) ] ] \r ( s y s t e m 0003200 - d e f i n e r e v e r s e \r 0003220 ( l a m b d a [ s e 0003240 q ] \r ( r e v e 0003260 r s e - h e l p e r s e q ( 0003300 ( v e c t o r - c o n s t r u c 0003320 t o r s e q ) ) ) ) ) ) \r \r \r 0003340 \r ; ( I N D E X E S E Q ) 0003360 : p o s i t i o n o f E 0003400 i n S E Q ; 0 i f n o t 0003420 f o u n d . \r \r ( l e t r e c 0003440 \r [ [ i n d e x - h e l p e 0003460 r \r ( l a m b d a [ e 0003500 s e q p o s i t i o n ] \r 0003520 ( c o n d [ ( n u 0003540 l l s e q ) 0 ] \r 0003560 [ ( = e ( f 0003600 i r s t s e q ) ) p o s i t 0003620 i o n ] \r 0003640 [ $ t r u e \r 0003660 ( i n d e x - h e 0003700 l p e r e ( r e s t s e q 0003720 ) \r 0003740 ( 1 + p o s i t i o n ) 0003760 ) ] ) ) ] ] \r ( s y s t e 0004000 m - d e f i n e i n d e x \r 0004020 ( l a m b d a [ e s 0004040 e q ] \r ( i n d 0004060 e x - h e l p e r e s e q 0004100 1 ) ) ) ) \r \r \r ; ( V E C T O 0004120 R E ) : t r u e o n l y 0004140 o f s e q u e n c e s a n d 0004160 r a i l s . \r \r ( s y s t e m 0004200 - d e f i n e v e c t o r \r 0004220 ( l a m b d a [ e ] \r 0004240 ( o r ( s e q u e n c 0004260 e e ) ( r a i l e ) ) ) ) 0004300 \r \r \r ; ( E X T E R N A L E 0004320 ) : t r u e o n l y o f 0004340 a b s t r a c t o b j e c t s 0004360 . \r \r ( s y s t e m - d e f i n 0004400 e e x t e r n a l \r ( l 0004420 a m b d a [ e ] \r 0004440 ( n o t ( s t r u c t u r e 0004460 e ) ) ) ) \r \r \r ; ( R E M A I 0004500 N D E R N 1 N 2 ) : r e m 0004520 a i n d e r a f t e r d i v 0004540 i d i n g N 1 b y N 2 . \r 0004560 \r ( s y s t e m - d e f i n e 0004600 r e m a i n d e r \r ( l a 0004620 m b d a [ n 1 n 2 ] \r 0004640 ( - n 1 ( * ( / n 0004660 1 n 2 ) n 2 ) ) ) ) \r \r \r \r 0004700 ; ( N E G A T I V E N ) : 0004720 t r u e i f N < 0 . \r ; 0004740 ( N O N - N E G A T I V E N 0004760 ) : t r u e i f N > = 0005000 0 . \r ; ( P O S I T I V E N 0005020 ) : t r u e i f N > 0 0005040 . \r ; ( O D D N ) : t r u 0005060 e i f N i s o d d . \r ; 0005100 ( E V E N N ) : t r u e 0005120 i f N i s o d d . \r \r ( s 0005140 y s t e m - d e f i n e n e g 0005160 a t i v e ( l a m b d a [ n 0005200 ] ( < n 0 ) ) ) \r ( s y s 0005220 t e m - d e f i n e n o n - n 0005240 e g a t i v e ( l a m b d a 0005260 [ n ] ( > = n 0 ) ) ) \r ( 0005300 s y s t e m - d e f i n e p o 0005320 s i t i v e ( l a m b d a [ 0005340 n ] ( > n 0 ) ) ) \r ( s y 0005360 s t e m - d e f i n e e v e n 0005400 ( l a m b d a [ n ] ( z e 0005420 r o ( r e m a i n d e r n 0005440 2 ) ) ) ) \r ( s y s t e m - d e 0005460 f i n e o d d ( l a m b d a 0005500 [ n ] ( n o t ( e v e n 0005520 n ) ) ) ) \r \r \r \r ; ( A B S 0005540 N ) : a b s o l u t e v a l 0005560 u e o f N . \r \r ( s y s t e 0005600 m - d e f i n e A B S \r 0005620 ( l a m b d a [ n ] \r 0005640 ( i f ( n e g a t i v e 0005660 n ) ( - 0 n ) n ) ) ) \r 0005700 \r \r \r ; ( * * N 1 N 2 ) : 0005720 N 2 - f o l d p r o d u c t 0005740 o f N 1 w i t h i t s e 0005760 l f . \r \r ( s y s t e m - d e f 0006000 i n e * * \r ( l a m b d a 0006020 [ n 1 n 2 ] \r ( c o 0006040 n d [ ( = n 2 0 ) 1 ] \r 0006060 [ ( = n 2 0006100 1 ) n 1 ] \r 0006120 [ ( < n 2 1 ) ( e r r 0006140 o r " e x p o n e n t m u s 0006160 t b e n o n - n e g a t i v 0006200 e " n 2 ) ] \r 0006220 [ $ t r u e \r 0006240 ( l e t [ [ h a l f - 0006260 n 2 ( / n 2 2 ) ] ] \r 0006300 ( * ( * 0006320 * n 1 h a l f - n 2 ) ( * 0006340 * n 1 ( - n 2 h a l f - 0006360 n 2 ) ) ) ) ] ) ) ) \r \r \r \r \r \r 0006400 \r ; ( R L A M B D A [ C A L 0006420 L E N V E S C C O N T ] 0006440 B 1 . . . B N ) : r e f l 0006460 e c t i v e l a m b d a . \r \r 0006500 \r ( s y s t e m - d e f i n e 0006520 r l a m b d a ; r l a 0006540 m b d a a s a m a c r o . 0006560 \r \ ( m a c r o i f y \r 0006600 ( l a m b d a [ c a l l ] 0006620 \r ( l e t [ [ a r 0006640 g s ( p a r g s c a l l ) ] 0006660 ] \r ( i f ( a 0006700 n d ( r a i l a r g s ) ( 0006720 > = ( l e n g t h a r g s ) 0006740 2 ) \r 0006760 ( v a l i d - p a t t 0007000 e r n ( f i r s t a r g s ) 0007020 ) \r 0007040 ( o r ( a t o m ( f i 0007060 r s t a r g s ) ) \r 0007100 0007120 ( = ( l e n g t h ( f i r s 0007140 t a r g s ) ) 4 ) ) ) \r 0007160 ' ( , ^ d o 0007200 w n ( , ^ r e f l e c t i f y 0007220 ( , ^ l a m b d a . , a r g 0007240 s ) ) ) \r 0007260 ' ( , ^ t r a p " m a l f o 0007300 r m e d r l a m b d a " , c 0007320 a l l ) ) ) ) ) ) \r \r \r ; ( M 0007340 L A M B D A [ C A L L ] B 1 0007360 . . . B N ) : r e f l e c 0007400 t i v e l a m b d a . \r \r ( s 0007420 y s t e m - d e f i n e m l a 0007440 m b d a ; m l a m b d 0007460 a a s a m a c r o . \r 0007500 \ ( m a c r o i f y \r ( 0007520 l a m b d a [ c a l l ] \r 0007540 ( l e t [ [ a r g s 0007560 ( p a r g s c a l l ) ] ] \r 0007600 ( i f ( a n d 0007620 ( r a i l a r g s ) ( > = 0007640 ( l e n g t h a r g s ) 2 ) 0007660 \r 0007700 ( v a l i d - p a t t e r n 0007720 ( f i r s t a r g s ) ) \r 0007740 0007760 ( o r ( a t o m ( f i r s t 0010000 a r g s ) ) \r 0010020 ( = 0010040 ( l e n g t h ( f i r s t a 0010060 r g s ) ) 1 ) ) ) \r 0010100 ' \ ( , ^ m a c r 0010120 o i f y ( , ^ l a m b d a . 0010140 , a r g s ) ) \r 0010160 ' ( , ^ t r a p " m 0010200 a l f o r m e d m l a m b d a 0010220 " , c a l l ) ) ) ) ) ) \r \r \r 0010240 \r ; ( C U R R E N T - E N V I 0010260 R O N M E N T ) : m a k e s 0010300 e x p l i c i t t h e c u r 0010320 r e n t e n v i r o n m e n t 0010340 . \r \r ( s y s t e m - d e f i n 0010360 e c u r r e n t - e n v i r o 0010400 n m e n t \r ( r l a m b d a 0010420 [ c a l l e n v e s c c 0010440 o n t ] \r ( l e t [ 0010460 [ a r g s ( p a r g s c a l 0010500 l ) ] ] \r ( i 0010520 f ( a n d ( r a i l a r g 0010540 s ) ( n u l l a r g s ) ) \r 0010560 ( c o 0010600 n t ^ e n v ) \r 0010620 ( e s c " c u r 0010640 r e n t - e n v i r o n m e n t 0010660 e x p e c t s n o a r g u 0010700 m e n t s " \r 0010720 c a l l e n 0010740 v e s c c o n t c a l l 0010760 " " ) ) ) ) ) \r \r \r \r ; ( I G 0011000 N O R E E 1 E 2 . . . ) : 0011020 i g n o r e s i t s a r g 0011040 u m e n t s . \r \r ( s y s t e m 0011060 - d e f i n e i g n o r e \r 0011100 ( r l a m b d a [ c a l l 0011120 e n v e s c c o n t ] ( c 0011140 o n t ' ' o k ) ) ) \r \r \r \r ; 0011160 ( L E T S E Q [ [ P 1 E 1 0011200 ] . . . ] B 1 . . . ) : 0011220 s e q u e n t i a l L E T . \r 0011240 \r ( s y s t e m - d e f i n e 0011260 l e t s e q \r ( m l a m b d 0011300 a [ c a l l ] \r ( l e 0011320 t [ [ a r g s ( p a r g s 0011340 c a l l ) ] ] \r ( i 0011360 f ( a n d ( r a i l a r g 0011400 s ) \r 0011420 ( > = ( l e n g t h a r 0011440 g s ) 1 ) \r 0011460 ( r a i l ( f i r 0011500 s t a r g s ) ) \r 0011520 ( e v e r y 0011540 ( l a m b d a [ x ] \r 0011560 0011600 ( a n d ( r a i l 0011620 x ) \r 0011640 0011660 ( = ( l e n g t h x ) 2 0011700 ) \r 0011720 0011740 ( a t o m ( f i r s t x ) ) 0011760 ) ) \r 0012000 ( f i r s t 0012020 a r g s ) ) ) \r 0012040 ( c o n d [ ( n u l l ( 0012060 f i r s t a r g s ) ) 0012100 ; = a B E G I N 0012120 . \r 0012140 ( b e g i n i f y ( r e 0012160 s t a r g s ) ) ] \r 0012200 [ ( = ( 0012220 l e n g t h ( f i r s t a r 0012240 g s ) ) 1 ) ; = a L E 0012260 T . \r 0012300 ' ( , ^ l e t . , a 0012320 r g s ) ] \r 0012340 [ $ t r u e 0012360 0012400 ; P e e l o f f o n 0012420 e v a r i a b l e \r 0012440 ( l e t 0012460 [ [ r e m a i n i n g - b i n 0012500 d i n g s ( r e s t ( f i r 0012520 s t a r g s ) ) ] \r 0012540 0012560 [ b o d y ( r e s t a r 0012600 g s ) ] ] \r 0012620 ' ( , ^ l e 0012640 t [ , ( f i r s t ( f i r s 0012660 t a r g s ) ) ] \r 0012700 0012720 ( , ^ l e t s e q . , ( 0012740 c o n s r e m a i n i n g - b 0012760 i n d i n g s b o d y ) ) ) ) 0013000 ] ) \r ' ( , 0013020 ^ t r a p " m a l f o r m e d 0013040 l e t s e q " , c a l l ) ) 0013060 ) ) ) \r \r \r \r ; ( C A T C H 0013100 T A G B 1 . . . ) : S c h 0013120 e m e - s t y l e c a t c h / 0013140 t h r o w . \r \r ( s y s t e m - 0013160 d e f i n e c a t c h \r ( 0013200 r l a m b d a [ c a l l e n 0013220 v e s c c o n t ] \r 0013240 ( l e t [ [ a r g s ( p a r 0013260 g s c a l l ) ] ] \r 0013300 ( i f ( a n d ( r a i l 0013320 a r g s ) ( > = ( l e n g t 0013340 h a r g s ) 1 ) ( a t o m 0013360 ( f i r s t a r g s ) ) ) \r 0013400 ( l e t [ 0013420 [ t h r o w e r ( l a m b d a 0013440 [ x ] ( ( r l a m b d a i 0013460 g n o r e ( c o n t ^ x ) ) 0013500 ) ) ] ] \r 0013520 ( n o r m a l i z e ( b e 0013540 g i n i f y ( r e s t a r g 0013560 s ) ) \r 0013600 ( b i n d ( f i r s t 0013620 a r g s ) ^ t h r o w e r 0013640 e n v ) \r 0013660 e s c c o n t ) ) \r 0013700 ( e s c " 0013720 m a l f o r m e d c a t c h " 0013740 \r 0013760 c a l l e n v e s c c o n 0014000 t c a l l " " ) ) ) ) ) \r \r 0014020 \r \r ; ( D E L A Y C ) : S 0014040 c h e m e - s t y l e l a m b 0014060 d a - d e f e r r a l . \r \r ( s 0014100 y s t e m - d e f i n e d e l 0014120 a y \r ( m l a m b d a [ c 0014140 a l l ] \r ( l e t [ [ 0014160 a r g s ( p a r g s c a l l 0014200 ) ] ] \r ( i f ( 0014220 a n d ( r a i l a r g s ) 0014240 ( = ( l e n g t h a r g s ) 0014260 1 ) ) \r 0014300 ' ( , ^ l a m b d a [ ] , ( 0014320 f i r s t a r g s ) ) \r 0014340 ' ( , ^ t r a p 0014360 " m a l f o r m e d d e l a 0014400 y " , c a l l ) ) ) ) ) \r \r \r 0014420 \r \r ; ( F O R C E C ) : f 0014440 o r c e s a p r e v i o u s 0014460 l y - D E L A Y E D c o m p u 0014500 t a t i o n . \r \r ( s y s t e m 0014520 - d e f i n e f o r c e \r 0014540 ( m l a m b d a [ c a l l ] \r 0014560 ( l e t [ [ a r g s 0014600 ( p a r g s c a l l ) ] ] \r 0014620 ( i f ( a n d ( 0014640 r a i l a r g s ) ( = ( l 0014660 e n g t h a r g s ) 1 ) ) \r 0014700 ' ( , ( f 0014720 i r s t a r g s ) ) \r 0014740 ' ( , ^ t r a p 0014760 " m a l f o r m e d f o r c e 0015000 " , c a l l ) ) ) ) ) \r \r \r \r 0015020 ; ( R E D U C E P R O C A 0015040 R G S E N V E S C C O N T 0015060 ) : n o r m a l i z e s a 0015100 c a l l \r \r ( s y s t e m - d e 0015120 f i n e r e d u c e \r ( 0015140 l a m b d a [ p r o c a r g 0015160 s e n v e s c c o n t ] \r 0015200 ( n o r m a l i z e 0015220 ' ( , p r o c . , a r g s 0015240 ) e n v e s c c o n t ) ) 0015260 ) \r \r \r \r \r ; ( D E S I G N A 0015300 T I O N E X P E N V ) : f 0015320 u l l D O W N . \r \r ( s y s t 0015340 e m - d e f i n e d e s i g n 0015360 a t i o n \r ( l a m b d a 0015400 [ s t r u c t u r e e n v ] 0015420 \r ( n o r m a l i z 0015440 e s t r u c t u r e e n v \r 0015460 ( l a m b d a 0015500 [ m e s s a g e s t r u c t 0015520 u r e e n v e s c c o n t 0015540 d a t u m - 1 d a t u m - 2 0015560 ] \r ( e 0015600 r r o r ( s t r i n g - a p p 0015620 e n d " n o r m a l i z a t i 0015640 o n f a i l e d : " m e s 0015660 s a g e ) \r 0015700 s t r u c t u r e ) ) 0015720 \r d o w n ) 0015740 ) ) \r \r \r \r ; ( S T R I N G - 0015760 C O N S C H S T R ) : a p 0016000 p e n d a c h a r a c t e r 0016020 t o a s t r i n g . \r \r ( 0016040 s y s t e m - d e f i n e s t 0016060 r i n g - c o n s s t r i n g 0016100 - a p p e n d ) ; C h e a t 0016120 ! \r \r \r \r ; ( S E L E C T I 0016140 N D E X [ M 1 C 1 . . . ] 0016160 . . . ) : L i k e D I S P A 0016200 T C H , e x c e p t M i n 0016220 o r m a l i z e d . \r \r ( l e t 0016240 r e c \r [ [ s e l e c t - o 0016260 k \r ( l a m b d a [ a r 0016300 g s ] \r ( a n d ( r 0016320 a i l a r g s ) ( > = ( l 0016340 e n g t h a r g s ) 1 ) \r 0016360 ( e v e r y ( l a 0016400 m b d a [ x ] \r 0016420 ( a n d ( 0016440 r a i l x ) ( > = ( l e n 0016460 g t h x ) 1 ) ) ) \r 0016500 ( r e s t 0016520 a r g s ) ) ) ) ] \r [ e x p 0016540 a n d - s e l e c t \r ( l 0016560 a m b d a [ a r g s ] \r 0016600 ( l e t s e q [ [ i n d e 0016620 x ( f i r s t a r g s ) ] \r 0016640 [ n 0016660 e w - v a r i a b l e ( a c o 0016700 n s ) ] \r 0016720 [ n e w - c l a u s e s \r 0016740 0016760 ( m a p ( l a m b d a [ x ] 0017000 \r 0017020 ( c o n d \r 0017040 0017060 [ ( = ( f i r 0017100 s t x ) ' $ t r u e ) x ] 0017120 \r 0017140 [ ( r a i 0017160 l ( f i r s t x ) ) \r 0017200 0017220 ( c o n s ' ( 0017240 , ^ m e m b e r , n e w - v a 0017260 r i a b l e , ( f i r s t x 0017300 ) ) \r 0017320 0017340 ( r e s t x ) ) ] \r 0017360 0017400 [ $ t r u e 0017420 \r 0017440 0017460 ( c o n s ' ( , ^ = , n 0017500 e w - v a r i a b l e , ( f i 0017520 r s t x ) ) \r 0017540 0017560 ( r e s t x ) ) ] 0017600 ) ) \r 0017620 ( r e s t a r 0017640 g s ) ) ] ] \r 0017660 ' ( , ^ l e t [ [ , n 0017700 e w - v a r i a b l e , i n d 0017720 e x ] ] \r 0017740 ( , ^ c o n d . 0017760 , n e w - c l a u s e s ) ) ) ) 0020000 ] ] \r ( s y s t e m - d e f 0020020 i n e s e l e c t \r ( 0020040 m l a m b d a [ c a l l ] \r 0020060 ( i f ( s e l e c t 0020100 - o k ( p a r g s c a l l ) 0020120 ) \r ( e x p 0020140 a n d - s e l e c t ( p a r g 0020160 s c a l l ) ) \r 0020200 ' ( , ^ t r a p " m a l 0020220 f o r m e d s e l e c t " , 0020240 c a l l ) ) ) ) ) \r \r \r \r ; 0020260 ( D I S P A T C H I N D E X 0020300 [ A 1 C 1 . . . ] . . . ) 0020320 : n - w a y d i s p a t c h 0020340 o n a t o m s . \r \r ( l e t 0020360 r e c [ \r [ d i s p a t c h 0020400 - o k \r ( l a m b d a [ c 0020420 a l l ] \r ( l e t [ [ 0020440 a r g s ( p a r g s c a l l 0020460 ) ] ] \r ( a n d ( 0020500 r a i l a r g s ) ( > ( l 0020520 e n g t h a r g s ) 2 ) 0020540 ; P a t t e r n m a t c h e 0020560 r , w h e r e a r e y o u 0020600 ? \r ( e v e r 0020620 y ( l a m b d a [ x ] ( a 0020640 n d ( r a i l x ) ( > = 0020660 ( l e n g t h x ) 1 ) ) ) 0020700 ( r e s t a r g s ) ) \r 0020720 ( e v e r y a t o 0020740 m ( m a p f i r s t ( a l 0020760 l - b u t - l a s t ( r e s t 0021000 a r g s ) ) ) ) \r 0021020 ( o r ( a t o m ( f i 0021040 r s t ( l a s t a r g s ) ) 0021060 ) \r ( 0021100 = ' $ t r u e ( f i r s t 0021120 ( l a s t a r g s ) ) ) ) ) ) 0021140 ) ] ] \r \r ( s y s t e m - 0021160 d e f i n e d i s p a t c h \r 0021200 ( m l a m b d a [ c a 0021220 l l ] \r ( l e t [ 0021240 [ a r g s ( p a r g s c a l 0021260 l ) ] ] \r ( i f 0021300 ( d i s p a t c h - o k c a 0021320 l l ) \r ( l e 0021340 t [ [ i n d e x ( f i r s t 0021360 a r g s ) ] \r 0021400 [ n e w - c l a u 0021420 s e s \r 0021440 ( m a p ( l a m b d a 0021460 [ x ] \r 0021500 ( i f 0021520 ( a t o m ( f i r s t x ) ) 0021540 \r 0021560 ( c o n 0021600 s ^ ( f i r s t x ) ( r e 0021620 s t x ) ) \r 0021640 0021660 x ) ) \r 0021700 ( r e s t 0021720 a r g s ) ) ] ] \r 0021740 ' ( , ^ s e l e c t 0021760 . , ( c o n s i n d e x n 0022000 e w - c l a u s e s ) ) ) \r 0022020 ' ( , ^ t r a p 0022040 " m a l f o r m e d d i s p a 0022060 t c h " , c a l l ) ) ) ) ) ) 0022100 \r \r \r \r \r ; ( C U R R I E D - 0022120 D I S P A T C H I N D E X [ 0022140 M 1 C 1 . . . ] ) : L i k 0022160 e D I S P A T C H , e x c e 0022200 p t \r ; t h a t t h e h e 0022220 a d o f e a c h c l a u s 0022240 e m u s t b e a p a i r 0022260 , i n t o w h i c h t h e 0022300 \r ; i n d e x ' s s u r r o 0022320 g a t e i s p l a c e d a 0022340 s t h e f i r s t a r g u 0022360 m e n t . \r \r ( l e t r e c \r 0022400 [ [ d i s p a t c h - o k \r 0022420 ( l a m b d a [ a r g s ] 0022440 \r ( a n d ( r a i l 0022460 a r g s ) ( > ( l e n g t 0022500 h a r g s ) 2 ) \r 0022520 ( e v e r y ( l a m b d a 0022540 [ x ] \r 0022560 ( a n d ( r a i l 0022600 x ) ( > = ( l e n g t h 0022620 x ) 1 ) \r 0022640 ( p a i 0022660 r ( f i r s t x ) ) ( r a 0022700 i l ( p a r g s ( f i r s t 0022720 x ) ) ) \r 0022740 ( > = 0022760 ( l e n g t h ( p a r g s ( 0023000 f i r s t x ) ) ) 1 ) ) ) \r 0023020 ( r 0023040 e s t a r g s ) ) ) ) ] \r 0023060 [ e x p a n d - d i s p a t c h 0023100 \r ( l a m b d a [ a r g 0023120 s ] \r ( l e t s e q 0023140 [ [ i n d e x ( f i r s t a 0023160 r g s ) ] \r 0023200 [ n e w - v a r i a b l 0023220 e ( a c o n s ) ] \r 0023240 [ n e w - c l 0023260 a u s e s \r 0023300 ( m a p ( l a m b 0023320 d a [ x ] \r 0023340 ( c 0023360 o n s \r 0023400 ( p c 0023420 o n s ( p p r o c ( f i r s 0023440 t x ) ) \r 0023460 0023500 ( c o n s n e w - v a r 0023520 i a b l e ( r e s t ( p a r 0023540 g s ( f i r s t x ) ) ) ) ) 0023560 \r 0023600 ( r e s t 0023620 x ) ) ) \r 0023640 ( r e s t 0023660 a r g s ) ) ] ] \r 0023700 ' ( , ^ l e t [ [ 0023720 , n e w - v a r i a b l e , i 0023740 n d e x ] ] \r 0023760 ( , ^ c o n d 0024000 . , n e w - c l a u s e s ) ) 0024020 ) ) ] ] \r ( s y s t e m - d 0024040 e f i n e c u r r i e d - d i 0024060 s p a t c h \r ( m l a m 0024100 b d a [ c a l l ] \r 0024120 ( i f ( d i s p a t c h - o 0024140 k ( p a r g s c a l l ) ) \r 0024160 ( e x p a n 0024200 d - d i s p a t c h ( p a r g 0024220 s c a l l ) ) \r 0024240 ' ( , ^ t r a p " m a l 0024260 f o r m e d c u r r i e d - d 0024300 i s p a t c h " , c a l l ) ) 0024320 ) ) ) \r \r \r \r \r ; ( D O [ [ 0024340 V 1 I 1 N 1 ] . . . ] [ 0024360 [ E X 1 R E T 1 . . . ] . 0024400 . . ] B 1 . . . ) : M a c 0024420 l i s p - i s h D O . \r \r ( l 0024440 e t r e c \r [ [ d o - o k \r 0024460 ( l a m b d a [ a r g s 0024500 ] \r ( a n d ( r a i 0024520 l a r g s ) ( > = ( l e n 0024540 g t h a r g s ) 2 ) \r 0024560 ( r a i l ( f i r s t 0024600 a r g s ) ) ( r a i l ( s 0024620 e c o n d a r g s ) ) \r 0024640 ( e v e r y ( l a m b 0024660 d a [ x ] ; [ v a r i n 0024700 i t n e x t ] t r i p l e s 0024720 \r 0024740 ( a n d ( r a i l x ) 0024760 ( = ( l e n g t h x ) 3 ) 0025000 \r 0025020 ( a t o m ( f i 0025040 r s t x ) ) ) ) \r 0025060 ( f i r s t a 0025100 r g s ) ) \r ( e v 0025120 e r y ( l a m b d a [ x ] 0025140 ; [ e x i t - t e s t r e t 0025160 u r n ] d o u b l e t s \r 0025200 ( 0025220 a n d ( r a i l x ) ( > = 0025240 ( l e n g t h x ) 2 ) ) ) 0025260 \r ( 0025300 s e c o n d a r g s ) ) ) ) ] 0025320 \r [ e x p a n d - d o \r 0025340 ( l a m b d a [ a r g s ] \r 0025360 ( l e t s e q ; 0025400 A r e y o u r e a l l y r 0025420 e a d y f o r t h i s ? ? ? 0025440 \r [ [ s t e p p e 0025460 r s ( f i r s t a r g s ) ] 0025500 \r [ t e r m i n 0025520 a t o r s ( s e c o n d a r 0025540 g s ) ] \r [ l o 0025560 o p - v a r i a b l e s ( m a 0025600 p f i r s t s t e p p e r s 0025620 ) ] \r [ i n i t 0025640 i a l i z e r s ( m a p s e 0025660 c o n d s t e p p e r s ) ] \r 0025700 [ s t e p p e r 0025720 s ( m a p t h i r d s t e 0025740 p p e r s ) ] \r 0025760 [ d o - b o d i e s ( t a i l 0026000 2 a r g s ) ] \r 0026020 [ l o o p - n a m e ( a c 0026040 o n s ) ] \r [ l 0026060 a s t - c l a u s e \r 0026100 ' [ $ t r u e , ( b e 0026120 g i n i f y d o - b o d i e s 0026140 ) \r 0026160 ( , l o o p - n a m e . 0026200 , s t e p p e r s ) ] ] \r 0026220 [ c o n d - c l a 0026240 u s e \r ' ( , 0026260 ^ c o n d . , ( a p p e n d 0026300 t e r m i n a t o r s ' [ , l 0026320 a s t - c l a u s e ] ) ) ] 0026340 \r [ l o o p - b 0026360 o d y \r ' ( 0026400 , ^ l a m b d a , l o o p - v 0026420 a r i a b l e s , c o n d - c 0026440 l a u s e ) ] ] \r 0026460 ' ( , ^ l e t r e c [ [ , l 0026500 o o p - n a m e , l o o p - b 0026520 o d y ] ] \r 0026540 ( , l o o p - n a m e . , i n 0026560 i t i a l i z e r s ) ) ) ) ] 0026600 ] \r 0026620 \r ( s y s t e m - d e f 0026640 i n e d o \r ( m l a m 0026660 b d a [ c a l l ] \r 0026700 ( i f ( d o - o k ( p a r 0026720 g s c a l l ) ) \r 0026740 ( e x p a n d - d o ( 0026760 p a r g s c a l l ) ) \r 0027000 ' ( , ^ t r a p 0027020 " m a l f o r m e d d o " , 0027040 c a l l ) ) ) ) ) \r \r \r \0 \0 . , 0027060 \0 \0 \0 005 G A C H A \0 \n \0 \0 \0 \0 \0 0027100 \0 \0 \0 \0 \0 . , \0 001 z 267 0027113