$ od -c -N 50000 [eris]<Lisp>KOTO>LISPUSERS>SETF.TEDIT!2 0000000 X E R O X \t S E T F \r 2 \r \r 4 \r 0000020 \r 1 \r \r S E T F \r 1 \r \r 4 \r \r B 0000040 y : K e l l y R o a c h 0000060 ( R o a c h . p a @ X e r o x . 0000100 c o m ) \r \r L a s t R e v i s 0000120 e d 2 3 - J U L - 8 5 . S 0000140 E T F ( S E T F i e l d ) 0000160 m o d i f i e s t h e r e c 0000200 o r d p a c k a g e s l i g 0000220 h t l y t o g e t t h e 0000240 u s e r t h e C O M M O N 0000260 L I S P S E T F - s t y l e 0000300 r e c o r d a c c e s s i n g 0000320 . L e s s v e r b o s e 0000340 t h a n C L I S P f e t c h 0000360 & r e p l a c e , b u t 0000400 w i t h o u t t h e d r a w 0000420 b a c k s o f p a c k i n g 0000440 r e c o r d a c c e s s e s 0000460 i n t o a t o m s a s w 0000500 i t h C L I S P i n f i x e 0000520 s " : " a n d " . " . 0000540 T o u s e , L O A D < L I 0000560 S P U S E R S > S E T F . D C O 0000600 M . \r ( 1 ) R E C O R D A C 0000620 C E S S . F o r a n y r 0000640 e c o r d n a m e " r " a 0000660 n d f i e l d n a m e " f 0000700 " , S E T F m a k e s t h 0000720 e f o l l o w i n g t r a n 0000740 s l a t i o n s : \r \t ( r . f 0000760 d ) = > ( f e t c h ( 0001000 r f ) o f d ) \r \t ( S E T 0001020 F ( r . f d ) v ) = > 0001040 ( r e p l a c e ( r f ) 0001060 o f d w i t h v ) \r T h 0001100 u s , t h e f o l l o w i n 0001120 g t r a n s l a t i o n s a 0001140 r e e f f e c t e d b y S 0001160 E T F : \r \t ( P 0001200 O S I T I O N . X C O O R D P 0001220 ) = > ( f e t c h ( P 0001240 O S I T I O N X C O O R D ) 0001260 o f P ) \r \t \t ( S E T F ( R 0001300 E G I O N . L E F T R ) 2 3 0001320 4 ) = > ( r e p l a c e 0001340 ( R E G I O N L E F T ) o 0001360 f R w i t h 2 3 4 ) \r T h 0001400 e s e S E T F e x p r e s s 0001420 i o n s t r a n s l a t e i 0001440 n e x a c t l y t h e s a 0001460 m e w a y a s t h e i r 0001500 f e t c h a n d r e p l a c 0001520 e c o u n t e r p a r t s , 0001540 u s i n g t h e s a m e C 0001560 L I S P m a c h i n e r y t 0001600 h a t f e t c h a n d r e 0001620 p l a c e u s e . \r A n e x 0001640 a m p l e o f S E T F u s 0001660 a g e . T h e f o l l o w 0001700 i n g f u n c t i o n C H A 0001720 N G E R E G I O N c h a n g e 0001740 s a R E G I O N ' s s o u 0001760 t h - w e s t a n d n o r t 0002000 h - e a s t c o r n e r s t 0002020 o b e P O S I T I O N 1 a 0002040 n d P O S I T I O N 2 a n d 0002060 r e t u r n s t h e c h a 0002100 n g e d R E G I O N . \r 0002120 ( D E F I N E Q ( C 0002140 H A N G E R E G I O N ( L A M 0002160 B D A ( R E G I O N P O S I 0002200 T I O N 1 P O S I T I O N 2 ) 0002220 \r ( * M a 0002240 k e R E G I O N ' s S W a 0002260 n d N E c o r n e r s b e 0002300 P O S I T I O N 1 a n d P 0002320 O S I T I O N 2 . * ) \r 0002340 ( P R O G ( ) \r 0002360 ( S E T 0002400 F ( R E G I O N . L E F T R 0002420 E G I O N ) \r 0002440 ( P O S I T I 0002460 O N . X C O O R D P O S I T I 0002500 O N 1 ) ) \r 0002520 ( S E T F ( R E G I O N . 0002540 B O T T O M R E G I O N ) \r 0002560 0002600 ( P O S I T I O N . Y C O O R 0002620 D P O S I T I O N 1 ) ) \r 0002640 ( S E T F 0002660 ( R E G I O N . W I D T H R E 0002700 G I O N ) \r 0002720 ( I P L U S ( 0002740 P O S I T I O N . X C O O R D 0002760 P O S I T I O N 2 ) \r 0003000 0003020 ( I M I N U S ( P O S 0003040 I T I O N . X C O O R D P O S 0003060 I T I O N 1 ) ) \r 0003100 0003120 1 ) ) \r 0003140 ( S E T F ( R E G I O N . 0003160 B O T T O M R E G I O N ) \r 0003200 0003220 ( I P L U S ( P O S I T I O 0003240 N . Y C O O R D P O S I T I O 0003260 N 2 ) \r 0003300 ( I M 0003320 I N U S ( P O S I T I O N . Y 0003340 C O O R D P O S I T I O N 1 ) 0003360 ) \r 0003400 1 ) ) \r 0003420 ( R E T U 0003440 R N R E G I O N ) ) ) ) ) \r ( 0003460 2 ) A R R A Y A C C E S S . 0003500 S E T F u s e d w i t h 0003520 E L T t r a n s l a t e s 0003540 i n t o a S E T A f o r m 0003560 : \r \t ( S E T F ( E L T A R 0003600 R A Y N ) V ) = > ( S 0003620 E T A A R R A Y N V ) \r T 0003640 h e f o l l o w i n g l o o 0003660 p w o u l d z e r o o u t 0003700 a n a r r a y c a l l e d 0003720 M Y A R R A Y : \r \t ( F O R 0003740 I F R O M 1 T O ( A R R 0003760 A Y S I Z E M Y A R R A Y ) \r 0004000 \t D O ( S E 0004020 T F ( E L T M Y A R R A Y 0004040 I ) 0 ) ) \r ( 3 ) C A R & 0004060 C D R A C C E S S . S E 0004100 T F u s e d w i t h C A R 0004120 a n d C D R t r a n s l a 0004140 t e s i n t o R P L A C A 0004160 a n d R P L A C D f o r m s 0004200 : \r \t ( S E T F ( C A R X ) 0004220 Y ) = > ( R P L A C A 0004240 X Y ) \r \t ( S E T F ( C D 0004260 R X ) Y ) = > ( R P 0004300 L A C D X Y ) \r T h i s l 0004320 o o p r e c o r d s t h e 0004340 n u m b e r o f o c c u r e 0004360 n c e s o f e a c h a t o 0004400 m i n L I S T u s i n g 0004420 a n A L I S T : \r 0004440 ( F O R A T O M I N L 0004460 I S T \r D O 0004500 ( S E T Q B U C K E T ( A S 0004520 S O C A T O M A L I S T ) ) 0004540 \r ( C O N D 0004560 ( B U C K E T ( S E T F ( C 0004600 D R B U C K E T ) ( A D D 1 0004620 ( C D R B U C K E T ) ) ) ) 0004640 \r 0004660 ( T ( P U S H A L I S T ( 0004700 C O N S A T O M 0 ) ) ) ) ) 0004720 \r ( 4 ) U S E R H O O K . 0004740 T h e u s e r c a n d e 0004760 f i n e h i s o w n S E T 0005000 F t r a n s l a t i o n s u 0005020 s i n g p r o p e r t y S E 0005040 T F D E F ( T h i s i s h 0005060 o w S E T F f o r E L T , 0005100 C A R , & C D R i s i 0005120 m p l e m e n t e d ) . I f 0005140 t h e u s e r d o e s \r \t 0005160 ( P U T P R O P ' C A D R ' 0005200 S E T F D E F ' ( R P L A C A 0005220 ( C D R D A T U M ) N E W 0005240 V A L U E ) ) \r \t ( P U T P R O 0005260 P ' A S S O C ' S E T F D E 0005300 F ' F O O F N ) \r t h e n S 0005320 E T F w i l l m a k e t h 0005340 e t r a n s l a t i o n s \r \t 0005360 ( S E T F ( C A D R X ) Y 0005400 ) = > ( R P L A C A ( 0005420 C D R X ) Y ) \r \t ( S E T F 0005440 ( A S S O C K E Y A L S T 0005460 ) V ) = > \r w h a t ( F 0005500 O O F N ' ( A S S O C K E Y 0005520 A L S T ) ) e v a l s t o 0005540 . \r I n g e n e r a l , i f 0005560 t h e u s e r d o e s \r \t 0005600 ( P U T P R O P a ' S E T F 0005620 D E F s e t f d e f ) \r t h e 0005640 n S E T F m a k e s t h e 0005660 t r a n s l a t i o n \r \t ( S 0005700 E T F ( a d ) n ) = > 0005720 \r s e t d e f w i t h d & 0005740 n s u b s t i t u t e d f 0005760 o r D A T U M & N E W V A 0006000 L U E i f " s e t f d e f " 0006020 i s a l i s t a n d \r \t 0006040 ( S E T F ( a . . . ) . . 0006060 . ) = > \r w h a t ( s e t 0006100 f d e f ' ( S E T F ( a . 0006120 . . ) . . . ) ) e v a l s 0006140 t o i f " s e t f d e f " 0006160 i s a l i t a t o m . \r \0 \0 0006200 \0 \0 \0 003 ( L I S T ( ( P A G E 0006220 N I L ( P A P E R S I Z E 0006240 L e t t e r F O L I O I N F O 0006260 ( A R A B I C ) S T A R 0006300 T I N G P A G E # 1 ) ( 0 0006320 0 6 1 2 7 9 2 ) ( ( F O L 0006340 I O N I L ( P A R A L O O K 0006360 S ( Q U A D C E N T E R E D 0006400 ) C H A R L O O K S ( S U P 0006420 E R S C R I P T 0 I N V I S 0006440 I B L E O F F S E L E C T P 0006460 O I N T O F F P R O T E C T 0006500 E D O F F S I Z E 1 0 F 0006520 A M I L Y M O D E R N O V E 0006540 R L I N E O F F S T R I K E 0006560 O U T O F F U N D E R L I N 0006600 E O F F E X P A N S I O N 0006620 R E G U L A R S L O P E R E 0006640 G U L A R W E I G H T M E D 0006660 I U M I N V E R T E D O F F 0006700 U S E R I N F O N I L S T 0006720 Y L E N I L ) F O R M A T I 0006740 N F O ( A R A B I C ) ) 0006760 ( 1 7 4 3 6 2 8 8 3 6 ) 0007000 N I L ) ( H E A D I N G N I 0007020 L ( H E A D I N G T Y P E R 0007040 U N N I N G H E A D ) ( 8 4 0007060 7 4 4 5 2 8 3 6 ) N I L ) 0007100 ( T E X T N I L N I L ( 0007120 8 4 9 6 4 5 6 6 0 0 ) N 0007140 I L ) ) ) ( P A G E N I L 0007160 ( P A P E R S I Z E L e t t e 0007200 r F O L I O I N F O ( A R A 0007220 B I C ) S T A R T I N G P 0007240 A G E # N I L ) ( 0 0 6 0007260 1 2 7 9 2 ) ( ( F O L I O 0007300 N I L ( P A R A L O O K S ( 0007320 Q U A D C E N T E R E D ) C 0007340 H A R L O O K S ( S U P E R S 0007360 C R I P T 0 I N V I S I B L 0007400 E O F F S E L E C T P O I N 0007420 T O F F P R O T E C T E D 0007440 O F F S I Z E 1 0 F A M I 0007460 L Y M O D E R N O V E R L I 0007500 N E O F F S T R I K E O U T 0007520 O F F U N D E R L I N E O 0007540 F F E X P A N S I O N R E G 0007560 U L A R S L O P E R E G U L 0007600 A R W E I G H T M E D I U M 0007620 I N V E R T E D O F F U S 0007640 E R I N F O N I L S T Y L E 0007660 N I L ) F O R M A T I N F O 0007700 ( A R A B I C ) ) ( 1 7 0007720 4 3 6 2 8 8 3 6 ) N I L 0007740 ) ( H E A D I N G N I L ( 0007760 H E A D I N G T Y P E R U N N 0010000 I N G H E A D ) ( 8 4 7 4 4 0010020 5 2 8 3 6 ) N I L ) ( T 0010040 E X T N I L N I L ( 8 4 0010060 9 6 4 5 6 6 0 0 ) N I L ) 0010100 ) ) ( P A G E N I L ( P A 0010120 P E R S I Z E L e t t e r F 0010140 O L I O I N F O ( A R A B I C 0010160 ) S T A R T I N G P A G E 0010200 # N I L ) ( 0 0 6 1 2 0010220 7 9 2 ) ( ( F O L I O N I L 0010240 ( P A R A L O O K S ( Q U A 0010260 D C E N T E R E D ) C H A R 0010300 L O O K S ( S U P E R S C R I 0010320 P T 0 I N V I S I B L E O 0010340 F F S E L E C T P O I N T O 0010360 F F P R O T E C T E D O F F 0010400 S I Z E 1 0 F A M I L Y 0010420 M O D E R N O V E R L I N E 0010440 O F F S T R I K E O U T O F 0010460 F U N D E R L I N E O F F 0010500 E X P A N S I O N R E G U L A 0010520 R S L O P E R E G U L A R 0010540 W E I G H T M E D I U M I N 0010560 V E R T E D O F F U S E R I 0010600 N F O N I L S T Y L E N I 0010620 L ) F O R M A T I N F O ( A 0010640 R A B I C ) ) ( 1 7 4 3 0010660 6 2 8 8 3 6 ) N I L ) ( 0010700 H E A D I N G N I L ( H E A 0010720 D I N G T Y P E R U N N I N G 0010740 H E A D ) ( 8 4 7 4 4 5 2 0010760 8 3 6 ) N I L ) ( T E X T 0011000 N I L N I L ( 8 4 9 6 0011020 4 5 6 6 0 0 ) N I L ) ) ) ) 0011040 ) \0 \0 \0 \0 \0 005 \0 005 \0 ( \0 \0 \0 \0 001 0011060 310 \0 \v \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 0011100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011120 \0 \0 ( \0 \0 \0 \0 001 310 \0 021 \0 \0 \0 004 002 0011140 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011160 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 212 001 0011200 8 \0 006 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 0011220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011240 \0 \0 ( \0 212 \0 212 001 8 \0 \0 \0 \0 \0 004 002 0011260 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 D \0 \0 \0 \0 001 0011320 310 \0 \0 \0 \0 \0 \0 003 004 \0 \0 001 001 310 001 \0 0011340 \0 \0 \0 \0 \0 \0 \v P A G E H E A D I 0011360 N G \0 \v R U N N I N G H E A D \0 0011400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0011420 \0 \0 004 \0 \b \0 024 \0 006 M O D E R N \0 0011440 \n \0 \0 \0 \0 \0 \0 002 \0 \0 026 \0 \b T E R 0011460 M I N A L \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 0011500 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 0011520 \0 \0 \0 \0 ? \0 1 ( D E F A U L T F 0011540 O N T 1 ( G A C H A 1 0 ) 0011560 ( G A C H A 8 ) ( T E R M 0011600 I N A L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 0011620 \0 \0 \0 024 \0 006 M O D E R N \0 \f \0 \0 0011640 \0 \0 \0 \0 002 \0 \0 024 \0 006 M O D E R N 0011660 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O 0011700 D E R N \0 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 022 0011720 \0 004 L O G O \0 030 \0 \0 \0 \0 \0 \0 \0 \0 0011740 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 005 \0 \0 \0 \0 0011760 \b \0 \0 \0 001 \0 \0 \0 \0 \a \0 \0 \0 005 \0 \0 0012000 \0 \0 006 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 002 \0 0012020 001 \0 \v H R U L E . G E T F N 001 \0 0012040 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 0012060 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \0 0012100 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 \v H R U L 0012120 E . G E T F N 001 \0 024 \0 006 M O D E 0012140 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0012160 \0 \0 \0 \0 006 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 0012200 002 \0 001 \0 \v H R U L E . G E T F N 0012220 001 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0012240 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 0012260 \0 \0 \0 002 \0 003 \0 \0 \0 005 \0 \0 \0 \0 005 \0 0012300 \0 \0 \0 \0 002 \0 003 \0 \0 \0 002 \0 001 \0 \v H 0012320 R U L E . G E T F N 001 \0 024 \0 006 M 0012340 O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 0012360 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 004 0012400 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0012420 T F N 001 \0 024 \0 006 M O D E R N \0 \f 0012440 \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 0012460 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 & \0 \0 \0 0012500 \0 006 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 0012520 \0 \0 004 \0 \0 001 = \0 \0 \0 \0 003 \0 \0 \0 \0 0012540 \0 002 \0 001 \0 \0 \0 004 \0 \0 \0 \0 003 \0 \0 \0 0012560 \r \0 \0 \0 \0 001 \0 \0 \0 V \0 \0 \0 \0 003 \0 0012600 \0 \0 \0 \0 002 \0 001 \0 \0 \0 T \0 \0 \0 \0 002 0012620 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 7 \0 \0 \0 \0 0012640 003 \0 \0 \0 211 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 0012660 \0 001 \0 \0 \0 235 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0012700 002 \0 001 \0 \0 \0 262 \0 \0 \0 \0 003 \0 \0 002 342 0012720 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 0012740 004 \0 \0 \0 \0 003 \0 \0 \0 \f \0 \0 \0 \0 001 \0 0012760 \0 \0 3 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 0013000 \0 \0 \0 - \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 0013020 001 \0 \0 \0 ; \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0013040 \0 001 \0 \0 \0 M \0 \0 \0 \0 002 \0 \0 \0 \0 \0 0013060 002 \0 001 \0 \0 \0 004 \0 \0 \0 \0 003 \0 \0 \0 020 0013100 \0 \0 \0 \0 001 \0 \0 \0 G \0 \0 \0 \0 003 \0 \0 0013120 \0 \0 \0 002 \0 001 \0 \0 \0 H \0 \0 \0 \0 002 \0 0013140 \0 \0 \0 \0 002 \0 001 \0 \0 \0 P \0 \0 \0 \0 003 0013160 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 001 \0 \0 \0 \0 0013200 003 \0 \0 \0 265 \0 \0 \0 \0 002 \0 \0 \0 001 \0 \0 0013220 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 004 \0 0013240 \0 \0 \0 003 \0 \0 \0 \t \0 \0 \0 \0 001 \0 \0 \0 0013260 220 \0 \0 \0 \0 003 \0 \0 \0 001 \0 \0 \0 \0 002 \0 0013300 \0 \0 \0 \0 002 \0 001 \0 \0 \0 Z \0 \0 \0 \0 002 0013320 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0013340 001 \0 \0 \0 $ \0 \0 \0 \0 003 \0 \0 \0 001 \0 \0 0013360 \0 \0 002 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 I \0 0013400 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 0013420 \0 \0 002 \0 001 \0 \0 \0 ) \0 \0 \0 \0 003 \0 \0 0013440 \0 \0 \0 002 \0 001 \0 \0 \0 034 \0 \0 \0 \0 003 \0 0013460 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 001 0013500 \0 \0 \0 035 \0 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 0013520 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 037 \0 \0 0013540 \0 \0 003 \0 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 \0 0013560 \0 002 \0 001 \0 \0 \0 023 \0 \0 \0 \0 002 \0 \0 \0 0013600 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0013620 \0 M \0 \0 \0 \0 003 \0 \0 \0 001 \0 \0 \0 \0 002 0013640 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 027 \0 \0 \0 \0 0013660 002 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0013700 \0 001 \0 \0 \0 G \0 \0 \0 \0 003 \0 \0 \f ~ \0 0013720 c z 272 0013723