$ od -c -N 50000 [qv]<lispcourse>OUTLINE35.TED!1 0000000 F . G . H . 0000020 6 / 1 1 / 8 5 \r L i s p C o u r 0000040 s e # 3 5 : S o l u t i o 0000060 n s t o H o m e w o r k # 0000100 3 4 \r L i s p C o u r s e # 3 0000120 5 : S o l u t i o n s t o 0000140 H o m e w o r k # 3 4 \r A p 0000160 o l o g i e s \r H o m e w o r k 0000200 # 3 4 w a s p o o r l y 0000220 p l a n n e d o u t . I n 0000240 d o i n g t h e h o m e w 0000260 o r k m y s e l f , I r a 0000300 n i n t o a n u m b e r 0000320 o f c o n c e p t u a l r o 0000340 u g h s p o t s t h a t I 0000360 d i d n o t p o i n t o 0000400 u t i n t h e p r o b l e 0000420 m s p e c i f i c a t i o n s 0000440 . \r S o m e o f t h e s e 0000460 p r o b l e m s a r e : \r 1 ) 0000500 \t I f o r g o t t o a c c 0000520 o u n t f o r n u m b e r s 0000540 ( a n d a r r a y s , e t 0000560 c . ) t h a t e v a l u a t 0000600 e t o t h e m s e l v e s . 0000620 I n L C . E v a l , L I 0000640 T A T O M s s h o u l d h a 0000660 v e t h e i o r v a l u e 0000700 l o o k e d u p o n t h e 0000720 s t a c k , L I S T P s s 0000740 h o u l d b e e v a l u a t 0000760 e d a s p e r t h e r u 0001000 l e s , a n d e v e r y t h 0001020 i n g e l s e ( i n c l u d 0001040 i n g n u m b e r s ) s h o 0001060 u l d e v a l u a t e t o 0001100 t h e m s e l v e s . I t s 0001120 t h i s l a s t c l a u s 0001140 e I l e f t o u t o f 0001160 m y d e s c r i p t i o n . \r 0001200 2 ) \t I d i d n o t a c c 0001220 o u n t f o r N L A M B D A 0001240 f u n c t i o n s . I n 0001260 t h e L C . E v a l f u n c 0001300 t i o n , N L A M B D A f u 0001320 n c t i o n s h a v e t o 0001340 b e h a n d l e d s p e c i 0001360 a l l y , s i n c e t h e i 0001400 r a r g u m e n t s s h o u 0001420 l d n o t b e e v a l u a 0001440 t e d b e f o r e L C . A p 0001460 p l y i s c a l l e d . 0001500 O n p a g e 8 o f t h e 0001520 s o l u t i o n p r i n t o 0001540 u t i s a m a g i c f u 0001560 n c t i o n L C . N l a m b d 0001600 a P t h a t d e t e r m i n 0001620 e s i f i t s a r g u m e 0001640 n t i s t h e n a m e o 0001660 f a n N L A M B D A f u n 0001700 c t i o n . \r 3 ) \t A s p a r 0001720 t o f t h e L C . A p p l 0001740 y f u n c t i o n , I s p 0001760 e c i f i e d t h a t i f 0002000 t h e f u n c t i o n d e f 0002020 i n i t i o n w a s n o t 0002040 a l i s t , t h e n y o u 0002060 s h o u l d u s e t h e 0002100 s t a n d a r d I n t e r l i 0002120 s p A P P L Y p r o c e d u 0002140 r e i n s t e a d o f y o 0002160 u r o w n . T h i s i s 0002200 t r u e , e x c e p t i t 0002220 d o e s n ' t q u i t e w 0002240 o r k f o r f u n c t i o n 0002260 s t h a t u s e f r e e 0002300 v a r i a b l e s . \r W h a t 0002320 h a p p e n s i s t h i s 0002340 : F o r f u n c t i o n s 0002360 w i t h L I S T P d e f i 0002400 n i t i o n s , y o u b i n 0002420 d v a r i a b l e s o n y 0002440 o u r o w n s t a c k . 0002460 F o r n o n - L I S T P d e 0002500 f i n i t i o n s , y o u u 0002520 s e I n t e r l i s p w h i 0002540 c h h a s i t s o w n s 0002560 t a c k . W h e n I n t e 0002600 r l i s p w a n t s t o l 0002620 o o k u p a f r e e v a 0002640 r i a b l e , i t l o o k s 0002660 o n i t s o w n s t a c 0002700 k . B u t t h e v a r i 0002720 a b l e m i g h t h a v e 0002740 l a s t b e e n b o u n d 0002760 o n y o u r s t a c k . 0003000 T h e r e f o r e , I n t e r 0003020 l i s p w i l l e i t h e r 0003040 n o t f i n d t h e b i 0003060 n d i n g o r f i n d a n 0003100 o l d b i n d i n g . \r S o 0003120 l u t i o n : B e f o r e 0003140 y o u c a l l t h e I n t 0003160 e r l i s p A P P L Y , y o 0003200 u h a v e t o b i n d o 0003220 n t h e i n t e r l i s p 0003240 s t a c k a l l o f t h e 0003260 v a r i a b l e s t h a t 0003300 a r e b o u n d o n y o u 0003320 r s t a c k . O n e w a 0003340 y t o d o t h i s i s 0003360 t o c o n s t r u c t a L 0003400 E T o r P R O G s t a t e 0003420 m e n t w i t h t h e n e 0003440 c e s s a r y b i n d i n g s 0003460 a n d c o n t a i n i n g 0003500 t h e a p p r o p r i a t e 0003520 A P P L Y s t a t e m e n t . 0003540 Y o u c a n t h e n I 0003560 n t e r l i s p E V A L t h 0003600 i s L E T / P R O G s t a t 0003620 e m e n t . T h i s s o l 0003640 u t i o n i s c a p t u r e 0003660 d i n t h e f u n c t i o 0003700 n L C . L i s p A p p l y o 0003720 n p a g e 8 o f t h e 0003740 s o l u t i o n p r i n t o u 0003760 t . I n m y L C . A p p 0004000 l y , I c a l l e d t h i 0004020 s f u n c t i o n r a t h e 0004040 r t h a n c a l l i n g A 0004060 P P L Y d i r e c t l y t o 0004100 g e t a r o u n d t h i s 0004120 p r o b l e m . \r 4 ) \t T h i 0004140 n g s g e t d u l l a f t 0004160 e r y o u c a l l L C . L 0004200 i s p A p p l y , s i n c e 0004220 t h e r e a f t e r L i s p 0004240 i s d o i n g a l l t h e 0004260 E V A L s a n d A P P L Y 0004300 s . T h e r e f o r e , y 0004320 o u w a n t t o c a l l 0004340 s t a n d a r d I n t e r l i 0004360 s p f u n c t i o n a s l 0004400 a t e a s p o s s i b l e 0004420 s o t h a t y o u c a n 0004440 w a t c h f u n c t i o n s 0004460 w i t h L I S T P d e f i n 0004500 i t i o n s ( i . e . , o n 0004520 e y o u h a v e d e f i n 0004540 e d ) b e i n g e v a l u a 0004560 t e d . \r L C . C o u n t A t o 0004600 m s h a s a C O N D a t 0004620 i t s t o p l e v e l . 0004640 T h e r e f o r e , m o s t 0004660 o f t h e w o r k i n 0004700 e v a l u a t i n g L C . C o 0004720 u n t A t o m s e n d s u p 0004740 b e i n g d o n e b y L 0004760 i s p a n d n o t b y y 0005000 o u r L C . E v a l a n d 0005020 L C . A p p l y . I h a v 0005040 e o n e f u n c t i o n , 0005060 L C . C o u n t A t o m s 1 , 0005100 t h a t w o r k s t h i s 0005120 w a y . B u t I a l s o 0005140 w r o t e a s e c o n d 0005160 f u n c t i o n , L C . C o u 0005200 n t A t o m s 2 , t h a t u 0005220 s e s m y o w n v e r s i 0005240 o n o f C O N D c a l l e 0005260 d L C . C o n d . W h e n 0005300 I L C . E v a l t h i s 0005320 s e c o n d C o u n t A t o m 0005340 s m u c h m o r e o f t 0005360 h e w o r k i s d o n e 0005400 b y m y e v a l u a t o r 0005420 b e c a u s e I b o m b i 0005440 n t o L i s p m u c h l a 0005460 t e r i n t h e e v a l u 0005500 a t i o n p r o c e s s . \r S 0005520 o l u t i o n s \r A t t a c h e 0005540 d . \r S a m p l e R u n s \r A 0005560 t t a c h e d . \r \r \0 \0 \0 \0 \0 003 0005600 ( L I S T ( ( P A G E N I L 0005620 N I L ( 0 0 1 7 2 2 ) 0005640 ( ( H E A D I N G N I L ( 0005660 H E A D I N G T Y P E Y Y Y ) 0005700 ( 5 4 0 7 5 6 7 2 3 6 ) 0005720 N I L ) ( T E X T N I L 0005740 N I L ( 7 2 7 2 4 6 8 6 0005760 4 8 ) N I L ) ) ) ( P A G E 0006000 N I L N I L ( 0 0 1 7 0006020 2 2 ) ( ( F O L I O N I L 0006040 ( P A R A L O O K S ( Q U A 0006060 D R I G H T ) C H A R L O O 0006100 K S ( S U P E R S C R I P T 0006120 0 S I Z E 1 2 F A M I L Y 0006140 T I M E S R O M A N O V E R 0006160 L I N E O F F S T R I K E O 0006200 U T O F F U N D E R L I N E 0006220 O F F S L O P E R E G U L 0006240 A R W E I G H T M E D I U M 0006260 ) ) ( 4 6 8 7 5 6 7 2 3 0006300 6 ) N I L ) ( H E A D I N G 0006320 N I L ( H E A D I N G T Y P 0006340 E X X X ) ( 7 2 7 5 6 7 0006360 2 3 6 ) N I L ) ( T E X T 0006400 N I L N I L ( 7 2 7 2 0006420 4 6 8 6 4 8 ) N I L ) ) ) 0006440 ( P A G E N I L N I L ( 0 0006460 0 1 7 2 2 ) ( ( F O L I 0006500 O N I L ( P A R A L O O K S 0006520 ( Q U A D R I G H T ) C H 0006540 A R L O O K S ( S U P E R S C 0006560 R I P T 0 S I Z E 1 2 F 0006600 A M I L Y T I M E S R O M A N 0006620 O V E R L I N E O F F S T 0006640 R I K E O U T O F F U N D E 0006660 R L I N E O F F S L O P E 0006700 R E G U L A R W E I G H T M 0006720 E D I U M ) ) ( 4 6 8 7 5 6 0006740 7 2 3 6 ) N I L ) ( H E 0006760 A D I N G N I L ( H E A D I 0007000 N G T Y P E X X X ) ( 7 2 0007020 7 5 6 7 2 3 6 ) N I L ) 0007040 ( T E X T N I L N I L ( 7 0007060 2 7 2 4 6 8 6 4 8 ) N I 0007100 L ) ) ) ) ) \0 \0 \0 \0 \0 005 \0 \b \0 < 0007120 \0 < \0 \0 \0 \b \0 \0 \0 006 003 001 \0 \0 001 \0 0007140 < \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007160 \0 \0 \0 \0 \0 $ \0 < \0 \0 \0 \f \0 \0 \0 006 0007200 003 001 \0 \0 001 \0 < \0 \0 \0 \0 \0 \0 \0 \0 \0 0007220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007240 \0 026 \0 \0 \0 006 002 001 \0 \0 \0 \0 \0 \0 \0 \0 0007260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 $ \0 $ \0 \0 0007300 \0 006 \0 \0 \0 006 002 001 \0 \0 \0 \0 \0 \0 \0 \0 0007320 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007340 \0 022 \0 \0 \0 006 002 001 \0 \0 \0 \0 \0 \0 \0 \0 0007360 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007400 \0 006 \0 \0 \0 006 002 001 \0 \0 \0 \0 \0 \0 \0 \0 0007420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 210 0007440 \0 006 \0 \0 \0 006 002 001 \0 \0 \0 \0 \0 \0 \0 \v 0007460 P A G E H E A D I N G \0 003 X X X 0007500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 H \0 006 0007520 \0 \0 \0 006 002 001 \0 \0 \0 \0 \0 \0 \0 \v P A 0007540 G E H E A D I N G \0 003 Y Y Y \0 \0 0007560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 002 \0 \n 0007600 T I M E S R O M A N \0 016 \0 \0 \0 \0 0007620 \0 \0 002 \0 \0 \n T I M E S R O M A N 0007640 \0 \f \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 0007660 \0 \b \0 \0 \0 030 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 0007700 002 \0 \a \0 \0 \0 + \0 \0 \0 \0 002 \0 \0 \0 \0 0007720 \0 002 \0 006 \0 \0 \0 + \0 \0 \0 \0 001 \0 \0 \0 0007740 \0 \0 002 \0 005 \0 \0 \0 \n \0 \0 \0 \0 001 \0 \0 0007760 \0 \0 \0 002 \0 004 \0 \0 \0 252 \0 \0 \0 \0 002 \0 0010000 \0 \0 \0 \0 002 \0 004 \0 \0 \0 034 \0 \0 \0 \0 002 0010020 \0 \0 \0 \0 \0 002 \0 002 \0 \0 001 B \0 \0 \0 \0 0010040 002 \0 \0 \0 \0 \0 002 \0 002 \0 \0 001 G \0 \0 \0 0010060 \0 002 \0 \0 \0 \0 \0 002 \0 002 \0 \0 001 005 \0 \0 0010100 \0 \0 002 \0 \0 \0 \0 \0 002 \0 001 \0 \0 001 202 \0 0010120 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 001 \0 \0 002 \f 0010140 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 002 \0 \0 001 0010160 033 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0010200 001 332 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 003 \0 0010220 \0 \0 \n \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 004 0010240 \0 \0 \0 \n \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 0010260 003 \0 \0 \0 \f \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 0010300 \0 004 \0 \0 \0 \n \0 \0 \0 \0 002 \0 \0 \0 \0 \0 0010320 002 \0 003 \0 \0 \0 001 \0 \0 \0 \0 001 \0 \0 \0 \0 0010340 \0 002 \0 003 \0 \0 \v z \0 & z 271 0010354