$ od -c -N 50000 [eris]<Lisp>KOTO>Library>CHAPCONTROLFNS.TXT!1 0000000 \r 9 . \t C O N D I T I O N A 0000020 L S A N D I T E R A T I V E 0000040 S T A T E M E N T S \r \r \r I 0000060 n o r d e r t o d o a n 0000100 y b u t t h e s i m p l e 0000120 s t c o m p u t a t i o n s , 0000140 i t i s n e c e s s a r y 0000160 t o t e s t v a l u e s 0000200 a n d e x e c u t e e x p r 0000220 e s s i o n s c o n d i t i o 0000240 n a l l y , a n d t o e x 0000260 e c u t e a s e r i e s o 0000300 f e x p r e s s i o n s . 0000320 I n t e r l i s p s u p p l i 0000340 e s a l a r g e n u m b e 0000360 r o f p r e d i c a t e s , 0000400 c o n d i t i o n a l f u n 0000420 c t i o n s , a n d c o n t 0000440 r o l f u n c t i o n s . 0000460 A l s o , t h e r e i s a 0000500 c o m p l e x " i t e r a t 0000520 i v e s t a t e m e n t " f 0000540 a c i l i t y w h i c h a l 0000560 l o w s t h e u s e r t o 0000600 e a s i l y c r e a t e c 0000620 o m p l e x l o o p s a n d 0000640 i t e r a t i v e c o n s t 0000660 r u c t s ( p a g e X . X X 0000700 ) . \r \r 9 . 1 \t D a t a T 0000720 y p e P r e d i c a t e s \r \r 0000740 I n t e r l i s p p r o v i d 0000760 e s s e p a r a t e f u n c 0001000 t i o n s f o r t e s t i n 0001020 g w h e t h e r o b j e c t 0001040 s a r e o f c e r t a i n 0001060 c o m m o n l y - u s e d t 0001100 y p e s : \r ( L I T A T O M X 0001120 ) \t [ F u n c t i o n ] \r R 0001140 e t u r n s T i f X i s 0001160 a l i t a t o m ( s e e 0001200 p a g e X . X X ) N I L o 0001220 t h e r w i s e . N o t e 0001240 t h a t a n u m b e r i s 0001260 n o t a l i t a t o m . 0001300 \r \r ( S M A L L P X ) \t [ 0001320 F u n c t i o n ] \r R e t u r n 0001340 s X i f X i s a s m 0001360 a l l i n t e g e r ; N I L 0001400 o t h e r w i s e . ( N o 0001420 t e t h a t t h e r a n g 0001440 e o f s m a l l i n t e g 0001460 e r s i s i m p l e m e n t 0001500 a t i o n - d e p e n d e n t . 0001520 S e e p a g e X . X X . 0001540 ) \r \r ( F I X P X ) \t [ F 0001560 u n c t i o n ] \r R e t u r n s 0001600 X i f X i s a s m a 0001620 l l o r l a r g e i n t e 0001640 g e r ; N I L o t h e r w i 0001660 s e . \r \r ( F L O A T P X ) 0001700 \t [ F u n c t i o n ] \r R e t 0001720 u r n s X i f X i s a 0001740 f l o a t i n g p o i n t 0001760 n u m b e r ; N I L o t h e 0002000 r w i s e . \r \r ( N U M B E R P 0002020 X ) \t [ F u n c t i o n ] 0002040 \r R e t u r n s X i f X 0002060 i s a n u m b e r o f a 0002100 n y t y p e ( F I X P o r 0002120 F L O A T P ) , N I L o t 0002140 h e r w i s e . \r \r ( A T O M 0002160 X ) \t [ F u n c t i o n ] \r 0002200 R e t u r n s T i f X i 0002220 s a n a t o m ( i . e . 0002240 a l i t a t o m o r a n 0002260 u m b e r ) ; N I L o t h e 0002300 r w i s e . \r W a r n i n g : 0002320 ( A T O M X ) i s N I L 0002340 i f X i s a n a r r a 0002360 y , s t r i n g , e t c . 0002400 I n m a n y d i a l e c t 0002420 s o f L i s p , t h e f 0002440 u n c t i o n A T O M i s 0002460 d e f i n e d e q u i v a l e 0002500 n t t o t h e I n t e r l 0002520 i s p f u n c t i o n N L I 0002540 S T P . \r \r ( L I S T P X ) 0002560 \t [ F u n c t i o n ] \r R e t 0002600 u r n s X i f X i s a 0002620 l i s t c e l l , e . g . 0002640 , s o m e t h i n g c r e a 0002660 t e d b y C O N S ; N I L 0002700 o t h e r w i s e . \r \r ( N L 0002720 I S T P X ) \t [ F u n c t 0002740 i o n ] \r ( N O T ( L I S T P 0002760 X ) ) . R e t u r n s T 0003000 i f X i s n o t a l 0003020 i s t c e l l , N I L o t 0003040 h e r w i s e . \r \r ( S T R I N 0003060 G P X ) \t [ F u n c t i o 0003100 n ] \r R e t u r n s X i f 0003120 X i s a s t r i n g , N 0003140 I L o t h e r w i s e . \r \r ( 0003160 A R R A Y P X ) \t [ F u n 0003200 c t i o n ] \r R e t u r n s X 0003220 i f X i s a n a r r a 0003240 y , N I L o t h e r w i s e 0003260 . \r N o t e : I n s o m e 0003300 i m p l e m e n t a t i o n s 0003320 o f I n t e r l i s p ( b 0003340 u t n o t I n t e r l i s p 0003360 - D ) , A R R A Y P m a y 0003400 a l s o r e t u r n X i f 0003420 i t i s o f t y p e C 0003440 C O D E P o r H A R R A Y P 0003460 . \r \r ( H A R R A Y P X ) 0003500 \t [ F u n c t i o n ] \r R e t u 0003520 r n s X i f i t i s a 0003540 h a s h a r r a y o b j e 0003560 c t ; o t h e r w i s e N I 0003600 L . \r N o t e t h a t H A R 0003620 R A Y P r e t u r n s N I L 0003640 i f X i s a l i s t 0003660 w h o s e C A R i s a n 0003700 H A R R A Y P , e v e n t h 0003720 o u g h t h i s i s a c c 0003740 e p t e d b y t h e h a s 0003760 h a r r a y f u n c t i o n 0004000 s . \r \r N o t e : T h e e 0004020 m p t y l i s t , ( ) o r 0004040 N I L , i s c o n s i d e 0004060 r e d t o b e a l i t a 0004100 t o m , r a t h e r t h a n 0004120 a l i s t . T h e r e f 0004140 o r e , ( L I T A T O M N I 0004160 L ) = ( A T O M N I L ) 0004200 = T a n d ( L I S T P N 0004220 I L ) = N I L . C a r e 0004240 s h o u l d b e t a k e n 0004260 w h e n u s i n g t h e s 0004300 e f u n c t i o n s i f t 0004320 h e o b j e c t m a y b e 0004340 t h e e m p t y l i s t 0004360 N I L . \r \r 9 . 2 \t E q u a 0004400 l i t y P r e d i c a t e s \r 0004420 \r A c o m m o n o p e r a t 0004440 i o n w h e n d e a l i n g 0004460 w i t h d a t a o b j e c 0004500 t s i s t o t e s t w h 0004520 e t h e r t w o o b j e c t 0004540 s a r e e q u a l . I n 0004560 s o m e c a s e s , s u c 0004600 h a s w h e n c o m p a r 0004620 i n g t w o s m a l l i n 0004640 t e g e r s , e q u a l i t y 0004660 c a n b e e a s i l y d 0004700 e t e r m i n e d . H o w e 0004720 v e r , s o m e t i m e s t 0004740 h e r e i s m o r e t h a 0004760 n o n e t y p e o f e q 0005000 u a l i t y . F o r i n s 0005020 t a n c e , g i v e n t w o 0005040 l i s t s , o n e c a n 0005060 a s k w h e t h e r t h e y 0005100 a r e e x a c t l y t h e 0005120 s a m e o b j e c t , o r 0005140 w h e t h e r t h e y a r 0005160 e t w o d i s t i n c t l 0005200 i s t s w h i c h c o n t a 0005220 i n t h e s a m e e l e m 0005240 e n t s . C o n f u s i o n 0005260 b e t w e e n t h e s e t 0005300 w o t y p e s o f e q u a 0005320 l i t y i s o f t e n t h 0005340 e s o u r c e o f p r o g 0005360 r a m e r r o r s . I n t 0005400 e r l i s p s u p p l i e s 0005420 a n e x t e n s i v e s e t 0005440 o f f u n c t i o n s f o 0005460 r t e s t i n g e q u a l i 0005500 t y : \r ( E Q X Y ) \t [ 0005520 F u n c t i o n ] \r R e t u r n 0005540 s T i f X a n d Y a 0005560 r e i d e n t i c a l p o i 0005600 n t e r s ; N I L o t h e r 0005620 w i s e . E Q s h o u l d 0005640 n o t b e u s e d t o 0005660 c o m p a r e t w o n u m b 0005700 e r s , u n l e s s t h e y 0005720 a r e s m a l l i n t e g 0005740 e r s ; u s e E Q P i n s 0005760 t e a d . \r \r ( N E Q X Y ) 0006000 \t [ F u n c t i o n ] \r ( N 0006020 O T ( E Q X Y ) ) \r \r ( N 0006040 U L L X ) \t [ F u n c t i 0006060 o n ] \r ( N O T X ) \t [ F 0006100 u n c t i o n ] \r ( E Q X N 0006120 I L ) \r \r ( E Q P X Y ) 0006140 \t [ F u n c t i o n ] \r R e t u 0006160 r n s T i f X a n d Y 0006200 a r e E Q , o r i f X 0006220 a n d Y a r e n u m b e 0006240 r s a n d a r e e q u a l 0006260 i n v a l u e ; N I L o 0006300 t h e r w i s e . F o r m 0006320 o r e d i s c u s s i o n o 0006340 f E Q P a n d o t h e r 0006360 n u m b e r f u n c t i o n s 0006400 , s e e p a g e X . X X . 0006420 \r N o t e : E Q P a l s o 0006440 c a n b e u s e d t o 0006460 c o m p a r e s t a c k p o 0006500 i n t e r s ( p a g e X . X 0006520 X ) a n d c o m p i l e d 0006540 c o d e ( p a g e X . X X ) 0006560 . \r \r ( E Q U A L X Y ) 0006600 \t [ F u n c t i o n ] \r E Q U A 0006620 L r e t u r n s T i f X 0006640 a n d Y a r e ( 1 ) E 0006660 Q ; o r ( 2 ) E Q P , i 0006700 . e . , n u m b e r s w i t 0006720 h e q u a l v a l u e ; o 0006740 r ( 3 ) S T R E Q U A L , 0006760 i . e . , s t r i n g s c o 0007000 n t a i n i n g t h e s a m 0007020 e s e q u e n c e o f c h 0007040 a r a c t e r s ; o r ( 4 ) 0007060 l i s t s a n d C A R o 0007100 f X i s E Q U A L t o 0007120 C A R o f Y , a n d C D 0007140 R o f X i s E Q U A L 0007160 t o C D R o f Y . E Q 0007200 U A L r e t u r n s N I L 0007220 o t h e r w i s e . N o t e 0007240 t h a t E Q U A L c a n 0007260 b e s i g n i f i c a n t l y 0007300 s l o w e r t h a n E Q . 0007320 \r A l o o s e d e s c r i p 0007340 t i o n o f E Q U A L m i 0007360 g h t b e t o s a y t h 0007400 a t X a n d Y a r e E 0007420 Q U A L i f t h e y p r i 0007440 n t o u t t h e s a m e 0007460 w a y . \r \r ( E Q U A L A L L 0007500 X Y ) \t [ F u n c t i o n 0007520 ] \r L i k e E Q U A L , e x 0007540 c e p t i t d e s c e n d s 0007560 i n t o t h e c o n t e n 0007600 t s o f a r r a y s , h a 0007620 s h a r r a y s , u s e r 0007640 d a t a t y p e s , e t c . 0007660 T w o n o n - E Q a r r 0007700 a y s m a y b e E Q U A L 0007720 A L L i f t h e i r r e s 0007740 p e c t i v e c o m p o n a n 0007760 t s a r e E Q U A L A L L . 0010000 \r \r \r 9 . 3 \t L o g i c a l 0010020 P r e d i c a t e s \r \r ( A N 0010040 D X 1 X 2 . . . X N ) 0010060 \t [ N L a m b d a N o S p r 0010100 e a d F u n c t i o n ] \r T a 0010120 k e s a n i n d e f i n i t 0010140 e n u m b e r o f a r g u 0010160 m e n t s ( i n c l u d i n g 0010200 z e r o ) , t h a t a r e 0010220 e v a l u a t e d i n o r 0010240 d e r . I f a n y a r g 0010260 u m e n t e v a l u a t e s 0010300 t o N I L , A N D i m m e 0010320 d i a t e l y r e t u r n s 0010340 N I L ( w i t h o u t e v a 0010360 l u a t i n g t h e r e m a 0010400 i n i n g a r g u m e n t s ) 0010420 . I f a l l o f t h e 0010440 a r g u m e n t s e v a l u 0010460 a t e t o n o n - N I L , 0010500 t h e v a l u e o f t h e 0010520 l a s t a r g u m e n t i 0010540 s r e t u r n e d . ( A N 0010560 D ) = > T . \r \r ( O R 0010600 X 1 X 2 . . . X N ) \t 0010620 [ N L a m b d a N o S p r e a 0010640 d F u n c t i o n ] \r T a k e 0010660 s a n i n d e f i n i t e 0010700 n u m b e r o f a r g u m e 0010720 n t s ( i n c l u d i n g z 0010740 e r o ) , t h a t a r e e 0010760 v a l u a t e d i n o r d e 0011000 r . I f a n y a r g u m 0011020 e n t i s n o n - N I L , 0011040 t h e v a l u e o f t h a 0011060 t a r g u m e n t i s r e 0011100 t u r n e d b y O R ( w i 0011120 t h o u t e v a l u a t i n g 0011140 t h e r e m a i n i n g a 0011160 r g u m e n t s ) . I f a 0011200 l l o f t h e a r g u m e 0011220 n t s e v a l u a t e t o 0011240 N I L , N I L i s r e t u 0011260 r n e d . ( O R ) = > 0011300 N I L . \r \r A N D a n d O 0011320 R c a n b e u s e d a s 0011340 s i m p l e l o g i c a l 0011360 c o n n e c t i v e s , b u t 0011400 n o t e t h a t t h e y 0011420 m a y n o t e v a l u a t e 0011440 a l l o f t h e i r a r 0011460 g u m e n t s . T h i s m 0011500 a k e s a d i f f e r e n c 0011520 e i f t h e e v a l u a t 0011540 i o n o f s o m e o f t 0011560 h e a r g u m e n t s c a u 0011600 s e s s i d e - e f f e c t s 0011620 . A n o t h e r r e s u l 0011640 t o f t h i s i m p l e m 0011660 e n t a t i o n o f A N D 0011700 a n d O R i s t h a t t 0011720 h e y c a n b e u s e d 0011740 a s s i m p l e c o n d i t 0011760 i o n a l s t a t e m e n t s 0012000 . F o r e x a m p l e : 0012020 ( A N D ( L I S T P X ) ( 0012040 C D R X ) ) r e t u r n s 0012060 t h e v a l u e o f ( C D 0012100 R X ) i f X i s a l 0012120 i s t c e l l , o t h e r w 0012140 i s e i t r e t u r n s N 0012160 I L w i t h o u t e v a l u 0012200 a t i n g ( C D R X ) . 0012220 I n g e n e r a l , t h i s 0012240 u s e o f A N D a n d 0012260 O R s h o u l d b e a v o 0012300 i d e d i n f a v o r o f 0012320 m o r e e x p l i c i t c 0012340 o n d i t i o n a l s t a t e 0012360 m e n t s i n o r d e r t 0012400 o m a k e p r o g r a m s 0012420 m o r e r e a d a b l e . \r \r 0012440 9 . 4 \t T h e C O N D C 0012460 o n d i t i o n a l F u n c t 0012500 i o n \r \r ( C O N D C L A U S 0012520 E 1 C L A U S E 2 . . . C 0012540 L A U S E K ) \t [ N L a m b 0012560 d a N o S p r e a d F u n c 0012600 t i o n ] \r T h e c o n d i t 0012620 i o n a l f u n c t i o n o 0012640 f I n t e r l i s p , C O N 0012660 D , t a k e s a n i n d e 0012700 f i n i t e n u m b e r o f 0012720 a r g u m e n t s , c a l l 0012740 e d c l a u s e s . E a c 0012760 h C L A U S E i i s a l 0013000 i s t o f t h e f o r m 0013020 ( P i C i 1 . . . C i N ) 0013040 , w h e r e P i i s t h 0013060 e p r e d i c a t e , a n d 0013100 C i 1 . . . C i N a r e 0013120 t h e c o n s e q u e n t s 0013140 . T h e o p e r a t i o n 0013160 o f C O N D c a n b e 0013200 p a r a p h r a s e d a s : \r 0013220 I F P 1 T H E N C 1 1 . 0013240 . . C 1 N E L S E I F P 2 0013260 T H E N C 2 1 . . . C 2 0013300 N E L S E I F P 3 . . . \r 0013320 T h e c l a u s e s a r e 0013340 c o n s i d e r e d i n s e 0013360 q u e n c e a s f o l l o w 0013400 s : t h e p r e d i c a t e 0013420 P 1 o f t h e c l a u s 0013440 e C L A U S E i i s e v a 0013460 l u a t e d . I f t h e 0013500 v a l u e o f P 1 i s " 0013520 t r u e " ( n o n - N I L ) , 0013540 t h e c o n s e q u e n t s 0013560 C i 1 . . . C i N a r e 0013600 e v a l u a t e d i n o r 0013620 d e r , a n d t h e v a l 0013640 u e o f t h e C O N D i 0013660 s t h e v a l u e o f C 0013700 i N , t h e l a s t e x p 0013720 r e s s i o n i n t h e c 0013740 l a u s e . I f P 1 i s 0013760 " f a l s e " ( E Q t o 0014000 N I L ) , t h e n t h e r 0014020 e m a i n d e r o f C L A U 0014040 S E i i s i g n o r e d , 0014060 a n d t h e n e x t c l a 0014100 u s e , C L A U S E i + 1 , 0014120 i s c o n s i d e r e d . 0014140 I f n o P i i s t r u e 0014160 f o r a n y c l a u s e , 0014200 t h e v a l u e o f t h 0014220 e C O N D i s N I L . \r N 0014240 o t e : I f a c l a u s 0014260 e h a s n o c o n s e q u 0014300 e n t s , a n d h a s t h 0014320 e f o r m ( P i ) , t h e 0014340 n i f P i e v a l u a t e 0014360 s t o n o n - N I L , i t 0014400 i s r e t u r n e d a s 0014420 t h e v a l u e o f t h e 0014440 C O N D . I t i s o n 0014460 l y e v a l u a t e d o n c 0014500 e . \r E x a m p l e : \r _ ( D 0014520 E F I N E Q ( D O U B L E ( 0014540 X ) \r 0014560 ( C O N D ( ( N U M B E R 0014600 P X ) ( P L U S X X ) ) 0014620 \r 0014640 ( ( S T R I N G P 0014660 X ) ( C O N C A T X X ) ) 0014700 \r 0014720 ( ( A T O M X ) 0014740 ( P A C K * X X ) ) \r 0014760 0015000 ( T ( P R I N T " u n k 0015020 n o w n " ) X ) \r 0015040 ( 0015060 ( H O R R I B L E - E R R O R ) 0015100 ) ] \r ( D O U B L E ) \r _ ( D 0015120 O U B L E 5 ) \r 1 0 \r _ ( D 0015140 O U B L E " F O O " ) \r " F O 0015160 O F O O " \r _ ( D O U B L E 0015200 ' B A R ) \r B A R B A R \r _ ( 0015220 D O U B L E ' ( A B C ) ) 0015240 \r " u n k n o w n " \r ( A B 0015260 C ) \r A f e w p o i n t s 0015300 a b o u t t h i s e x a m p 0015320 l e : N o t i c e t h a t 0015340 5 i s b o t h a n u m 0015360 b e r a n d a n a t o m , 0015400 b u t i t i s " c a u g 0015420 h t " b y t h e N U M B E 0015440 R P c l a u s e b e f o r e 0015460 t h e A T O M c l a u s e 0015500 . A l s o n o t i c e t 0015520 h e p r e d i c a t e T , 0015540 w h i c h i s a l w a y s 0015560 t r u e . T h i s i s t 0015600 h e n o r m a l w a y t o 0015620 i n d i c a t e a C O N D 0015640 c l a u s e w h i c h w i 0015660 l l a l w a y s b e e x e 0015700 c u t e d ( i f n o n e o 0015720 f t h e p r e c e e d i n g 0015740 c l a u s e s a r e t r u 0015760 e ) . ( H O R R I B L E - E 0016000 R R O R ) w i l l n e v e r 0016020 b e e x e c u t e d . \r \r \r 0016040 9 . 5 \t T h e I F S t a 0016060 t e m e n t \r \r T h e I F s 0016100 t a t e m e n t p r o v i d e 0016120 s a w a y o f w a y o 0016140 f s p e c i f y i n g c o n 0016160 d i t i o n a l e x p r e s s 0016200 i o n s t h a t i s m u c 0016220 h e a s i e r a n d r e a 0016240 d a b l e t h a n u s i n g 0016260 t h e C O N D f u n c t i 0016300 o n d i r e c t l y ( p a g 0016320 e X . X X ) . C L I S P 0016340 t r a n s l a t e s e x p r e 0016360 s s i o n s e m p l o y i n g 0016400 I F , T H E N , E L S E I 0016420 F , o r E L S E ( o r t 0016440 h e i r l o w e r c a s e v 0016460 e r s i o n s ) i n t o e q 0016500 u i v a l e n t C O N D e x 0016520 p r e s s i o n s . I n g 0016540 e n e r a l , s t a t e m e n 0016560 t s o f t h e f o r m : \r 0016600 ( i f A A A t h e n B B B 0016620 e l s e i f C C C t h e n 0016640 D D D e l s e E E E ) \r a 0016660 r e t r a n s l a t e d t o 0016700 : \r ( C O N D ( A A A B B B 0016720 ) \r ( C C C D D D 0016740 ) \r ( T E E E ) 0016760 ) \r T h e s e g m e n t b e 0017000 t w e e n I F o r E L S E 0017020 I F a n d t h e n e x t 0017040 T H E N c o r r e s p o n d s 0017060 t o t h e p r e d i c a t 0017100 e o f a C O N D c l a u 0017120 s e , a n d t h e s e g m 0017140 e n t b e t w e e n T H E N 0017160 a n d t h e n e x t E L 0017200 S E o r E L S E I F a s 0017220 t h e c o n s e q u e n t ( s 0017240 ) . E L S E i s t h e 0017260 s a m e a s E L S E I F T 0017300 T H E N . T h e s e w o 0017320 r d s a r e s p e l l i n g 0017340 c o r r e c t e d u s i n g 0017360 t h e s p e l l i n g l i 0017400 s t C L I S P I F W O R D S P 0017420 L S T . L o w e r c a s e 0017440 v e r s i o n s ( i f , t 0017460 h e n , e l s e i f , e l s 0017500 e ) m a y a l s o b e u 0017520 s e d . \r I f t h e r e i s 0017540 n o t h i n g f o l l o w i 0017560 n g a T H E N , o r T H 0017600 E N i s o m i t t e d e n 0017620 t i r e l y , t h e n t h e 0017640 r e s u l t i n g C O N D 0017660 c l a u s e h a s a p r e 0017700 d i c a t e b u t n o c o 0017720 n s e q u e n t . F o r e 0017740 x a m p l e , ( i f X t h 0017760 e n e l s e i f . . . ) a 0020000 n d ( i f X e l s e i f 0020020 . . . ) b o t h t r a n s l 0020040 a t e t o ( C O N D ( X ) 0020060 . . . ) , w h i c h m e a 0020100 n s t h a t i f X i s 0020120 n o t N I L , i t i s r 0020140 e t u r n e d a s t h e v 0020160 a l u e o f t h e C O N D 0020200 . \r N o t e t h a t o n l y 0020220 o n e e x p r e s s i o n 0020240 i s a l l o w e d a s t h 0020260 e p r e d i c a t e , b u t 0020300 m u l t i p l e e x p r e s 0020320 s i o n s a r e a l l o w e 0020340 d a s t h e c o n s e q u 0020360 e n t s a f t e r T H E N 0020400 o r E L S E . M u l t i p 0020420 l e c o n s e q u e n t e x 0020440 p r e s s i o n s a r e i m 0020460 p l i c i t e l y w r a p p e 0020500 d i n a P R O G N , a n 0020520 d t h e v a l u e o f t 0020540 h e l a s t o n e i s r 0020560 e t u r n e d a s t h e v 0020600 a l u e o f t h e c o n s 0020620 e q u e n t . F o r e x a 0020640 m p l e : \r ( i f X t h e n 0020660 ( P R I N T " F O O " ) ( 0020700 P R I N T " B A R " ) e l s 0020720 e i f Y t h e n ( P R I N 0020740 T " B A Z " ) ) \r C L I S P 0020760 c o n s i d e r s I F , T H 0021000 E N , E L S E , a n d E L 0021020 S E I F t o h a v e l o w 0021040 e r p r e c e d e n c e t h 0021060 a n a l l i n f i x a n d 0021100 p r e f i x o p e r a t o r 0021120 s , a s w e l l a s I n 0021140 t e r l i s p f o r m s , s 0021160 o i t i s s o m e t i m e 0021200 s p o s s i b l e t o o m 0021220 i t p a r e n t h e s e s a 0021240 r o u n d p r e d i c a t e 0021260 o r c o n s e q u e n t f o 0021300 r m s . F o r e x a m p l 0021320 e , ( i f F O O X Y t 0021340 h e n . . . ) i s e q u i 0021360 v a l e n t t o ( i f ( F 0021400 O O X Y ) t h e n . . . 0021420 ) , a n d ( i f X t h e 0021440 n F O O X Y e l s e . 0021460 . . ) a s e q u i v a l e n 0021500 t t o ( i f X t h e n 0021520 ( F O O X Y ) e l s e . 0021540 . . ) . E s s e n t i a l l 0021560 y , C L I S P d e t e r m i 0021600 n e s w h e t h e r t h e 0021620 s e g m e n t b e t w e e n 0021640 T H E N a n d t h e n e x 0021660 t E L S E o r E L S E I F 0021700 c o r r e s p o n d s t o 0021720 o n e f o r m o r s e v e 0021740 r a l a n d a c t s a c c 0021760 o r d i n g l y , o c c a s i 0022000 o n a l l y i n t e r a c t i 0022020 n g w i t h t h e u s e r 0022040 t o r e s o l v e a m b i 0022060 g u o u s c a s e s . N o 0022100 t e t h a t i f F O O i 0022120 s b o u n d a s a v a r 0022140 i a b l e , ( i f F O O t 0022160 h e n . . . ) i s t r a n 0022200 s l a t e d a s ( C O N D 0022220 ( F O O . . . ) ) , s o i 0022240 f a c a l l t o t h e 0022260 f u n c t i o n F O O i s 0022300 d e s i r e d , u s e ( i f 0022320 ( F O O ) t h e n . . . ) 0022340 . \r \r 9 . 6 \t S e l e c t i 0022360 o n F u n c t i o n s \r \r ( S 0022400 E L E C T Q X C L A U S E 1 0022420 C L A U S E 2 . . . C L A 0022440 U S E K D E F A U L T ) \t 0022460 [ N L a m b d a N o S p r e a 0022500 d F u n c t i o n ] \r S e l e 0022520 c t s a f o r m o r s e 0022540 q u e n c e o f f o r m s 0022560 b a s e d o n t h e v a l 0022600 u e o f X . E a c h c 0022620 l a u s e C L A U S E i i s 0022640 a l i s t o f t h e f 0022660 o r m ( S i C i 1 . . . 0022700 C i N ) w h e r e S i i s 0022720 t h e s e l e c t i o n k 0022740 e y . T h e o p e r a t i 0022760 o n o f S E L E C T Q c a 0023000 n b e p a r a p h r a s e d 0023020 a s : \r I F X = S 1 T 0023040 H E N C 1 1 . . . C 1 N 0023060 E L S E I F X = S 2 T H 0023100 E N . . . E L S E D E F A 0023120 U L T . \r I f S i i s a n 0023140 a t o m , t h e v a l u e 0023160 o f X i s t e s t e d 0023200 t o s e e i f i t i s 0023220 E Q t o S i ( w h i c h 0023240 i s n o t e v a l u a t e d 0023260 ) . I f s o , t h e e 0023300 x p r e s s i o n s C i 1 . 0023320 . . C i N a r e e v a l u 0023340 a t e d i n s e q u e n c e 0023360 , a n d t h e v a l u e 0023400 o f t h e S E L E C T Q i 0023420 s t h e v a l u e o f t 0023440 h e l a s t e x p r e s s i 0023460 o n e v a l u a t e d , i . 0023500 e . , C i N . \r I f S i i 0023520 s a l i s t , t h e v a 0023540 l u e o f X i s c o m p 0023560 a r e d w i t h e a c h e 0023600 l e m e n t ( n o t e v a l 0023620 u a t e d ) o f S i , a n 0023640 d i f X i s E Q t o 0023660 a n y o n e o f t h e m , 0023700 t h e n C i 1 . . . C i 0023720 N a r e e v a l u a t e d 0023740 a s a b o v e . \r I f C L A 0023760 U S E i i s n o t s e l e 0024000 c t e d i n o n e o f t 0024020 h e t w o w a y s d e s c 0024040 r i b e d , C L A U S E i + 1 0024060 i s t e s t e d , e t c . 0024100 , u n t i l a l l t h e 0024120 c l a u s e s h a v e b e e 0024140 n t e s t e d . I f n o 0024160 n e i s s e l e c t e d , 0024200 D E F A U L T i s e v a l u 0024220 a t e d , a n d i t s v a 0024240 l u e i s r e t u r n e d 0024260 a s t h e v a l u e o f 0024300 t h e S E L E C T Q . D E 0024320 F A U L T m u s t b e p r 0024340 e s e n t . \r A n e x a m p l 0024360 e o f t h e f o r m o f 0024400 a S E L E C T Q i s : \r [ 0024420 S E L E C T Q M O N T H \r 0024440 ( F E B R U A R Y ( i f ( 0024460 L E A P Y E A R P ) t h e n 0024500 2 9 e l s e 2 8 ) ) \r 0024520 ( ( A P R I L J U N E S E P 0024540 T E M B E R N O V E M B E R ) 0024560 3 0 ) \r 3 1 ] \r I f t 0024600 h e v a l u e o f M O N T 0024620 H i s t h e l i t a t o m 0024640 F E B R U A R Y , t h e S 0024660 E L E C T Q r e t u r n s 2 0024700 8 o r 2 9 ( d e p e n d i 0024720 n g o n ( L E A P Y E A R P 0024740 ) ) ; o t h e r w i s e i 0024760 f M O N T H i s A P R I L 0025000 , J U N E , S E P T E M B E 0025020 R , o r N O V E M B E R , 0025040 t h e S E L E C T Q r e t u 0025060 r n s 3 0 ; o t h e r w i 0025100 s e i t r e t u r n s 3 1 0025120 . \r S E L E C T Q c o m p i l 0025140 e s o p e n , a n d i s 0025160 t h e r e f o r e v e r y f 0025200 a s t ; h o w e v e r , i t 0025220 w i l l n o t w o r k i 0025240 f t h e v a l u e o f X 0025260 i s a l i s t , a l a 0025300 r g e i n t e g e r , o r 0025320 f l o a t i n g p o i n t n 0025340 u m b e r , s i n c e S E L 0025360 E C T Q u s e s E Q f o r 0025400 a l l c o m p a r i s o n s 0025420 . \r \r N o t e : S E L C H A 0025440 R Q ( p a g e X . X X ) i 0025460 s a v e r s i o n o f S 0025500 E L E C T Q t h a t r e c o 0025520 g n i z e s C H A R C O D E 0025540 l i t a t o m s . \r ( S E L E C 0025560 T C X C L A U S E 1 C L A 0025600 U S E 2 . . . C L A U S E K 0025620 D E F A U L T ) \t [ N L a 0025640 m b d a N o S p r e a d F u 0025660 n c t i o n ] \r " S E L E C T Q 0025700 - o n - C o n s t a n t . " 0025720 S i m i l a r t o S E L E C 0025740 T Q e x c e p t t h a t t 0025760 h e s e l e c t i o n k e y 0026000 s a r e e v a l u a t e d , 0026020 a n d t h e r e s u l t 0026040 u s e d a s a S E L E C T 0026060 Q - s t y l e s e l e c t i o 0026100 n k e y . \r S E L E C T C i 0026120 s c o m p i l e d a s a 0026140 S E L E C T Q , w i t h t h 0026160 e s e l e c t i o n k e y s 0026200 e v a l u a t e d a t c o 0026220 m p i l e - t i m e . T h e 0026240 r e f o r e , t h e s e l e 0026260 c t i o n k e y s a c t l 0026300 i k e c o m p i l e - t i m e 0026320 c o n s t a n t s ( s e e 0026340 p a g e X . X X ) . F o r 0026360 e x a m p l e : \r [ S E L E C 0026400 T C N U M \r ( ( f o r 0026420 X f r o m 1 t o 9 c 0026440 o l l e c t ( T I M E S X 0026460 X ) ) " S Q U A R E " ) \r 0026500 " H I P " ] \r c o m p i l e 0026520 s a s : \r [ S E L E C T Q N 0026540 U M \r ( ( 1 4 9 1 0026560 6 2 5 3 6 4 9 6 4 8 1 0026600 ) " S Q U A R E " ) \r 0026620 " H I P " ] \r \r \r 9 . 7 \t P 0026640 R O G a n d A s s o c i a t 0026660 e d C o n t r o l F u n c t 0026700 i o n s \r \r ( P R O G 1 X 1 0026720 X 2 . . . X N ) \t [ N L 0026740 a m b d a N o S p r e a d F 0026760 u n c t i o n ] \r E v a l u a t 0027000 e s i t s a r g u m e n t s 0027020 i n o r d e r , a n d r 0027040 e t u r n s t h e v a l u e 0027060 o f i t s f i r s t a r 0027100 g u m e n t X 1 . F o r 0027120 e x a m p l e , ( P R O G 1 0027140 X ( S E T Q X Y ) ) s e 0027160 t s X t o Y , a n d r 0027200 e t u r n s X ' s o r i g i 0027220 n a l v a l u e . \r \r ( P R O 0027240 G 2 X 1 X 2 . . . X N ) 0027260 \t [ N o S p r e a d F u n 0027300 c t i o n ] \r S i m i l a r t 0027320 o P R O G 1 . E v a l u a 0027340 t e s i t s a r g u m e n t 0027360 s i n o r d e r , a n d 0027400 r e t u r n s t h e v a l u 0027420 e o f i t s s e c o n d 0027440 a r g u m e n t X 2 . \r \r ( P 0027460 R O G N X 1 X 2 . . . X 0027500 N ) \t [ N L a m b d a N o 0027520 S p r e a d F u n c t i o n ] 0027540 \r P R O G N e v a l u a t e s 0027560 e a c h o f i t s a r g 0027600 u m e n t s i n o r d e r , 0027620 a n d r e t u r n s t h e 0027640 v a l u e o f i t s l a 0027660 s t a r g u m e n t . P R 0027700 O G N i s u s e d t o s 0027720 p e c i f y m o r e t h a n 0027740 o n e c o m p u t a t i o n 0027760 w h e r e t h e s y n t a 0030000 x a l l o w s o n l y o n 0030020 e , e . g . , ( S E L E C T 0030040 Q . . . ( P R O G N . . . 0030060 ) ) a l l o w s e v a l u a 0030100 t i o n o f s e v e r a l 0030120 e x p r e s s i o n s a s t 0030140 h e d e f a u l t c o n d i 0030160 t i o n f o r a S E L E C 0030200 T Q . \r \r ( P R O G V A R L S 0030220 T E 1 E 2 . . . E N ) 0030240 \t [ N L a m b d a N o S p r 0030260 e a d F u n c t i o n ] \r T h 0030300 i s f u n c t i o n a l l o 0030320 w s t h e u s e r t o w 0030340 r i t e a n A L G O L - l i 0030360 k e p r o g r a m c o n t a 0030400 i n i n g I n t e r l i s p 0030420 e x p r e s s i o n s ( f o r 0030440 m s ) t o b e e x e c u t 0030460 e d . T h e f i r s t a 0030500 r g u m e n t , V A R L S T , 0030520 i s a l i s t o f l o 0030540 c a l v a r i a b l e s ( m 0030560 u s t b e N I L i f n o 0030600 v a r i a b l e s a r e u 0030620 s e d ) . E a c h a t o m 0030640 i n V A R L S T i s t r 0030660 e a t e d a s t h e n a m 0030700 e o f a l o c a l v a r 0030720 i a b l e a n d b o u n d 0030740 t o N I L . V A R L S T 0030760 c a n a l s o c o n t a i n 0031000 l i s t s o f t h e f 0031020 o r m ( L I T A T O M F O R 0031040 M ) . I n t h i s c a s 0031060 e , L I T A T O M i s t h 0031100 e n a m e o f t h e v a 0031120 r i a b l e a n d i s b o 0031140 u n d t o t h e v a l u e 0031160 o f F O R M . T h e e 0031200 v a l u a t i o n t a k e s 0031220 p l a c e b e f o r e a n y 0031240 o f t h e b i n d i n g s 0031260 a r e p e r f o r m e d , 0031300 e . g . , ( P R O G ( ( X 0031320 Y ) ( Y X ) ) . . . ) w 0031340 i l l b i n d l o c a l v 0031360 a r i a b l e X t o t h e 0031400 v a l u e o f Y ( e v a 0031420 l u a t e d o u t s i d e t 0031440 h e P R O G ) a n d l o c 0031460 a l v a r i a b l e Y t o 0031500 t h e v a l u e o f X 0031520 ( o u t s i d e t h e P R O 0031540 G ) . A n a t t e m p t 0031560 t o u s e a n y t h i n g 0031600 o t h e r t h a n a l i t 0031620 a t o m a s a P R O G v 0031640 a r i a b l e w i l l c a u 0031660 s e a n e r r o r , A R G 0031700 N O T L I T A T O M . A 0031720 n a t t e m p t t o u s e 0031740 N I L o r T a s a P 0031760 R O G v a r i a b l e w i l 0032000 l c a u s e a n e r r o r 0032020 , A T T E M P T T O B I N 0032040 D N I L O R T . \r T h e 0032060 r e s t o f t h e P R O G 0032100 i s a s e q u e n c e o 0032120 f n o n - a t o m i c s t a 0032140 t e m e n t s ( f o r m s ) 0032160 a n d l i t a t o m s ( l a 0032200 b e l s ) . T h e f o r m 0032220 s a r e e v a l u a t e d 0032240 s e q u e n t i a l l y ; t h 0032260 e l a b e l s s e r v e o 0032300 n l y a s m a r k e r s . 0032320 T h e t w o s p e c i a l 0032340 f u n c t i o n s G O a n 0032360 d R E T U R N a l t e r t 0032400 h i s f l o w o f c o n t 0032420 r o l a s d e s c r i b e d 0032440 b e l o w . T h e v a l 0032460 u e o f t h e P R O G i 0032500 s u s u a l l y s p e c i f 0032520 i e d b y t h e f u n c t 0032540 i o n R E T U R N . I f 0032560 n o R E T U R N i s e x e 0032600 c u t e d b e f o r e t h e 0032620 P R O G " f a l l s o f f 0032640 t h e e n d , " t h e v 0032660 a l u e o f t h e P R O G 0032700 i s N I L . \r \r ( G O U ) 0032720 \t [ N L a m b d a N o S p 0032740 r e a d F u n c t i o n ] \r G 0032760 O i s u s e d t o c a u 0033000 s e a t r a n s f e r i n 0033020 a P R O G . ( G O L ) 0033040 w i l l c a u s e t h e 0033060 P R O G t o e v a l u a t e 0033100 f o r m s s t a r t i n g 0033120 a t t h e l a b e l L ( 0033140 G O d o e s n o t e v a l 0033160 u a t e i t s a r g u m e n 0033200 t ) . A G O c a n b e 0033220 u s e d a t a n y l e v 0033240 e l i n a P R O G . I 0033260 f t h e l a b e l i s n 0033300 o t f o u n d , G O w i l 0033320 l s e a r c h h i g h e r 0033340 p r o g s w i t h i n t h e 0033360 s a m e f u n c t i o n , 0033400 e . g . , ( P R O G . . . 0033420 A . . . ( P R O G . . . 0033440 ( G O A ) ) ) . I f t h e 0033460 l a b e l i s n o t f o 0033500 u n d i n t h e f u n c t 0033520 i o n i n w h i c h t h e 0033540 P R O G a p p e a r s , a 0033560 n e r r o r i s g e n e r 0033600 a t e d , U N D E F I N E D 0033620 O R I L L E G A L G O . \r \r 0033640 ( R E T U R N X ) \t [ F u 0033660 n c t i o n ] \r A R E T U R N 0033700 i s t h e n o r m a l e 0033720 x i t f o r a P R O G . 0033740 I t s a r g u m e n t i s 0033760 e v a l u a t e d a n d i s 0034000 i m m e d i a t e l y r e t 0034020 u r n e d t h e v a l u e 0034040 o f t h e P R O G i n w 0034060 h i c h i t a p p e a r s . 0034100 \r \r N o t e : I f a G O 0034120 o r R E T U R N i s e x 0034140 e c u t e d i n a n i n t 0034160 e r p r e t e d f u n c t i o 0034200 n w h i c h i s n o t a 0034220 P R O G , t h e G O o r 0034240 R E T U R N w i l l b e 0034260 e x e c u t e d i n t h e 0034300 l a s t i n t e r p r e t e d 0034320 P R O G e n t e r e d i f 0034340 a n y , o t h e r w i s e 0034360 c a u s e a n e r r o r . \r 0034400 G O o r R E T U R N i n s 0034420 i d e o f a c o m p i l e 0034440 d f u n c t i o n t h a t 0034460 i s n o t a P R O G i s 0034500 n o t a l l o w e d , a n 0034520 d w i l l c a u s e a n 0034540 e r r o r a t c o m p i l e 0034560 t i m e . \r A s a c o r o 0034600 l l a r y , G O o r R E T 0034620 U R N i n a f u n c t i o 0034640 n a l a r g u m e n t , e . 0034660 g . , t o S O R T , w i l 0034700 l n o t w o r k c o m p i 0034720 l e d . A l s o , s i n c 0034740 e N L S E T Q ' s a n d E 0034760 R S E T Q ' s c o m p i l e 0035000 a s s e p a r a t e f u n c 0035020 t i o n s , a G O o r R 0035040 E T U R N c a n n o t b e 0035060 u s e d i n s i d e o f a 0035100 c o m p i l e d N L S E T Q 0035120 o r E R S E T Q i f t h 0035140 e c o r r e s p o n d i n g 0035160 P R O G i s o u t s i d e , 0035200 i . e . , a b o v e , t h 0035220 e N L S E T Q o r E R S E 0035240 T Q . \r ( L E T V A R L S T 0035260 E 1 E 2 . . . E N ) \t 0035300 [ M a c r o ] \r L E T i s e 0035320 s s e n t i a l l y a P R O 0035340 G t h a t c a n ' t c o n 0035360 t a i n G O ' s o r R E T 0035400 U R N ' s , a n d w h o s e 0035420 l a s t f o r m i s t h 0035440 e r e t u r n e d v a l u e 0035460 . \r \r ( L E T * V A R L S T 0035500 E 1 E 2 . . . E N ) \t 0035520 [ M a c r o ] \r ( P R O G * V 0035540 A R L S T E 1 E 2 . . . 0035560 E N ) \t [ M a c r o ] \r L E 0035600 T * a n d P R O G * d i f 0035620 f e r f r o m L E T a n d 0035640 P R O G o n l y i n t h 0035660 a t t h e b i n d i n g o 0035700 f t h e b o u n d v a r i 0035720 a b l e s i s d o n e " s 0035740 e q u e n t i a l l y . " T 0035760 h u s \r ( L E T * ( ( A ( L 0036000 I S T 5 ) ) \r ( B 0036020 ( L I S T A A ) ) ) \r 0036040 ( E Q A ( C A D R B ) ) 0036060 ) \r w o u l d e v a l u a t e 0036100 t o T ; w h e r e a s t 0036120 h e s a m e f o r m w i t 0036140 h L E T m i g h t e v e n 0036160 f i n d A a n u n b o u 0036200 n d v a r i a b l e w h e n 0036220 e v a l u a t i n g ( L I S 0036240 T A A ) . \r \r \r 9 . 8 \t 0036260 T h e I t e r a t i v e S t 0036300 a t e m e n t \r \r T h e i t e 0036320 r a t i v e s t a t e m e n t 0036340 ( i . s . ) i n i t s v 0036360 a r i o u s f o r m s p e r 0036400 m i t s t h e u s e r t o 0036420 s p e c i f y c o m p l i c 0036440 a t e d i t e r a t i v e s 0036460 t a t e m e n t s i n a s 0036500 t r a i g h t f o r w a r d a 0036520 n d v i s i b l e m a n n e 0036540 r . R a t h e r t h a n 0036560 t h e u s e r h a v i n g 0036600 t o p e r f o r m t h e m 0036620 e n t a l t r a n s f o r m a 0036640 t i o n s t o a n e q u i 0036660 v a l e n t I n t e r l i s p 0036700 f o r m u s i n g P R O G 0036720 , M A P C , M A P C A R , 0036740 e t c . , t h e s y s t e m 0036760 d o e s i t f o r h i m 0037000 . T h e g o a l w a s 0037020 t o p r o v i d e a r o b 0037040 u s t a n d t o l e r a n t 0037060 f a c i l i t y w h i c h 0037100 c o u l d " m a k e s e n s 0037120 e " o u t o f a w i d e 0037140 c l a s s o f i t e r a t 0037160 i v e s t a t e m e n t s . 0037200 A c c o r d i n g l y , t h 0037220 e u s e r s h o u l d n o 0037240 t f e e l o b l i g e d t 0037260 o r e a d a n d u n d e r 0037300 s t a n d i n d e t a i l 0037320 t h e d e s c r i p t i o n 0037340 o f e a c h o p e r a t o r 0037360 g i v e n b e l o w i n 0037400 o r d e r t o u s e i t e 0037420 r a t i v e s t a t e m e n t 0037440 s . \r A n i t e r a t i v e 0037460 s t a t e m e n t i s a f 0037500 o r m c o n s i s t i n g o 0037520 f a n u m b e r o f s p 0037540 e c i a l w o r d s ( k n o 0037560 w n a s i . s . o p e r a 0037600 t o r s o r i . s . o p r s 0037620 ) , f o l l o w e d b y o 0037640 p e r a n d s . M a n y i 0037660 . s . o p r s ( F O R , D O 0037700 , W H I L E , e t c . ) a 0037720 r e s i m i l a r t o i t 0037740 e r a t i v e s t a t e m e n 0037760 t s i n o t h e r p r o g 0040000 r a m m i n g l a n g u a g e 0040020 s ; o t h e r i . s . o p 0040040 r s ( C O L L E C T , J O I 0040060 N , I N , e t c . ) s p e 0040100 c i f y u s e f u l o p e r 0040120 a t i o n s i n a L i s p 0040140 e n v i r o n m e n t . L 0040160 o w e r c a s e v e r s i o 0040200 n s o f i . s . o p r s ( 0040220 d o , c o l l e c t , e t c 0040240 . ) c a n a l s o b e u 0040260 s e d . H e r e a r e s 0040300 o m e e x a m p l e s o f 0040320 i t e r a t i v e s t a t e m 0040340 e n t s : \r _ ( f o r X f 0040360 r o m 1 t o 5 d o ( P 0040400 R I N T ' F O O ) ) \r F O O \r 0040420 F O O \r F O O \r F O O \r F O O \r 0040440 N I L \r _ ( f o r X f r o 0040460 m 2 t o 1 0 b y 2 c 0040500 o l l e c t ( T I M E S X 0040520 X ) ) \r ( 4 1 6 3 6 6 4 0040540 1 0 0 ) \r _ ( f o r X i n 0040560 ' ( A B 1 C 6 . 5 N 0040600 I L ( 4 5 ) ) c o u n t ( 0040620 N U M B E R P X ) ) \r 2 \r I t 0040640 e r a t i v e s t a t e m e n 0040660 t s a r e i m p l e m e n t 0040700 e d t h r o u g h C L I S P 0040720 , w h i c h t r a n s l a t 0040740 e s t h e f o r m i n t o 0040760 t h e a p p r o p r i a t e 0041000 P R O G , M A P C A R , e 0041020 t c . I t e r a t i v e s 0041040 t a t e m e n t f o r m s a 0041060 r e t r a n s l a t e d u s 0041100 i n g a l l C L I S P d e 0041120 c l a r a t i o n s i n e f 0041140 f e c t ( s t a n d a r d / f 0041160 a s t / u n d o a b l e / e t 0041200 c . ) ; s e e p a g e X . 0041220 X X . M i s s p e l l e d 0041240 i . s . o p r s a r e r e c 0041260 o g n i z e d a n d c o r r 0041300 e c t e d u s i n g t h e 0041320 s p e l l i n g l i s t C L 0041340 I S P F O R W O R D S P L S T . 0041360 T h e o r d e r o f a 0041400 p p e a r a n c e o f o p e 0041420 r a t o r s i s n e v e r 0041440 i m p o r t a n t ; C L I S P 0041460 s c a n s t h e e n t i r 0041500 e s t a t e m e n t b e f o 0041520 r e i t b e g i n s t o 0041540 c o n s t r u c t t h e e q 0041560 u i v a l e n t I n t e r l i 0041600 s p f o r m . N e w i . 0041620 s . o p r s c a n b e d e 0041640 f i n e d a s d e s c r i b 0041660 e d o n p a g e X . X X . 0041700 \r I f t h e u s e r d e f 0041720 i n e s a f u n c t i o n 0041740 b y t h e s a m e n a m e 0041760 a s a n i . s . o p r ( 0042000 W H I L E , T O , e t c . ) 0042020 , t h e i . s . o p r w i 0042040 l l n o l o n g e r h a v 0042060 e t h e C L I S P i n t e 0042100 r p r e t a t i o n w h e n 0042120 i t a p p e a r s a s C A 0042140 R o f a f o r m , a l t 0042160 h o u g h i t w i l l c o 0042200 n t i n u e t o b e t r e 0042220 a t e d a s a n i . s . o 0042240 p r i f i t a p p e a r s 0042260 i n t h e i n t e r i o r 0042300 o f a n i t e r a t i v e 0042320 s t a t e m e n t . T o 0042340 a l e r t t h e u s e r , 0042360 a w a r n i n g m e s s a g 0042400 e i s p r i n t e d , e . 0042420 g . , ( W H I L E D E F I N 0042440 E D , T H E R E F O R E D I 0042460 S A B L E D I N C L I S P ) 0042500 . \r 9 . 8 . 1 \t I . s . t y 0042520 p e s \r \r T h e f o l l o w i 0042540 n g i . s . o p r s a r e 0042560 e x a m p l e s o f a c e 0042600 r t a i n k i n d o f i t 0042620 e r a t i v e s t a t e m e n 0042640 t o p e r a t o r c a l l e 0042660 d a n i . s . t y p e . 0042700 T h e i . s . t y p e s p e 0042720 c i f i e s w h a t i s t 0042740 o b e d o n e a t e a c 0042760 h i t e r a t i o n . I t 0043000 s o p e r a n d i s c a l 0043020 l e d t h e " b o d y " o 0043040 f t h e i t e r a t i v e 0043060 s t a t e m e n t . E a c h 0043100 i t e r a t i v e s t a t e 0043120 m e n t m u s t h a v e o 0043140 n e a n d o n l y o n e 0043160 i . s . t y p e . \r D O F O R 0043200 M \t [ I . S . O p e r a t 0043220 o r ] \r S p e c i f i e s w h 0043240 a t i s t o b e d o n e 0043260 a t e a c h i t e r a t i 0043300 o n . D O w i t h n o 0043320 o t h e r o p e r a t o r s 0043340 p e c i f i e s a n i n f i 0043360 n i t e l o o p . I f s 0043400 o m e e x p l i c i t o r 0043420 i m p l i c i t t e r m i n a 0043440 t i n g c o n d i t i o n i 0043460 s s p e c i f i e d , t h e 0043500 v a l u e o f t h e i . 0043520 s . i s N I L . T r a n 0043540 s l a t e s t o M A P C o 0043560 r M A P w h e n e v e r p 0043600 o s s i b l e . \r \r C O L L E C 0043620 T F O R M \t [ I . S . O 0043640 p e r a t o r ] \r S p e c i f i 0043660 e s t h a t t h e v a l u 0043700 e o f F O R M a t e a c 0043720 h i t e r a t i o n i s t 0043740 o b e c o l l e c t e d i 0043760 n a l i s t , w h i c h 0044000 i s r e t u r n e d a s t 0044020 h e v a l u e o f t h e 0044040 i . s . w h e n i t t e r 0044060 m i n a t e s . T r a n s l 0044100 a t e s t o M A P C A R , 0044120 M A P L I S T o r S U B S E 0044140 T w h e n e v e r p o s s i 0044160 b l e . \r W h e n C O L L E C 0044200 T t r a n s l a t e s t o 0044220 a P R O G ( e . g . , i f 0044240 U N T I L , W H I L E , e 0044260 t c . a p p e a r i n t h 0044300 e i . s . ) , t h e t r a 0044320 n s l a t i o n e m p l o y s 0044340 a n o p e n T C O N C u 0044360 s i n g t w o p o i n t e r 0044400 s s i m i l a r t o t h a 0044420 t u s e d b y t h e c o 0044440 m p i l e r f o r c o m p i 0044460 l i n g M A P C A R . T o 0044500 d i s a b l e t h i s t r 0044520 a n s l a t i o n , p e r f o 0044540 r m ( C L D I S A B L E ' F 0044560 C O L L E C T ) ( s e e p a 0044600 g e X . X X ) . \r \r J O I N 0044620 F O R M \t [ I . S . O p e 0044640 r a t o r ] \r S i m i l a r t 0044660 o C O L L E C T , e x c e p 0044700 t t h a t t h e v a l u e 0044720 s o f F O R M a t e a c 0044740 h i t e r a t i o n a r e 0044760 N C O N C e d . T r a n s l 0045000 a t e s t o M A P C O N C 0045020 o r M A P C O N w h e n e v 0045040 e r p o s s i b l e . / N 0045060 C O N C , / M A P C O N C , 0045100 a n d / M A P C O N a r e 0045120 u s e d w h e n t h e C L 0045140 I S P d e c l a r a t i o n 0045160 U N D O A B L E i s i n e 0045200 f f e c t . \r \r S U M F O R M 0045220 \t [ I . S . O p e r a t o 0045240 r ] \r S p e c i f i e s t h a 0045260 t t h e v a l u e s o f 0045300 F O R M a t e a c h i t e 0045320 r a t i o n b e a d d e d 0045340 t o g e t h e r a n d r e t 0045360 u r n e d a s t h e v a l 0045400 u e o f t h e i . s . , 0045420 e . g . , ( f o r I f r o 0045440 m 1 t o 5 s u m ( T I 0045460 M E S I I ) ) r e t u r n 0045500 s 1 + 4 + 9 + 1 6 + 2 5 = 0045520 5 5 . I P L U S , F P L U 0045540 S , o r P L U S w i l l 0045560 b e u s e d i n t h e t 0045600 r a n s l a t i o n d e p e n 0045620 d i n g o n t h e C L I S 0045640 P d e c l a r a t i o n s i 0045660 n e f f e c t . \r \r C O U N T 0045700 F O R M \t [ I . S . O p 0045720 e r a t o r ] \r C o u n t s t 0045740 h e n u m b e r o f t i m 0045760 e s t h a t F O R M i s 0046000 t r u e , a n d r e t u r n 0046020 s t h a t c o u n t a s 0046040 i t s v a l u e . \r \r A L W A 0046060 Y S F O R M \t [ I . S . 0046100 O p e r a t o r ] \r R e t u r n 0046120 s T i f t h e v a l u e 0046140 o f F O R M i s n o n - 0046160 N I L f o r a l l i t e r 0046200 a t i o n s . ( N o t e : 0046220 r e t u r n s N I L a s s 0046240 o o n a s t h e v a l u e 0046260 o f F O R M i s N I L ) 0046300 . \r \r N E V E R F O R M \t 0046320 [ I . S . O p e r a t o r ] \r 0046340 S i m i l a r t o A L W A Y 0046360 S , e x c e p t r e t u r n 0046400 s T i f t h e v a l u e 0046420 o f F O R M i s n e v e 0046440 r t r u e . ( N o t e : 0046460 r e t u r n s N I L a s s 0046500 o o n a s t h e v a l u e 0046520 o f F O R M i s n o n - 0046540 N I L ) . \r \r T h e f o l l o 0046560 w i n g i . s . t y p e s e 0046600 x p l i c i t l y r e f e r 0046620 t o t h e i t e r a t i o n 0046640 v a r i a b l e ( i . v . ) 0046660 o f t h e i t e r a t i v 0046700 e s t a t e m e n t , w h i 0046720 c h i s a v a r i a b l e 0046740 s e t a t e a c h i t e 0046760 r a t i o n . T h i s i s 0047000 e x p l a i n e d b e l o w 0047020 u n d e r F O R . \r T H E R 0047040 E I S F O R M \t [ I . S . 0047060 O p e r a t o r ] \r R e t u r 0047100 n s t h e f i r s t v a l 0047120 u e o f t h e i . v . f 0047140 o r w h i c h F O R M i s 0047160 n o n - N I L , e . g . , 0047200 ( f o r X i n Y t h e r 0047220 e i s ( N U M B E R P X ) ) 0047240 r e t u r n s t h e f i r 0047260 s t n u m b e r i n Y . 0047300 ( N o t e : r e t u r n s 0047320 t h e v a l u e o f t h e 0047340 i . v . a s s o o n a s 0047360 t h e v a l u e o f F O 0047400 R M i s n o n - N I L ) . \r 0047420 \r L A R G E S T F O R M \t 0047440 [ I . S . O p e r a t o r ] \r 0047460 S M A L L E S T F O R M \t 0047500 [ I . S . O p e r a t o r ] \r 0047520 R e t u r n s t h e v a l u 0047540 e o f t h e i . v . t h 0047560 a t p r o v i d e s t h e 0047600 l a r g e s t / s m a l l e s t 0047620 v a l u e o f F O R M . 0047640 $ $ E X T R E M E i s a 0047660 l w a y s b o u n d t o t 0047700 h e c u r r e n t g r e a t 0047720 e s t / s m a l l e s t v a l 0047740 u e , $ $ V A L t o t h e 0047760 v a l u e o f t h e i . 0050000 v . f r o m w h i c h i t 0050020 c a m e . \r \r 9 . 8 . 2 \t 0050040 I t e r a t i o n V a r i a b 0050060 l e I . s . o p r s \r \r F O R 0050100 V A R \t [ I . S . O p e 0050120 r a t o r ] \r S p e c i f i e s 0050140 t h e i t e r a t i o n v 0050160 a r i a b l e ( i . v . ) w 0050200 h i c h i s u s e d i n 0050220 c o n j u n c t i o n w i t h 0050240 I N , O N , F R O M , T 0050260 O , a n d B Y . T h e 0050300 v a r i a b l e i s r e b o 0050320 u n d w i t h i n t h e i 0050340 . s . , s o t h e v a l u 0050360 e o f t h e v a r i a b l 0050400 e o u t s i d e t h e i . 0050420 s . i s n o t e f f e c t 0050440 e d . E x a m p l e : \r _ 0050460 ( S E T Q X 5 5 ) \r 5 5 \r _ 0050500 ( f o r X f r o m 1 t 0050520 o 5 c o l l e c t ( T I M 0050540 E S X X ) ) \r ( 1 4 9 0050560 1 6 2 5 ) \r _ X \r 5 5 \r \r F 0050600 O R V A R S \t [ I . S . 0050620 O p e r a t o r ] \r V A R S a 0050640 l i s t o f v a r i a b l 0050660 e s , e . g . , ( f o r ( 0050700 X Y Z ) i n . . . ) . 0050720 T h e f i r s t v a r i a 0050740 b l e i s t h e i . v . , 0050760 t h e r e s t a r e d u 0051000 m m y v a r i a b l e s . 0051020 S e e B I N D b e l o w . \r 0051040 \r F O R O L D V A R \t [ 0051060 I . S . O p e r a t o r ] \r S 0051100 i m i l a r t o F O R , e 0051120 x c e p t t h a t V A R i 0051140 s n o t r e b o u n d w i 0051160 t h i n t h e i . s . , s 0051200 o t h e v a l u e o f t 0051220 h e i . v . o u t s i d e 0051240 o f t h e i . s . i s c 0051260 h a n g e d . E x a m p l 0051300 e : \r _ ( S E T Q X 5 5 ) 0051320 \r 5 5 \r _ ( f o r o l d X 0051340 f r o m 1 t o 5 c o l 0051360 l e c t ( T I M E S X X ) 0051400 ) \r ( 1 4 9 1 6 2 5 ) \r 0051420 _ X \r 6 \r \r B I N D V A R 0051440 \t [ I . S . O p e r a t o r 0051460 ] \r B I N D V A R S \t [ I 0051500 . S . O p e r a t o r ] \r U s 0051520 e d t o s p e c i f y d u 0051540 m m y v a r i a b l e s , w 0051560 h i c h a r e b o u n d l 0051600 o c a l l y w i t h i n t h 0051620 e i . s . \r \r N o t e : F 0051640 O R , F O R O L D , a n d 0051660 B I N D v a r i a b l e s 0051700 c a n b e i n i t i a l i z 0051720 e d b y u s i n g t h e 0051740 f o r m V A R _ F O R M : \r ( 0051760 f o r o l d ( X _ F O R M ) 0052000 b i n d ( Y _ F O R M ) . 0052020 . . ) \r I N F O R M \t [ I 0052040 . S . O p e r a t o r ] \r S p 0052060 e c i f i e s t h a t t h e 0052100 i . s . i s t o i t e r 0052120 a t e d o w n a l i s t 0052140 w i t h t h e i . v . b e 0052160 i n g r e s e t t o t h e 0052200 c o r r e s p o n d i n g e 0052220 l e m e n t a t e a c h i 0052240 t e r a t i o n . F o r e 0052260 x a m p l e , ( f o r X i 0052300 n Y d o . . . ) c o r r 0052320 e s p o n d s t o ( M A P C 0052340 Y ( F U N C T I O N ( L A 0052360 M B D A ( X ) . . . ) ) ) . 0052400 I f n o i . v . h a s 0052420 b e e n s p e c i f i e d , 0052440 a d u m m y i s s u p p 0052460 l i e d , e . g . , ( i n 0052500 Y c o l l e c t C A D R ) 0052520 i s e q u i v a l e n t t o 0052540 ( M A P C A R Y ( F U N C 0052560 T I O N C A D R ) ) . \r \r O N 0052600 F O R M \t [ I . S . O p 0052620 e r a t o r ] \r S a m e a s 0052640 I N e x c e p t t h a t t 0052660 h e i . v . i s r e s e t 0052700 t o t h e c o r r e s p o 0052720 n d i n g t a i l a t e a 0052740 c h i t e r a t i o n . T 0052760 h u s I N c o r r e s p o n 0053000 d s t o M A P C , M A P C 0053020 A R , a n d M A P C O N C , 0053040 w h i l e O N c o r r e s 0053060 p o n d s t o M A P , M A 0053100 P L I S T , a n d M A P C O 0053120 N . \r \r N o t e : f o r b 0053140 o t h I N a n d O N , F 0053160 O R M i s e v a l u a t e d 0053200 b e f o r e t h e m a i n 0053220 p a r t o f t h e i . s 0053240 . i s e n t e r e d , i . 0053260 e . o u t s i d e o f t h 0053300 e s c o p e o f a n y o 0053320 f t h e b o u n d v a r i 0053340 a b l e s o f t h e i . s 0053360 . F o r e x a m p l e , 0053400 ( f o r X b i n d ( Y _ ' 0053420 ( 1 2 3 ) ) i n Y . . 0053440 . ) w i l l m a p d o w n 0053460 t h e l i s t w h i c h 0053500 i s t h e v a l u e o f 0053520 Y e v a l u a t e d o u t s 0053540 i d e o f t h e i . s . , 0053560 n o t ( 1 2 3 ) . \r I N 0053600 O L D V A R \t [ I . S . 0053620 O p e r a t o r ] \r S p e c i 0053640 f i e s t h a t t h e i . 0053660 s . i s t o i t e r a t e 0053700 d o w n V A R , w i t h 0053720 V A R i t s e l f b e i n g 0053740 r e s e t t o t h e c o 0053760 r r e s p o n d i n g t a i l 0054000 a t e a c h i t e r a t i 0054020 o n , e . g . , a f t e r 0054040 ( f o r X i n o l d L 0054060 d o . . . u n t i l . . . 0054100 ) f i n i s h e s , L w i 0054120 l l b e s o m e t a i l 0054140 o f i t s o r i g i n a l 0054160 v a l u e . \r \r I N O L D ( 0054200 V A R _ F O R M ) \t [ I . S 0054220 . O p e r a t o r ] \r S a m e 0054240 a s I N O L D V A R , 0054260 e x c e p t V A R i s f i 0054300 r s t s e t t o v a l u e 0054320 o f F O R M . \r \r O N O L 0054340 D V A R \t [ I . S . O p 0054360 e r a t o r ] \r S a m e a s 0054400 I N O L D V A R e x c e p 0054420 t t h e i . v . i s r e 0054440 s e t t o t h e c u r r e 0054460 n t v a l u e o f V A R 0054500 a t e a c h i t e r a t i o 0054520 n , i n s t e a d o f t o 0054540 ( C A R V A R ) . \r \r O N 0054560 O L D ( V A R _ F O R M ) 0054600 \t [ I . S . O p e r a t o r ] 0054620 \r S a m e a s O N O L D 0054640 V A R , e x c e p t V A R 0054660 i s f i r s t s e t t o 0054700 v a l u e o f F O R M . \r \r 0054720 I N S I D E F O R M \t [ I 0054740 . S . O p e r a t o r ] \r S i 0054760 m i l a r t o I N , e x c 0055000 e p t t r e a t s f i r s t 0055020 n o n - l i s t , n o n - N 0055040 I L t a i l a s t h e l 0055060 a s t e l e m e n t o f t 0055100 h e i t e r a t i o n , e . 0055120 g . , I N S I D E ' ( A B 0055140 C D . E ) i t e r a t 0055160 e s f i v e t i m e s w i 0055200 t h t h e i . v . s e t 0055220 t o E o n t h e l a s t 0055240 i t e r a t i o n . I N S 0055260 I D E ' A i s e q u i v a 0055300 l e n t t o I N S I D E ' 0055320 ( A ) , w h i c h w i l l 0055340 i t e r a t e o n c e . \r \r F 0055360 R O M F O R M \t [ I . S . 0055400 O p e r a t o r ] \r U s e d 0055420 t o s p e c i f y a n i n 0055440 i t i a l v a l u e f o r 0055460 a n u m e r i c a l i . v . 0055500 T h e i . v . i s a u 0055520 t o m a t i c a l l y i n c r 0055540 e m e n t e d b y 1 a f t 0055560 e r e a c h i t e r a t i o 0055600 n ( u n l e s s B Y i s 0055620 s p e c i f i e d ) . I f 0055640 n o i . v . h a s b e e n 0055660 s p e c i f i e d , a d u 0055700 m m y i . v . i s s u p p 0055720 l i e d a n d i n i t i a l 0055740 i z e d , e . g . , ( f r o 0055760 m 2 t o 5 c o l l e c t 0056000 S Q R T ) r e t u r n s ( 0056020 1 . 4 1 4 1 . 7 3 2 2 . 0 0056040 2 . 2 3 6 ) . \r \r T O F O R M 0056060 \t [ I . S . O p e r a t o 0056100 r ] \r U s e d t o s p e c i 0056120 f y t h e f i n a l v a l 0056140 u e f o r a n u m e r i c 0056160 a l i . v . I f F R O M 0056200 i s n o t s p e c i f i e 0056220 d , t h e i . v . i s i 0056240 n i t i a l i z e d t o 1 . 0056260 I f n o i . v . h a s 0056300 b e e n s p e c i f i e d , 0056320 a d u m m y i . v . i s 0056340 s u p p l i e d a n d i n 0056360 i t i a l i z e d . I f B 0056400 Y i s n o t s p e c i f i 0056420 e d , t h e i . v . i s 0056440 a u t o m a t i c a l l y i n 0056460 c r e m e n t e d b y 1 a 0056500 f t e r e a c h i t e r a t 0056520 i o n . W h e n t h e i 0056540 . v . i s d e f i n i t e l 0056560 y b e i n g i n c r e m e n 0056600 t e d , i . e . , e i t h e 0056620 r B Y i s n o t s p e c 0056640 i f i e d , o r i t s o p 0056660 e r a n d i s a p o s i t 0056700 i v e n u m b e r , t h e 0056720 i . s . t e r m i n a t e s 0056740 w h e n t h e i . v . e x 0056760 c e e d s t h e v a l u e 0057000 o f F O R M . S i m i l a 0057020 r l y , w h e n t h e i . 0057040 v . i s d e f i n i t e l y 0057060 b e i n g d e c r e m e n t 0057100 e d t h e i . s . t e r m 0057120 i n a t e s w h e n t h e 0057140 i . v . b e c o m e s l e s 0057160 s t h a n t h e v a l u e 0057200 o f F O R M ( s e e d e 0057220 s c r i p t i o n o f B Y ) 0057240 . \r N o t e : F O R M i s 0057260 e v a l u a t e d o n l y 0057300 o n c e , w h e n t h e i 0057320 . s . i s f i r s t e n t 0057340 e r e d , a n d i t s v a 0057360 l u e b o u n d t o a t 0057400 e m p o r a r y v a r i a b l 0057420 e a g a i n s t w h i c h 0057440 t h e i . v . i s c h e c 0057460 k e d e a c h i n t e r a t 0057500 i o n . I f t h e u s e 0057520 r w i s h e s t o s p e c 0057540 i f y a n i . s . i n w 0057560 h i c h t h e v a l u e o 0057600 f t h e b o u n d a r y c 0057620 o n d i t i o n i s r e c o 0057640 m p u t e d e a c h i t e r 0057660 a t i o n , h e s h o u l d 0057700 u s e W H I L E o r U N 0057720 T I L i n s t e a d o f T 0057740 O . \r \r N o t e : W h e n 0057760 b o t h t h e o p e r a n d 0060000 s t o T O a n d F R O M 0060020 a r e n u m b e r s , a n 0060040 d T O ' s o p e r a n d i 0060060 s l e s s t h a n F R O M 0060100 ' s o p e r a n d , t h e 0060120 i . v . i s d e c r e m e n 0060140 t e d b y 1 a f t e r e 0060160 a c h i t e r a t i o n . 0060200 I n t h i s c a s e , t h 0060220 e i . s . t e r m i n a t e 0060240 s w h e n t h e i . v . 0060260 b e c o m e s l e s s t h a 0060300 n t h e v a l u e o f F 0060320 O R M . F o r e x a m p l 0060340 e , ( f r o m 1 0 t o 1 0060360 d o P R I N T ) p r i n t 0060400 s t h e n u m b e r s f r 0060420 o m 1 0 d o w n t o 1 . 0060440 \r B Y F O R M ( w i t h I 0060460 N / O N ) \t [ I . S . O p 0060500 e r a t o r ] \r I f I N o r 0060520 O N h a v e b e e n s p 0060540 e c i f i e d , t h e v a l 0060560 u e o f F O R M d e t e r 0060600 m i n e s t h e t a i l f 0060620 o r t h e n e x t i t e r 0060640 a t i o n , w h i c h i n 0060660 t u r n d e t e r m i n e s 0060700 t h e v a l u e f o r t h 0060720 e i . v . a s d e s c r i 0060740 b e d e a r l i e r , i . e 0060760 . , t h e n e w i . v . 0061000 i s C A R o f t h e t a 0061020 i l f o r I N , t h e t 0061040 a i l i t s e l f f o r O 0061060 N . I n c o n j u n c t i 0061100 o n w i t h I N , t h e 0061120 u s e r c a n r e f e r t 0061140 o t h e c u r r e n t t a 0061160 i l w i t h i n F O R M b 0061200 y u s i n g t h e i . v . 0061220 o r t h e o p e r a n d 0061240 f o r I N / O N , e . g . , 0061260 ( f o r Z i n L b y 0061300 ( C D D R Z ) . . . ) o r 0061320 ( f o r Z i n L b y 0061340 ( C D D R L ) . . . ) . A 0061360 t t r a n s l a t i o n t i 0061400 m e , t h e n a m e o f 0061420 t h e i n t e r n a l v a r 0061440 i a b l e w h i c h h o l d 0061460 s t h e v a l u e o f t 0061500 h e c u r r e n t t a i l 0061520 i s s u b s t i t u t e d f 0061540 o r t h e i . v . t h r o 0061560 u g h o u t F O R M . F o r 0061600 e x a m p l e , ( f o r X 0061620 i n Y b y ( C D R ( M 0061640 E M B ' F O O ( C D R X ) 0061660 ) ) c o l l e c t X ) s p 0061700 e c i f i e s t h a t a f t 0061720 e r e a c h i t e r a t i o 0061740 n , C D R o f t h e c u 0061760 r r e n t t a i l i s t o 0062000 b e s e a r c h e d f o r 0062020 t h e a t o m F O O , a 0062040 n d ( C D R o f ) t h i s 0062060 l a t t e r t a i l t o 0062100 b e u s e d f o r t h e 0062120 n e x t i t e r a t i o n . \r 0062140 \r B Y F O R M ( w i t h o u 0062160 t I N / O N ) \t [ I . S . 0062200 O p e r a t o r ] \r I f I N 0062220 o r O N h a v e n o t 0062240 b e e n u s e d , B Y s p 0062260 e c i f i e s h o w t h e 0062300 i . v . i t s e l f i s r 0062320 e s e t a t e a c h i t e 0062340 r a t i o n . I f F R O M 0062360 o r T O h a v e b e e n 0062400 s p e c i f i e d , t h e 0062420 i . v . i s k n o w n t o 0062440 b e n u m e r i c a l , s 0062460 o t h e n e w i . v . i 0062500 s c o m p u t e d b y a d 0062520 d i n g t h e v a l u e o 0062540 f F O R M ( w h i c h i s 0062560 r e e v a l u a t e d e a c 0062600 h i t e r a t i o n ) t o 0062620 t h e c u r r e n t v a l u 0062640 e o f t h e i . v . , e 0062660 . g . , ( f o r N f r o m 0062700 1 t o 1 0 b y 2 c o 0062720 l l e c t N ) m a k e s a 0062740 l i s t o f t h e f i r 0062760 s t f i v e o d d n u m b 0063000 e r s . \r I f F O R M i s 0063020 a p o s i t i v e n u m b e 0063040 r ( F O R M i t s e l f , 0063060 n o t i t s v a l u e , w 0063100 h i c h i n g e n e r a l 0063120 C L I S P w o u l d h a v e 0063140 n o w a y o f k n o w i 0063160 n g i n a d v a n c e ) , 0063200 t h e i . s . t e r m i n a 0063220 t e s w h e n t h e v a l 0063240 u e o f t h e i . v . e 0063260 x c e e d s t h e v a l u e 0063300 o f T O ' s o p e r a n d 0063320 . I f F O R M i s a 0063340 n e g a t i v e n u m b e r , 0063360 t h e i . s . t e r m i n 0063400 a t e s w h e n t h e v a 0063420 l u e o f t h e i . v . 0063440 b e c o m e s l e s s t h a 0063460 n T O ' s o p e r a n d , 0063500 e . g . , ( f o r I f r o 0063520 m N t o M b y - 2 u 0063540 n t i l ( L E S S P I M ) 0063560 . . . ) . O t h e r w i s e 0063600 , t h e t e r m i n a t i n 0063620 g c o n d i t i o n f o r 0063640 e a c h i t e r a t i o n d 0063660 e p e n d s o n t h e v a 0063700 l u e o f F O R M f o r 0063720 t h a t i t e r a t i o n : 0063740 i f F O R M < 0 , t h e t 0063760 e s t i s w h e t h e r t 0064000 h e i . v . i s l e s s 0064020 t h a n T O ' s o p e r a n 0064040 d , i f F O R M > 0 t h e 0064060 t e s t i s w h e t h e r 0064100 t h e i . v . e x c e e d 0064120 s T O ' s o p e r a n d , 0064140 o t h e r w i s e i f F O R 0064160 M = 0 , t h e i . s . t e 0064200 r m i n a t e s u n c o n d i 0064220 t i o n a l l y . \r I f F R O 0064240 M o r T O h a v e n o t 0064260 b e e n s p e c i f i e d 0064300 a n d F O R M i s n o t 0064320 a n u m b e r , t h e i . 0064340 v . i s s i m p l y r e s 0064360 e t t o t h e v a l u e 0064400 o f F O R M a f t e r e a 0064420 c h i t e r a t i o n , e . 0064440 g . , ( f o r I f r o m 0064460 N b y M . . . ) i s e 0064500 q u i v a l e n t t o ( f o 0064520 r I _ N b y ( P L U S I 0064540 M ) . . . ) . \r \r A S V A 0064560 R \t [ I . S . O p e r a t 0064600 o r ] \r U s e d t o s p e c 0064620 i f y a n i t e r a t i v e 0064640 s t a t e m e n t i n v o l 0064660 v i n g m o r e t h a n o 0064700 n e i t e r a t i v e v a r 0064720 i a b l e , e . g . , ( f o 0064740 r X i n Y a s U i n 0064760 V d o . . . ) c o r r e 0065000 s p o n d s t o M A P 2 C 0065020 ( p a g e X . X X ) . T h 0065040 e i . s . t e r m i n a t e 0065060 s w h e n a n y o f t h 0065100 e t e r m i n a t i n g c o 0065120 n d i t i o n s a r e m e t 0065140 , e . g . , ( f o r X i 0065160 n Y a s I f r o m 1 0065200 t o 1 0 c o l l e c t X ) 0065220 m a k e s a l i s t o f 0065240 t h e f i r s t t e n e 0065260 l e m e n t s o f Y , o r 0065300 h o w e v e r m a n y e l 0065320 e m e n t s t h e r e a r e 0065340 o n Y i f l e s s t h 0065360 a n 1 0 . \r T h e o p e r a 0065400 n d t o A S , V A R , s 0065420 p e c i f i e s t h e n e w 0065440 i . v . F o r t h e r e 0065460 m a i n d e r o f t h e i 0065500 . s . , o r u n t i l a n 0065520 o t h e r A S i s e n c o 0065540 u n t e r e d , a l l o p e 0065560 r a t o r s r e f e r t o 0065600 t h e n e w i . v . F o 0065620 r e x a m p l e , ( f o r 0065640 I f r o m 1 t o N 1 a 0065660 s J f r o m 1 t o N 2 0065700 b y 2 a s K f r o m 0065720 N 3 t o 1 b y - 1 . . 0065740 . ) t e r m i n a t e s w h 0065760 e n I e x c e e d s N 1 , 0066000 o r J e x c e e d s N 2 0066020 , o r K b e c o m e s l 0066040 e s s t h a n 1 . A f t 0066060 e r e a c h i t e r a t i o 0066100 n , I i s i n c r e m e n 0066120 t e d b y 1 , J b y 2 0066140 , a n d K b y - 1 . \r \r 0066160 O U T O F F O R M \t [ I . 0066200 S . O p e r a t o r ] \r F o r 0066220 u s e w i t h g e n e r a 0066240 t o r s ( p a g e X . X X ) 0066260 . O n e a c h i t e r a 0066300 t i o n , t h e i . v . i 0066320 s s e t t o s u c c e s s 0066340 i v e v a l u e s r e t u r 0066360 n e d b y t h e g e n e r 0066400 a t o r . T h e i . s . 0066420 t e r m i n a t e s w h e n 0066440 t h e g e n e r a t o r r u 0066460 n s o u t . \r \r 9 . 8 . 3 0066500 \t C o n d i t i o n I . s . o 0066520 p r s \r \r W H E N F O R M 0066540 \t [ I . S . O p e r a t o r ] 0066560 \r P r o v i d e s a w a y 0066600 o f e x c e p t i n g c e r 0066620 t a i n i t e r a t i o n s . 0066640 F o r e x a m p l e , ( 0066660 f o r X i n Y c o l l e 0066700 c t X w h e n ( N U M B E 0066720 R P X ) ) c o l l e c t s 0066740 o n l y t h e e l e m e n t 0066760 s o f Y t h a t a r e 0067000 n u m b e r s . \r \r U N L E S S 0067020 F O R M \t [ I . S . O p 0067040 e r a t o r ] \r S a m e a s 0067060 W H E N e x c e p t f o r 0067100 t h e d i f f e r e n c e i 0067120 n s i g n , i . e . , W H 0067140 E N Z i s t h e s a m e 0067160 a s U N L E S S ( N O T 0067200 Z ) . \r \r W H I L E F O R M 0067220 \t [ I . S . O p e r a t o r 0067240 ] \r P r o v i d e s a w a y 0067260 o f t e r m i n a t i n g 0067300 t h e i . s . W H I L E 0067320 F O R M e v a l u a t e s F 0067340 O R M b e f o r e e a c h 0067360 i t e r a t i o n , a n d i 0067400 f t h e v a l u e i s N 0067420 I L , e x i t s . \r \r U N T I 0067440 L F O R M \t [ I . S . O 0067460 p e r a t o r ] \r S a m e a s 0067500 W H I L E e x c e p t f o 0067520 r d i f f e r e n c e i n 0067540 s i g n , i . e . , W H I L 0067560 E X i s e q u i v a l e n 0067600 t t o U N T I L ( N O T 0067620 X ) . \r \r U N T I L N ( N 0067640 a n u m b e r ) \t [ I . S 0067660 . O p e r a t o r ] \r E q u i 0067700 v a l e n t t o U N T I L 0067720 I . V . > N . \r \r R E P E A 0067740 T W H I L E F O R M \t [ I 0067760 . S . O p e r a t o r ] \r S a 0070000 m e a s W H I L E e x c e 0070020 p t t h e t e s t i s p 0070040 e r f o r m e d a f t e r t 0070060 h e e v a l u t i o n o f 0070100 t h e b o d y , b u t b e 0070120 f o r e t h e i . v . i s 0070140 r e s e t f o r t h e n 0070160 e x t i t e r a t i o n . \r \r 0070200 R E P E A T U N T I L F O R M 0070220 \t [ I . S . O p e r a t o 0070240 r ] \r S a m e a s U N T I L 0070260 , e x c e p t t h e t e s 0070300 t i s p e r f o r m e d a 0070320 f t e r t h e e v a l u a t 0070340 i o n o f t h e b o d y . 0070360 \r \r R E P E A T U N T I L N 0070400 ( N a n u m b e r ) \t [ 0070420 I . S . O p e r a t o r ] \r E 0070440 q u i v a l e n t t o R E P 0070460 E A T U N T I L I . V . > 0070500 N . \r \r 9 . 8 . 4 \t O t h e 0070520 r I . s . o p r s \r \r F I R S 0070540 T F O R M \t [ I . S . O 0070560 p e r a t o r ] \r F O R M i s 0070600 e v a l u a t e d o n c e 0070620 b e f o r e t h e f i r s t 0070640 i t e r a t i o n , e . g . 0070660 , ( f o r X Y Z i n 0070700 L f i r s t ( F O O Y Z 0070720 ) . . . ) , a n d F O O 0070740 c o u l d b e u s e d t o 0070760 i n i t i a l i z e Y a n 0071000 d Z . \r \r F I N A L L Y F O 0071020 R M \t [ I . S . O p e r a 0071040 t o r ] \r F O R M i s e v a 0071060 l u a t e d a f t e r t h e 0071100 i . s . t e r m i n a t e s 0071120 . F o r e x a m p l e , 0071140 ( f o r X i n L b i n d 0071160 Y _ 0 d o ( i f ( A T O 0071200 M X ) t h e n ( S E T Q 0071220 Y ( P L U S Y 1 ) ) ) f 0071240 i n a l l y ( R E T U R N Y 0071260 ) ) w i l l r e t u r n t 0071300 h e n u m b e r o f a t o 0071320 m s i n L . \r \r E A C H T I 0071340 M E F O R M \t [ I . S . 0071360 O p e r a t o r ] \r F O R M i 0071400 s e v a l u a t e d a t t 0071420 h e b e g i n n i n g o f 0071440 e a c h i t e r a t i o n b 0071460 e f o r e , a n d r e g a r 0071500 d l e s s o f , a n y t e 0071520 s t i n g . F o r e x a m 0071540 p l e , c o n s i d e r , \r ( 0071560 f o r I f r o m 1 t o 0071600 N \r d o ( . . . ( F 0071620 O O I ) . . . ) \r u 0071640 n l e s s ( . . . ( F O O 0071660 I ) . . . ) \r u n t i 0071700 l ( . . . ( F O O I ) . 0071720 . . ) ) \r T h e u s e r m i 0071740 g h t w a n t t o s e t 0071760 a t e m p o r a r y v a r i 0072000 a b l e t o t h e v a l u 0072020 e o f ( F O O I ) i n 0072040 o r d e r t o a v o i d c 0072060 o m p u t i n g i t t h r e 0072100 e t i m e s e a c h i t e 0072120 r a t i o n . H o w e v e r 0072140 , w i t h o u t k n o w i n 0072160 g t h e t r a n s l a t i o 0072200 n , h e w o u l d n o t 0072220 k n o w w h e t h e r t o 0072240 p u t t h e a s s i g n m e 0072260 n t i n t h e o p e r a n 0072300 d t o D O , U N L E S S , 0072320 o r U N T I L , i . e . , 0072340 w h i c h o n e w o u l d 0072360 b e e x e c u t e d f i r 0072400 s t . H e c a n a v o i 0072420 d t h i s p r o b l e m b 0072440 y s i m p l y w r i t i n g 0072460 E A C H T I M E ( S E T Q 0072500 J ( F O O I ) ) . \r \r D E C 0072520 L A R E : D E C L \t [ I . 0072540 S . O p e r a t o r ] \r I n s 0072560 e r t s t h e f o r m ( D 0072600 E C L A R E D E C L ) i m m 0072620 e d i a t e l y f o l l o w i 0072640 n g t h e P R O G v a r i 0072660 a b l e l i s t i n t h e 0072700 t r a n s l a t i o n , o r 0072720 , i n t h e c a s e t h 0072740 a t t h e t r a n s l a t i 0072760 o n i s a m a p p i n g 0073000 f u n c t i o n r a t h e r 0073020 t h a n a P R O G , i m m 0073040 e d i a t e l y f o l l o w i 0073060 n g t h e a r g u m e n t 0073100 l i s t o f t h e l a m b 0073120 d a e x p r e s s i o n i n 0073140 t h e t r a n s l a t i o n 0073160 . T h i s c a n b e u 0073200 s e d t o d e c l a r e v 0073220 a r i a b l e s b o u n d i 0073240 n t h e i t e r a t i v e 0073260 s t a t e m e n t t o b e 0073300 c o m p i l e d a s l o c a 0073320 l o r s p e c i a l v a r 0073340 i a b l e s ( s e e p a g e 0073360 X . X X ) . F o r e x a 0073400 m p l e ( f o r X i n Y 0073420 d e c l a r e : ( L O C A L 0073440 V A R S X ) . . . ) . S 0073460 e v e r a l D E C L A R E : s 0073500 c a n a p p p e a r i n 0073520 t h e s a m e i . s . ; t 0073540 h e d e c l a r a t i o n s 0073560 a r e i n s e r t e d i n 0073600 t h e o r d e r t h e y a 0073620 p p e a r . \r \r D E C L A R E 0073640 D E C L \t [ I . S . O p e 0073660 r a t o r ] \r S a m e a s D 0073700 E C L A R E : . \r N o t e t h 0073720 a t s i n c e D E C L A R E 0073740 i s a l s o t h e n a m 0073760 e o f a f u n c t i o n , 0074000 D E C L A R E c a n n o t 0074020 b e u s e d a s a n i . 0074040 s . o p e r a t o r w h e n 0074060 i t a p p e a r s a s C 0074100 A R o f a f o r m , i . 0074120 e . a s t h e f i r s t 0074140 i . s . o p e r a t o r i n 0074160 a n i t e r a t i v e s t 0074200 a t e m e n t . H o w e v e 0074220 r , d e c l a r e ( l o w e 0074240 r - c a s e v e r s i o n ) 0074260 c a n b e t h e f i r s t 0074300 i . s . o p e r a t o r . \r 0074320 \r O R I G I N A L I . S . O P 0074340 R O P E R A N D \t [ I . S 0074360 . O p e r a t o r ] \r I . S . 0074400 O P R w i l l b e t r a n 0074420 s l a t e d u s i n g i t s 0074440 o r i g i n a l , b u i l t 0074460 - i n i n t e r p r e t a t i 0074500 o n , i n d e p e n d e n t 0074520 o f a n y u s e r d e f i 0074540 n e d i . s . o p e r a t o 0074560 r s . S e e p a g e X . 0074600 X X . \r \r T h e r e a r e a 0074620 l s o a n u m b e r o f 0074640 i . s . o p r s t h a t m a 0074660 k e i t e a s i e r t o 0074700 c r e a t e i t e r a t i v e 0074720 s t a t e m e n t s t h a t 0074740 u s e t h e c l o c k , 0074760 l o o p i n g f o r a g i 0075000 v e n p e r i o d o f t i 0075020 m e . S e e t i m e r s , 0075040 p a g e X . X X . \r 9 . 8 . 0075060 5 \t M i s c e l l a n e o u 0075100 s H i n t s o n I . S . O 0075120 p r s \r \r \t 267 \t L o w e r c a s 0075140 e v e r s i o n s o f a l 0075160 l i . s . o p e r a t o r s 0075200 a r e e q u i v a l e n t 0075220 t o t h e u p p e r c a s e 0075240 , e . g . , ( f o r X i 0075260 n Y . . . ) i s e q u i 0075300 v a l e n t t o ( F O R X 0075320 I N Y . . . ) . \r \t 267 \t E 0075340 a c h i . s . o p e r a t o 0075360 r i s o f l o w e r p r 0075400 e c e d e n c e t h a n a l 0075420 l I n t e r l i s p f o r m 0075440 s , s o p a r e n t h e s e 0075460 s a r o u n d t h e o p e 0075500 r a n d s c a n b e o m i 0075520 t t e d , a n d w i l l b 0075540 e s u p p l i e d w h e r e 0075560 n e c e s s a r y , e . g . 0075600 , B I N D ( X Y Z ) c 0075620 a n b e w r i t t e n B I 0075640 N D X Y Z , O L D ( X 0075660 _ F O R M ) a s O L D X _ 0075700 F O R M , W H E N ( N U M B 0075720 E R P X ) a s W H E N N 0075740 U M B E R P X , e t c . \r \t 0075760 267 \t R E T U R N o r G O m 0076000 a y b e u s e d i n a n 0076020 y o p e r a n d . ( I n 0076040 t h i s c a s e , t h e t 0076060 r a n s l a t i o n o f t h 0076100 e i t e r a t i v e s t a t 0076120 e m e n t w i l l a l w a y 0076140 s b e i n t h e f o r m 0076160 o f a P R O G , n e v e 0076200 r a m a p p i n g f u n c 0076220 t i o n . ) R E T U R N m 0076240 e a n s r e t u r n f r o m 0076260 t h e i . s . ( w i t h 0076300 t h e i n d i c a t e d v a 0076320 l u e ) , n o t f r o m t 0076340 h e f u n c t i o n i n w 0076360 h i c h t h e i . s a p p 0076400 e a r s . G O r e f e r s 0076420 t o a l a b e l e l s e 0076440 w h e r e i n t h e f u n 0076460 c t i o n i n w h i c h t 0076500 h e i . s . a p p e a r s , 0076520 e x c e p t f o r t h e 0076540 l a b e l s $ $ L P , $ $ I 0076560 T E R A T E , a n d $ $ O U 0076600 T w h i c h a r e r e s e 0076620 r v e d , a s d e s c r i b 0076640 e d b e l o w . \r \t 267 \t I n 0076660 t h e c a s e o f F I R S 0076700 T , F I N A L L Y , E A C H 0076720 T I M E , D E C L A R E : o 0076740 r o n e o f t h e i . s 0076760 . t y p e s , e . g . , D O 0077000 , C O L L E C T , S U M , 0077020 e t c . , t h e o p e r a n 0077040 d c a n c o n s i s t o f 0077060 m o r e t h a n o n e f 0077100 o r m , e . g . , C O L L E 0077120 C T ( P R I N T ( C A R X 0077140 ) ) ( C D R X ) , i n w 0077160 h i c h c a s e a P R O G 0077200 N i s s u p p l i e d . \r \t 0077220 267 \t E a c h o p e r a n d c 0077240 a n b e t h e n a m e o 0077260 f a f u n c t i o n , i n 0077300 w h i c h c a s e i t i 0077320 s a p p l i e d t o t h e 0077340 ( l a s t ) i . v . , e . 0077360 g . , ( f o r X i n Y 0077400 d o P R I N T w h e n N U 0077420 M B E R P ) i s t h e s a 0077440 m e a s ( f o r X i n 0077460 Y d o ( P R I N T X ) w 0077500 h e n ( N U M B E R P X ) ) 0077520 . N o t e t h a t t h e 0077540 i . v . n e e d n o t b 0077560 e e x p l i c i t l y s p e 0077600 c i f i e d , e . g . , ( i 0077620 n Y d o P R I N T w h e 0077640 n N U M B E R P ) w i l l 0077660 w o r k . \r F o r i . s . t y 0077700 p e s , e . g . , D O , C 0077720 O L L E C T , J O I N , t h 0077740 e f u n c t i o n i s a l 0077760 w a y s a p p l i e d t o 0100000 t h e f i r s t i . v . i 0100020 n t h e i . s . , w h e t 0100040 h e r e x p l i c i t y n a 0100060 m e d o r n o t . F o r 0100100 e x a m p l e , ( i n Y 0100120 a s I f r o m 1 t o 1 0100140 0 d o P R I N T ) p r i n 0100160 t s e l e m e n t s o n Y 0100200 , n o t i n t e g e r s b 0100220 e t w e e n 1 a n d 1 0 . 0100240 \r N o t e t h a t t h i s 0100260 f e a t u r e d o e s n o t 0100300 m a k e m u c h s e n s e 0100320 f o r F O R , O L D , B 0100340 I N D , I N , o r O N , 0100360 s i n c e t h e y " o p e r 0100400 a t e " b e f o r e t h e 0100420 l o o p s t a r t s , w h e 0100440 n t h e i . v . m a y n 0100460 o t e v e n b e b o u n d 0100500 . \r I n t h e c a s e o f 0100520 B Y i n c o n j u n c t i 0100540 o n w i t h I N , t h e 0100560 f u n c t i o n i s a p p l 0100600 i e d t o t h e c u r r e 0100620 n t t a i l e . g . , ( f 0100640 o r X i n Y b y C D D 0100660 R . . . ) i s t h e s a 0100700 m e a s ( f o r X i n 0100720 Y b y ( C D D R X ) . . 0100740 . ) . \r \t 267 \t W h i l e t h e 0100760 e x a c t f o r m o f t 0101000 h e t r a n s l a t i o n o 0101020 f a n i t e r a t i v e s 0101040 t a t e m e n t d e p e n d s 0101060 o n w h i c h o p e r a t 0101100 o r s a r e p r e s e n t , 0101120 a P R O G w i l l a l w 0101140 a y s b e u s e d w h e n 0101160 e v e r t h e i . s . s p 0101200 e c i f i e s d u m m y v a 0101220 r i a b l e s , i . e . , i 0101240 f a B I N D o p e r a t o 0101260 r a p p e a r s , o r t h 0101300 e r e i s m o r e t h a n 0101320 o n e v a r i a b l e s p 0101340 e c i f i e d b y a F O R 0101360 o p e r a t o r , o r a 0101400 G O , R E T U R N , o r a 0101420 r e f e r e n c e t o t h 0101440 e v a r i a b l e $ $ V A L 0101460 a p p e a r s i n a n y 0101500 o f t h e o p e r a n d s 0101520 . W h e n a P R O G i s 0101540 u s e d , t h e f o r m 0101560 o f t h e t r a n s l a t i 0101600 o n i s : \r ( P R O G V A R 0101620 I A B L E S \r { i n 0101640 i t i a l i z e } \r $ $ L P 0101660 { e a c h t i m e } \r 0101700 { t e s t } \r { b 0101720 o d y } \r $ $ I T E R A T E \r 0101740 { a f t e r t e s t } 0101760 \r { u p d a t e } \r 0102000 ( G O $ $ L P ) \r 0102020 $ $ O U T { f i n a l i z e } 0102040 \r ( R E T U R N $ 0102060 $ V A L ) ) \r w h e r e { t e 0102100 s t } c o r r e s p o n d s 0102120 t o t h a t p o r t i o n 0102140 o f t h e l o o p t h a t 0102160 t e s t s f o r t e r m i 0102200 n a t i o n a n d a l s o 0102220 f o r t h o s e i t e r a t 0102240 i o n s f o r w h i c h { 0102260 b o d y } i s n o t g o i 0102300 n g t o b e e x e c u t e 0102320 d , ( a s i n d i c a t e d 0102340 b y a W H E N o r U N 0102360 L E S S ) ; { b o d y } c o 0102400 r r e s p o n d s t o t h e 0102420 o p e r a n d o f t h e 0102440 i . s . t y p e , e . g . , 0102460 D O , C O L L E C T , e t c 0102500 . ; { a f t e r t e s t } c 0102520 o r r e s p o n d s t o t h 0102540 o s e t e s t s f o r t e 0102560 r m i n a t i o n s p e c i f 0102600 i e d b y R E P E A T W H I 0102620 L E o r R E P E A T U N T I 0102640 L ; a n d { u p d a t e } 0102660 c o r r e s p o n d s t o t 0102700 h a t p a r t t h a t r e 0102720 s e t s t h e t a i l , i 0102740 n c r e m e n t s t h e c o 0102760 u n t e r , e t c . i n p 0103000 r e p a r a t i o n f o r t 0103020 h e n e x t i t e r a t i o 0103040 n . { i n i t i a l i z e } 0103060 , { f i n a l i z e } , a n 0103100 d { e a c h t i m e } c o r 0103120 r e s p o n d t o t h e o 0103140 p e r a n d s o f F I R S T 0103160 , F I N A L L Y , a n d E 0103200 A C H T I M E , i f a n y . 0103220 \r N o t e t h a t s i n c e 0103240 { b o d y } a l w a y s a 0103260 p p e a r s a t t h e t o 0103300 p l e v e l o f t h e P 0103320 R O G , t h e u s e r c a 0103340 n i n s e r t l a b e l s 0103360 i n { b o d y } , a n d G 0103400 O t o t h e m f r o m w 0103420 i t h i n { b o d y } o r 0103440 f r o m o t h e r i . s . 0103460 o p e r a n d s , e . g . , 0103500 ( f o r X i n Y f i r s 0103520 t ( G O A ) d o ( F O O 0103540 ) A ( F I E ) ) . H o w 0103560 e v e r , s i n c e { b o d 0103600 y } i s d w i m i f i e d 0103620 a s a l i s t o f f o r 0103640 m s , t h e l a b e l ( s ) 0103660 s h o u l d b e a d d e d 0103700 t o t h e d u m m y v a 0103720 r i a b l e s f o r t h e 0103740 i t e r a t i v e s t a t e m 0103760 e n t i n o r d e r t o 0104000 p r e v e n t t h e i r b e 0104020 i n g d w i m i f i e d a n 0104040 d p o s s i b l y " c o r r 0104060 e c t e d " , e . g . , ( f 0104100 o r X i n Y b i n d A 0104120 f i r s t ( G O A ) d o 0104140 ( F O O ) A ( F I E ) ) . 0104160 T h e u s e r c a n a 0104200 l s o G O t o $ $ L P , 0104220 $ $ I T E R A T E , o r $ $ 0104240 O U T , o r e x p l i c i t 0104260 l y s e t $ $ V A L . \r 9 . 0104300 8 . 6 \t E r r o r s i n 0104320 I t e r a t i v e S t a t e m 0104340 e n t s \r \r A n e r r o r w 0104360 i l l b e g e n e r a t e d 0104400 a n d a n a p p r o p r i 0104420 a t e d i a g n o s t i c p 0104440 r i n t e d i f a n y o f 0104460 t h e f o l l o w i n g c 0104500 o n d i t i o n s h o l d : \r 0104520 ( 1 ) O p e r a t o r w i 0104540 t h n u l l o p e r a n d , 0104560 i . e . , t w o a d j a c 0104600 e n t o p e r a t o r s , a 0104620 s i n ( f o r X i n Y 0104640 u n t i l d o . . . ) \r ( 0104660 2 ) O p e r a n d c o n s 0104700 i s t i n g o f m o r e t 0104720 h a n o n e f o r m ( e x 0104740 c e p t a s o p e r a n d 0104760 t o F I R S T , F I N A L L 0105000 Y , o r o n e o f t h e 0105020 i . s . t y p e s ) , e . g 0105040 . , ( f o r X i n Y ( 0105060 P R I N T X ) c o l l e c t 0105100 . . . ) . \r ( 3 ) I N , 0105120 O N , F R O M , T O , o r 0105140 B Y a p p e a r t w i c e 0105160 i n s a m e i . s . \r ( 4 0105200 ) B o t h I N a n d O 0105220 N u s e d o n s a m e i 0105240 . v . \r ( 5 ) F R O M o r 0105260 T O u s e d w i t h I N 0105300 o r O N o n s a m e i 0105320 . v . \r ( 6 ) M o r e t h 0105340 a n o n e i . s . t y p e , 0105360 e . g . , a D O a n d 0105400 a S U M . \r I n 3 , 4 , 0105420 o r 5 , a n e r r o r i 0105440 s n o t g e n e r a t e d 0105460 i f a n i n t e r v e n i n 0105500 g A S o c c u r s . \r I f 0105520 a n e r r o r o c c u r s , 0105540 t h e i . s . i s l e f 0105560 t u n c h a n g e d . \r I f 0105600 n o D O , C O L L E C T , 0105620 J O I N o r a n y o f t 0105640 h e o t h e r i . s . t y p 0105660 e s a r e s p e c i f i e d 0105700 , C L I S P w i l l f i r 0105720 s t a t t e m p t t o f i 0105740 n d a n o p e r a n d c o 0105760 n s i s t i n g o f m o r e 0106000 t h a n o n e f o r m , 0106020 e . g . , ( f o r X i n 0106040 Y ( P R I N T X ) w h e n 0106060 A T O M X . . . ) , a n 0106100 d i n t h i s c a s e w 0106120 i l l i n s e r t a D O 0106140 a f t e r t h e f i r s t 0106160 f o r m . ( I n t h i s 0106200 c a s e , c o n d i t i o n 0106220 2 i s n o t c o n s i d e 0106240 r e d t o b e m e t , a 0106260 n d a n e r r o r i s n 0106300 o t g e n e r a t e d . ) 0106320 I f C L I S P c a n n o t 0106340 f i n d s u c h a n o p e 0106360 r a n d , a n d n o W H I 0106400 L E o r U N T I L a p p e 0106420 a r s i n t h e i . s . , 0106440 a w a r n i n g m e s s a 0106460 g e i s p r i n t e d : N 0106500 O D O , C O L L E C T , O 0106520 R J O I N : f o l l o w e d 0106540 b y t h e i . s . \r S i m 0106560 i l a r l y , i f n o t e 0106600 r m i n a t i n g c o n d i t 0106620 i o n i s d e t e c t e d , 0106640 i . e . , n o I N , O N 0106660 , W H I L E , U N T I L , 0106700 T O , o r a R E T U R N 0106720 o r G O , a w a r n i n g 0106740 m e s s a g e i s p r i n 0106760 t e d : P O S S I B L E N O 0107000 N - T E R M I N A T I N G I T 0107020 E R A T I V E S T A T E M E N 0107040 T : f o l l o w e d b y t 0107060 h e i t e r a t i v e s t a 0107100 t e m e n t . H o w e v e r 0107120 , s i n c e t h e u s e r 0107140 m a y b e p l a n n i n g 0107160 t o t e r m i n a t e t h 0107200 e i . s . v i a a n e r 0107220 r o r , c o n t r o l - E , 0107240 o r a R E T F R O M f r o 0107260 m a l o w e r f u n c t i 0107300 o n , t h e i . s . i s 0107320 s t i l l t r a n s l a t e d 0107340 . N o t e : T h e e r 0107360 r o r m e s s a g e i s n 0107400 o t p r i n t e d i f t h 0107420 e v a l u e o f C L I S P 0107440 I . S . G A G i s T ( i n 0107460 i t i a l l y N I L ) . \r 9 . 0107500 8 . 7 \t D e f i n i n g N 0107520 e w I t e r a t i v e S t a 0107540 t e m e n t O p e r a t o r s 0107560 \r \r T h e f o l l o w i n g 0107600 f u n c t i o n i s a v a i 0107620 l a b l e f o r d e f i n i 0107640 n g n e w o r r e d e f i 0107660 n i n g e x i s t i n g i t 0107700 e r a t i v e s t a t e m e n 0107720 t o p e r a t o r s : \r ( I . 0107740 S . O P R N A M E F O R M 0107760 O T H E R S E V A L F L G ) 0110000 \t [ F u n c t i o n ] \r N A M 0110020 E i s t h e n a m e o f 0110040 t h e n e w i . s . o p r 0110060 . I f F O R M i s a 0110100 l i s t , N A M E w i l l 0110120 b e a n e w i . s . t y p 0110140 e ( s e e p a g e X . X X 0110160 ) , a n d F O R M i t s 0110200 b o d y . \r O T H E R S i s 0110220 a n ( o p t i o n a l ) l i 0110240 s t o f a d d i t i o n a l 0110260 i . s . o p e r a t o r s 0110300 a n d o p e r a n d s w h i 0110320 c h w i l l b e a d d e d 0110340 t o t h e i . s . a t 0110360 t h e p l a c e w h e r e 0110400 N A M E a p p e a r s . I 0110420 f F O R M i s N I L , N 0110440 A M E i s a n e w i . s 0110460 . o p r d e f i n e d e n t 0110500 i r e l y b y O T H E R S . 0110520 \r I n b o t h F O R M a n 0110540 d O T H E R S , t h e a t 0110560 o m $ $ V A L c a n b e 0110600 u s e d t o r e f e r e n c 0110620 e t h e v a l u e t o b 0110640 e r e t u r n e d b y t h 0110660 e i . s . , I . V . t o 0110700 r e f e r e n c e t h e c u 0110720 r r e n t i . v . , a n d 0110740 B O D Y t o r e f e r e n c 0110760 e N A M E ' s o p e r a n d 0111000 . I n o t h e r w o r d 0111020 s , t h e c u r r e n t i 0111040 . v . w i l l b e s u b s 0111060 t i t u t e d f o r a l l 0111100 i n s t a n c e s o f I . V 0111120 . a n d N A M E ' s o p e 0111140 r a n d w i l l b e s u b 0111160 s t i t u t e d f o r a l l 0111200 i n s t a n c e s o f B O 0111220 D Y t h r o u g h o u t F O 0111240 R M a n d O T H E R S . \r I 0111260 f E V A L F L G i s T , 0111300 F O R M a n d O T H E R S 0111320 a r e e v a l u a t e d a t 0111340 t r a n s l a t i o n t i m 0111360 e , a n d t h e i r v a l 0111400 u e s u s e d a s d e s c 0111420 r i b e d a b o v e . A 0111440 d u m m y v a r i a b l e f 0111460 o r u s e i n t r a n s l 0111500 a t i o n t h a t d o e s 0111520 n o t c l a s h w i t h a 0111540 d u m m y v a r i a b l e 0111560 a l r e a d y u s e d b y 0111600 s o m e o t h e r i . s . 0111620 o p e r a t o r s c a n b e 0111640 o b t a i n e d b y c a l 0111660 l i n g ( G E T D U M M Y V A 0111700 R ) . ( G E T D U M M Y V A R 0111720 T ) w i l l r e t u r n 0111740 a d u m m y v a r i a b l e 0111760 a n d a l s o i n s u r e 0112000 t h a t i t i s b o u n 0112020 d a s a P R O G v a r i 0112040 a b l e i n t h e t r a n 0112060 s l a t i o n . \r I f N A M E 0112100 w a s p r e v i o u s l y 0112120 a n i . s . o p r a n d i 0112140 s b e i n g r e d e f i n e 0112160 d , t h e m e s s a g e ( 0112200 N A M E R E D E F I N E D ) 0112220 w i l l b e p r i n t e d 0112240 ( u n l e s s D F N F L G = T 0112260 ) , a n d a l l e x p r e 0112300 s s i o n s u s i n g t h e 0112320 i . s . o p r N A M E t h 0112340 a t h a v e b e e n t r a 0112360 n s l a t e d w i l l h a v 0112400 e t h e i r t r a n s l a t 0112420 i o n s d i s c a r d e d . \r 0112440 \r T h e f o l l o w i n g a 0112460 r e s o m e e x a m p l e s 0112500 o f h o w I . S . O P R 0112520 c o u l d b e c a l l e d 0112540 t o d e f i n e s o m e e 0112560 x i s t i n g i . s . o p r s 0112600 , a n d c r e a t e s o m 0112620 e n e w o n e s : \r \t C O L 0112640 L E C T \t \r ( I . S . O P R ' 0112660 C O L L E C T \r 0112700 ' ( S E T Q $ $ V A L ( N 0112720 C O N C 1 $ $ V A L B O D Y 0112740 ) ) ) \r \t S U M \t \r ( I . S . O 0112760 P R ' S U M \r 0113000 ' ( $ $ V A L _ $ $ V A L + B 0113020 O D Y ) \r ' ( 0113040 F I R S T $ $ V A L _ 0 ) ) \r 0113060 N o t e : $ $ V A L + B O D 0113100 Y i s u s e d i n s t e a 0113120 d o f ( I P L U S $ $ V A 0113140 L B O D Y ) s o t h a t 0113160 t h e c h o i c e o f f u 0113200 n c t i o n u s e d i n t 0113220 h e t r a n s l a t i o n , 0113240 i . e . , I P L U S , F P L 0113260 U S , o r P L U S , w i l 0113300 l b e d e t e r m i n e d 0113320 b y t h e d e c l a r a t i 0113340 o n s t h e n i n e f f e 0113360 c t . \r \t N E V E R \t \r ( I . S 0113400 . O P R ' N E V E R \r 0113420 ' ( i f B O D Y t 0113440 h e n $ $ V A L _ N I L ( G 0113460 O $ $ O U T ) ) ) \r N o t e : 0113500 ( i f B O D Y t h e n 0113520 ( R E T U R N N I L ) ) w o 0113540 u l d e x i t f r o m t h 0113560 e i . s . i m m e d i a t e 0113600 l y a n d t h e r e f o r e 0113620 n o t e x e c u t e t h e 0113640 o p e r a t i o n s s p e c 0113660 i f i e d v i a a F I N A 0113700 L L Y ( i f a n y ) . \r \t T 0113720 H E R E I S \t \r ( I . S . O P R 0113740 ' T H E R E I S \r 0113760 ' ( i f B O D Y t h e 0114000 n $ $ V A L _ I . V . ( G O 0114020 $ $ O U T ) ) ) \r \t R C O L L 0114040 E C T \t T o d e f i n e R C 0114060 O L L E C T , a v e r s i o 0114100 n o f C O L L E C T w h i 0114120 c h u s e s C O N S i n s 0114140 t e a d o f N C O N C 1 a 0114160 n d t h e n r e v e r s e s 0114200 t h e l i s t o f v a l 0114220 u e s : \r ( I . S . O P R ' R 0114240 C O L L E C T \r 0114260 ' ( $ $ V A L _ ( C O N S B 0114300 O D Y $ $ V A L ) ) \r 0114320 ' ( F I N A L L Y ( 0114340 R E T U R N ( D R E V E R S E 0114360 $ $ V A L ) ) ) ] \r \t T C O L 0114400 L E C T \t T o d e f i n e T 0114420 C O L L E C T , a v e r s i 0114440 o n o f C O L L E C T w h 0114460 i c h u s e s T C O N C : \r 0114500 ( I . S . O P R ' T C O L L E 0114520 C T \r ' ( T C 0114540 O N C $ $ V A L B O D Y ) \r 0114560 ' ( F I R S T 0114600 $ $ V A L _ ( C O N S ) F I 0114620 N A L L Y ( R E T U R N ( C 0114640 A R $ $ V A L ) ) ) ] \r \t P R 0114660 O D U C T \t \r ( I . S . O P R 0114700 ' P R O D U C T \r 0114720 ' ( $ $ V A L _ $ $ V A L * 0114740 B O D Y ) \r ' 0114760 ( F I R S T $ $ V A L _ 1 ) ] 0115000 \r \t U P T O \t T o d e f i n e 0115020 U P T O , a v e r s i o n 0115040 o f T O w h o s e o p e 0115060 r a n d i s e v a l u a t e 0115100 d o n l y o n c e : \r ( I . 0115120 S . O P R ' U P T O \r 0115140 N I L \r 0115160 ' ( B I N D $ $ F O O _ B 0115200 O D Y T O $ $ F O O ) ] \r \t 0115220 T O \t T o r e d e f i n e T 0115240 O s o t h a t i n s t e a 0115260 d o f r e c o m p u t i n g 0115300 F O R M e a c h i t e r a 0115320 t i o n , a v a r i a b l e 0115340 i s b o u n d t o t h e 0115360 v a l u e o f F O R M , 0115400 a n d t h e n t h a t v a 0115420 r i a b l e i s u s e d : \r 0115440 ( I . S . O P R ' T O \r 0115460 N I L \r 0115500 ' ( B I N D $ $ E N D 0115520 F I R S T $ $ E N D _ B O D Y 0115540 O R I G I N A L T O $ $ E 0115560 N D ) ] \r N o t e t h e u s 0115600 e o f O R I G I N A L t o 0115620 r e d e f i n e T O i n 0115640 t e r m s o f i t s o r i 0115660 g i n a l d e f i n i t i o n 0115700 . O R I G I N A L i s i 0115720 n t e n d e d f o r u s e 0115740 i n r e d e f i n i n g b u 0115760 i l t - i n o p e r a t o r s 0116000 , s i n c e t h e i r d e 0116020 f i n i t i o n s a r e n o 0116040 t a c c e s s i b l e , a n 0116060 d h e n c e n o t d i r e 0116100 c t l y m o d i f i a b l e . 0116120 T h u s i f t h e o p 0116140 e r a t o r h a d b e e n 0116160 d e f i n e d b y t h e u 0116200 s e r v i a I . S . O P R , 0116220 O R I G I N A L w o u l d 0116240 n o t o b t a i n i t s o 0116260 r i g i n a l d e f i n i t i 0116300 o n . I n t h i s c a s 0116320 e , o n e p r e s u m a b l 0116340 y w o u l d s i m p l y m 0116360 o d i f y t h e i . s . o p 0116400 r d e f i n i t i o n . \r I . 0116420 S . O P R c a n a l s o b 0116440 e u s e d t o d e f i n e 0116460 s y n o n y m s f o r a l 0116500 r e a d y d e f i n e d i . 0116520 s . o p e r a t o r s b y 0116540 c a l l i n g I . S . O P R 0116560 w i t h F O R M a n a t o 0116600 m , e . g . , ( I . S . O P 0116620 R ' W H E R E ' W H E N ) 0116640 m a k e s W H E R E b e t 0116660 h e s a m e a s W H E N . 0116700 S i m i l a r l y , f o l 0116720 l o w i n g ( I . S . O P R 0116740 ' I S T H E R E ' T H E R E I 0116760 S ) , o n e c a n w r i t 0117000 e ( I S T H E R E A T O M 0117020 I N Y ) , a n d f o l l o 0117040 w i n g ( I . S . O P R ' F 0117060 I N D ' F O R ) a n d ( I 0117100 . S . O P R ' S U C H T H A T 0117120 ' T H E R E I S ) , o n e 0117140 c a n w r i t e ( f i n d 0117160 X i n Y s u c h t h a t 0117200 X m e m b e r Z ) . I n 0117220 t h e c u r r e n t s y s 0117240 t e m , W H E R E i s s y 0117260 n o n y m o u s w i t h W H 0117300 E N , S U C H T H A T a n d 0117320 I S T H E R E w i t h T H 0117340 E R E I S , F I N D w i t h 0117360 F O R , a n d T H R U w 0117400 i t h T O . \r I f F O R M 0117420 i s t h e a t o m M O D I 0117440 F I E R , t h e n N A M E 0117460 i s d e f i n e d a s a n 0117500 i . s . o p r w h i c h c 0117520 a n i m m e d i a t e l y f 0117540 o l l o w a n o t h e r i . 0117560 s . o p e r a t o r ( i . e 0117600 . , a n e r r o r w i l l 0117620 n o t b e g e n e r a t e 0117640 d , a s d e s c r i b e d 0117660 p r e v i o u s l y ) . N A 0117700 M E w i l l n o t t e r m 0117720 i n a t e t h e s c o p e 0117740 o f t h e p r e v i o u s 0117760 o p e r a t o r , a n d w i 0120000 l l b e s t r i p p e d o 0120020 f f w h e n D W I M I F Y 0120040 i s c a l l e d o n i t s 0120060 o p e r a n d . O L D i 0120100 s a n e x a m p l e o f 0120120 a M O D I F I E R t y p e 0120140 o f o p e r a t o r . T h 0120160 e M O D I F I E R f e a t u 0120200 r e a l l o w s t h e u s 0120220 e r t o d e f i n e i . s 0120240 . o p e r a t o r s s i m i 0120260 l a r t o O L D , f o r 0120300 u s e i n c o n j u n c t i 0120320 o n w i t h s o m e o t h 0120340 e r u s e r d e f i n e d 0120360 i . s . o p r w h i c h w i 0120400 l l p r o d u c e t h e a 0120420 p p r o p r i a t e t r a n s 0120440 l a t i o n . \r T h e f i l e 0120460 p a c k a g e c o m m a n d 0120500 I . S . O P R S ( p a g e 0120520 X . X X ) w i l l d u m p 0120540 t h e d e f i n i t i o n o 0120560 f i . s . o p r s . ( I . 0120600 S . O P R S P R O D U C T U 0120620 P T O ) a s a f i l e p 0120640 a c k a g e c o m m a n d w 0120660 i l l p r i n t s u i t a b 0120700 l e e x p r e s s i o n s s 0120720 o t h a t t h e s e i t e 0120740 r a t i v e s t a t e m e n t 0120760 o p e r a t o r s w i l l 0121000 b e ( r e ) d e f i n e d w 0121020 h e n t h e f i l e i s 0121040 l o a d e d . \r \r C o p y r i g 0121060 h t ( c ) 1 9 8 5 X e r o 0121100 x C o r p o r a t i o n . 0121120 A l l r i g h t s r e s e r 0121140 v e d . \r \r 0121146