Aalz HH $ @d HHHHff@  d Footnote TableFootnote**.\t.\t/ - :;,.!?6 `/$ `TOCHeading1Heading2   EquationVariablesZ~eh @e @f YgVXiUQIjTlUma(U8nu%Uo Up a q b a 4\ ) I > )<$lastpagenum> *<$monthname> <$daynum>, <$year>m +"<$monthnum>/<$daynum>/<$shortyear> ,;<$monthname> <$daynum>, <$year> <$hour>:<$minute00> <$ampm>> -"<$monthnum>/<$daynum>/<$shortyear> .<$monthname> <$daynum>, <$year>@ /"<$monthnum>/<$daynum>/<$shortyear> 0 <$fullfilename> 1 <$filename> 2 <$paratext[Title]> 3 <$paratext[Heading1]> 4 <$curpagenum> 5 <$marker1> 6 <$marker2> 7 (Continued)Fo 8+ (Sheet <$tblsheetnum> of <$tblsheetcount>).\ 9Heading & Page <$paratext> on page<$pagenum> :Pagepage<$pagenum>He ;See Heading & Page%See <$paratext> on page<$pagenum>. < Table All7Table<$paranumonly>, <$paratext>, on page<$pagenum>i =Table Number & Page'Table<$paranumonly> on page<$pagenum>  FFA HHA JJ NN PP RA  hmo5y  va<$5|  v;5  u>nuX v v >:5 ! u>>5 " t"hnY # k kmI $ x vmoX % ~ ~d, X & j j"X ' v v/umX ( j ja X ) y yi>X * v v naY + x paY , v ve P - x jediP . j jcuS / j j P 0 j j P 1 j j P 2 j j)P 3 j j heP 4 j j$etP 5 j j\HeP 6 j jearP 7 j jppaP 8 j jP 9 j jnHeP : j je& Z' ; x j<exZ( < v vnuP = j je S > j jnuP ? j jpt>P @ j j<umP A j jambP B j j'<$P! C j j>geP" D j jP# E j jP$ F j jFP% G j jY H j jAY I ~ ~Y J v vY K v vY L ~ ~Y M v ~Y N v vRY! O x v hY( P j jvY1 Q x jvY2 R v vuY: S v vvY, T j juY? U { vtY@ V v vkYA W v vxYD X j j~YE Y v vjYa Z j vvYb [ j jjYc \ j jyYd ] j jvYe ^ j jxYf _ j jvYg ` j vxYh a j jjYi b j jjYj c j vjYk d j vjYl e j vjYm f j jjY g j jjQ k j jjQ l j jjY m ~ ~jY s x jjY t v vjY u v vjQ* v j jxY w v vvY~ x j vjQ y j jjQ z j jjQ { j jjQ | x jjY } j jjQ+ ~ j jjQ,  j jjQ- j jjQ vjQ/ j jjQ x vjQ5 j j~Q6 j jvQ7 j jvQ8 j j~Q; j jvQ< j jvQC j jxQD j jjQE j jxQ v vvQ j jvQi v jjQ j j{Q j jvQ j jvQ j jjQ j jvQ j jjQ j jjQ j jjY j jjQ v jjQ j jjQ j jjQ j jjQ j jjQ j jjQ j jjQ j jjQ j jjQ v vjQ j jjQ j jjY j j~Q j jxQ j jvQ j jvY j jjY j jvY j jjY j jjQ x vjR ~ jjQ ~ vxR j jjR j jjR j jjR j jjR j jR ~ jjR j jxR j jjR j jjR j jjR j jjR! ~ jjR" j jjR# j jjR$ j jjR% j jjR& j jvR' ~ jjR( j jvR) j jjR* j jjR+ j jjY j jjY j jjY jjY j jjY j jjY j jjY j jvY j jjY j jjZ) j jjZ* j jjY j jjY j jjY j jjY j jjZ+ j jvZ, jjY j jjY j jjY j jjY j jjZ- j jjZ. j jjZ/ jjZ0 j jjZ1 jjZ2 j jxZ3 j~Z4 j j~Y j jjY j jjY j jjZ5 j jjZ6 j jjY j j~Y j jjY j jjY j jjY j jjY j jjY j j~Z7 j jjY j jjY j jjZ8 jjZ9 j jjZ: j j~Z; jjY j jY j jjS j jjS j jjY k kjY  k bjS)  x vjS,  jjS-  jjS.  jjS/ jjSe { vjSi  jjS  j jjSk  jjSl  jjS  j jjW  j jjS  j jjT  j jjW  j jjW  jjS  j jjT  ~jT jjT ! jjS{ " jjS| # jjT $ j jjT % j jjS & jjT ' jjT ( jjS ) jjS * jjS + jjS , j jjS - j jjS . j jjW / j jjW 0 jjS 1 j jjS 2 j jjS 3 j jjS 4 j jjS 5 j jjT 6 jjT 7 jjT 8 jjT 9 jjT : jjT ; jjT < jjT = jjT > jjT ? jkT @ jkT A jxT B jjT C jjT D j jjT E j jjU Y j j{T Z xjT [ jjT \ jjT ] j jjT ^ j jjT _ jjT ` jjT a jjT b jjT c jjT d jjT e j~T f jjT g jjT h jjT i jjT j jjT k jjT l jjT m jjT n jjT o x jjT p j jjT q jjW0 r v vjWm s j jjW t j jjW_ v j jjT w jjW x j jjT ~ jjT  j jjT jjT jjT jjT j jjT x vjT v vjT { vjT ~ ~jT ~ ~jT ~ ~jU v vjU v vjU j jjU j jjU j jjU! j jjU j jjU" j jjU j jjU j jxU j jjU# j jjU$ j jjU- j jjU. j jjU1 v jjU; v vjU< v vjU= v vjUA j vjUB j jjUI j jjW v vjUO v vjU\ { vjUb j jjUn x vjUo v vjUp j vjUr j vjW x vxW v vjUv v vjU{ j jvU| j jjU} j jjU~ j jjU j jjU x vjU j jjU j jjU v vjO? b vjO@ b bjOB b bjOC b bxOD q bv-V k b{OF q b~-OG b b~U j j~U j jvU j jvU j jjU j jjU j jjU j jjU j jjU j jjU j jjU j jjU j jjU j jjU j jjU j jjU j jjU v vvU jvV v vvV j vvV j jjV j jjV  j jjV! j jvV" j jvV# j j{V$ j jjV% j jxV( j jvV) j jjV* j jjV+ j jxV5 j jvV6 j jvV7 j jjVi* xjVi v jjVj j jjWl jjWm j jxWn jjWo j jjWp j jvWq j jbWr j jbWs j jb5 XoOCdq5k{PFjOGdq6jvJHUdq7jj8CUHm3R q897 jjHm3R H RH R FootnoteHr@ q98:7 jHr@ HzHz  Single LineH'q:9<7 j;;Footnote j  5_;:v     HD q<:=7 V(HD HH  Double LineH q=<@7V6>?j Double Line* x5c>?=j5e?>=WW jH q@=B7CAA Single Line{5hA@HZqB@C7q TableFootnoteEGxR qCB7 9EGxR EPwEPw  TableFootnoteod@DRRHH5xE5 HHF e   HH5zFN5 HHlEE DHH5{G6 HH@>?HDo d   HH5}HJ6HHlGG HUV 5~I6 HUV AAJUUh  f17e AHUV 5JH6HUV lII dOaKxSSHHObLK TaHHvSR ` - Rectangular Package &UT UT` % );; Rectangular complex implementation... ;UR UT` . &(define (install-rectangular-package) PUP UT` / 5z/ ;; Internal rep: RepRect = Sch-Num X Sch-Num leUN UT` ' ;; internal procedures on RepRect... GzUL UT` 0 ! (define (real-part z) (car z)) UJ UT` 1 ! (define (imag-part z) (cdr z)) UH UT` 2 0 (define (make-from-real-imag x y) (cons x y)) UF UT` 3  (define (magnitude z) UD UT` 4 $ (sqrt (+ (square (real-part z)) UVUB UT` 5 ' (square (imag-part z))))) U@ UT` 6 UU (define (angle z)  U> UT` 7 ( (atan (imag-part z) (real-part z))) "U< UT` 8 " (define (make-from-mag-ang r a) 7U: UT` 9 ( (cons (* r (cos a)) (* r (sin a)))) LU8 UT` :  aU6 UT` = ) ;; interface to the rest of the system vU4 UT` l 8 ;; External rep: Rectangular = rectangular X RepRect laU2 UT` UT/ (define (tag x) (attach-tag rectangular x)) on.U0 UT` > . ; Accessors U. UT` ? -p, (put real-part (rectangular) real-part) p:U, UT` @ X, (put imag-part (rectangular) imag-part) l U* UT` A ec, (put magnitude (rectangular) magnitude) paU( UT` B UJ( (put angle (rectangular) angle) (c U& UT` C ˪2 ; Constructors: Sch-Num, Sch-Num -> Rectangular U$ UT` k ˪) (put make-from-real-imag rectangular T3U" UT` D (s4 (lambda (x y) (tag (make-from-real-imag x y)))) HU UT` E (' (put make-from-mag-ang rectangular  ]U UT` F 2 (lambda (r a) (tag (make-from-mag-ang r a)))) rU UT` G UT done) HUV 5M5 THUV  r) LU8NUUe !  iHUV 5NPF5THUV lMM RecH$ 5O5 ttH$ )) ; AcPUTUUe " -p H$ 5PN5@ XH$ lOO ` AHH@QD ideHHUJ  ctangulaRU& ` $ tr(Strategies for Managing Data Complexity U$) `  tJ ` ma+Separate specification from implementation mbdk ` -f8Procedural interface to data (enables alternative reps) -f ` ng3Manifest typing (enables multiple representations) (ma ` a)Generic operations UT ` UVDispatch on type ` ٪7Table-driven interface  (Data-Directed Programming) `  Packages U `  UV Additivity 5< ` TClosure UV] ` Coercion ~ ` # Message-Passing HH@RDHHlSQQ HHOdSK5HHlRLL "[XTU@"["[M ' UT`  eU< UT` $;; Trace through substitution model zU: UT` (real-part my-z) U8 UT`  U6 UT` (apply-generic real-part my-z) U4 UT`  U2 UT` Geop -> real-part tU0 UT` e args -> (my-z) U. UT` (1type-tags -> (rectangular) ;; why we installed r U, UT` ˪6 ;; as (rectangular) type! "U* UT` ˪2proc -> [real-part proc from rectangular package] 7U( UT` (a==> 3 LU& UT` UL THHPVjht aHHlii gs)dOUF ppHHO HHt "PLY-GENEUUT ` | Constructor Interface Example ) ` ' 0 UT` ka NU< UT` (a (define my-z TcU: UT` 8 ([lambda (x y) (tag (make-from-real-imag x y))] 3 4)) xU8 UT`  U6 UT`  (define my-z U4 UT` # (tag (make-from-real-imag 3 4))) U2 UT`  U0 UT` /(define my-z (attach rectangular (cons 3 4)))   h j HHOInHHlSj ;;dQ(d x) HHQ aimHH< 8 Tr ` UTComplex Arithmetic (old) ) ` * t u Complex UTfUP UT` UB(define (add-complex z1 z2) ;{UN UT` ty (make-from-real-imag -imUL UT` 4& (+ (real-part z1) (real-part z2)) UJ UT` my( (+ (imag-part z1) (imag-part z2)))) (UH UT` l- gUF UT` U8,;; sub-complex: Complex, Complex -> Complex inUD UT` ˪(define (sub-complex z1 z2) alUB UT` U2 (make-from-real-imag UTU@ UT` in& (- (real-part z1) (real-part z2)) #U> UT` ( (- (imag-part z1) (imag-part z2)))) 8U< UT`  MU: UT` ,;; mul-complex: Complex, Complex -> Complex bU8 UT` (define (mul-complex z1 z2) wU6 UT`  (make-from-mag-ang U4 UT` im& (* (magnitude z1) (magnitude z2)) U2 UT` (+ (angle z1) (angle z2)))) U0 UT` hm cU. UT` ,;; div-complex: Complex, Complex -> Complex RU, UT` n(define (div-complex z1 z2) omU* UT` pl (make-from-mag-ang T U( UT` in& (/ (magnitude z1) (magnitude z2)) U& UT` -r (- (angle z1) (angle z2)))) 6 ` )  aHHQm-pHHlj dQ0-Co(dHHQ1 U2HHwag& (-)  ` + ڪ'Complex Package - generic arithmetic t z) ` , ٪ UT` Q (define (add-complex z1 z2) 8U< UT`  (make-from-real-imag MU: UT` ( (+ (real-part z1) (real-part z2)) bU8 UT` ˪* (+ (imag-part z1) (imag-part z2)))) wU6 UT` "  (define (sub-complex z1 z2) U4 UT`  (make-from-real-imag +U2 UT` ka( (- (real-part z1) (real-part z2)) ,U0 UT` ˪* (- (imag-part z1) (imag-part z2)))) U. UT` "  (define (mul-complex z1 z2) U, UT` U6 (make-from-mag-ang ompU* UT` U ( (* (magnitude z1) (magnitude z2))  U( UT` or" (+ (angle z1) (angle z2)))) U& UT` "  (define (div-complex z1 z2) 4U$ UT` ˪ (make-from-mag-ang -frIU" UT` an( (/ (magnitude z1) (magnitude z2)) ef^U UT` a" (- (angle z1) (angle z2)))) sU UT` -a HHQ3@UTHHl QH1QJU 4jim CQK1(rCbU8CQLig-C UTi̴ 32QM ) i̴ 32vv 4ai̴ 32QN lari̴ 32vv 3C$QO)) C$QPTke-QQ (gni$QR(gl$~$QSmex~$ ~Y)QT (+)gnide(^Y5,D-QU -HQQWQQcQQX4Qim Qc~Q UT` 0 (lambda (z1 z2) (tag (div-complex z1 z2)))) 8U< UT`  ; Constructors MU: UT` % (put make-from-real-imag complex bU8 UT` 4 (lambda (x y) (tag (make-from-real-imag x y)))) wU6 UT` # (put make-from-mag-ang complex , cU4 UT` 2 (lambda (r a) (tag (make-from-mag-ang r a)))) U2 UT` e 'done) bU0 UT`  HHQRCoHHl comdR Tmpx HHR  d(zHHwx ` '( `  UTGeneric Arithmetic mbd&UT UT`  b-,(define (add x y) (apply-generic 'add x y)) ut;UR UT`  mp,(define (sub x y) (apply-generic 'sub x y)) z2PUP UT`  x ,(define (mul x y) (apply-generic 'mul x y)) '(eUN UT` ,(define (div x y) (apply-generic 'div x y)) (zUL UT` H )) ` Ordinary Number Package UTUJ UT`  ut ;;; the ordinary number package U8UH UT`  !(define (install-number-package) lUF UT`  U6$ ;; Internal rep: RepNum = Sch-Num g-UD UT`  U4- ;; internal procedures -- just use Scheme! fUB UT` . )  2#U@ UT` , - ;; External rep: Number = number X RepNum 8U> UT` - * (define (tag x) (attach-tag 'number x)) MU< UT`   (put 'make 'number tag) bU: UT`   (put add (number number) wU8 UT`  " (lambda (x y) (tag (+ x y)))) U6 UT`   (put sub (number number) U4 UT` 1 " (lambda (x y) (tag (- x y)))) U2 UT` 2 bd (put mul (number number) aU0 UT` 3 er" (lambda (x y) (tag (* x y)))) U. UT` 4 )  (put div (number number) PU, UT` 5 (d" (lambda (x y) (tag (/ x y))))  U* UT` " ˪ 'done) dU( UT` # pp g4U& UT` & (.;; External constructor for ordinary numbers: IU$ UT` ) ag;; Sch-Num --> Number ^U" UT` * n(define (create-number x) ` sU UT` + ta ((get 'make 'number) x)) HHRug-HHl hemdR, r nHHS fe HHum   mb ` Z Rational Number Package be&UT UT` I  ;;; the rational number package y);UR UT` [ #(define (install-rational-package) U4PUP UT` \ . ;; Internal rep: RepRat = Sch-Num X Sch-Num eUN UT` ] (# ;; internal procedures on RepRat " zUL UT` ^ ag% (define (make-rat n d) (cons n d)) tUJ UT` _ be (define (numer x) (car x)) lUH UT` ` /  (define (denom x) (cdr x)) UF UT` a ˪ (define (add-rat x y) &UD UT` b co- (make-rat (+ (* (numer x) (denom y)) )UB UT` c ->. (* (denom x) (numer y))) U@ UT` d UT* (* (denom x) (denom y))))  U> UT` e  (define (sub-rat x y) g-"U< UT` f - (make-rat (- (* (numer x) (denom y)) 7U: UT` g R. (* (denom x) (numer y))) LU8 UT` h * (/ (denom x) (denom y)))) aU6 UT` i  (define (mul-rat x y) vU4 UT` j ( (make-rat (* (numer x) (numer y)) PaU2 UT` k ˪* (* (denom x) (denom y)))) U0 UT` l  (define (div-rat x y) l-U. UT` m UT( (make-rat (* (numer x) (denom y)) ScU, UT` n UN* (* (denom x) (numer y)))) HHS akHHl r xdS en aHHS! bHH )) )UB -> ` o (dRational Package, contd T) ` J  UT`o ( (lambda (x y) (tag (div-rat x y)))) 8U< UT` ~ 'done) MU: UT`   bU8 UT` ";; External constructor interface wU6 UT` (define (create-rational n d) U4 UT`  ((get 'make 'rational) n d)) U2 UT` Ra nHHS# UTHHl epRdS[ ttUPUTHHS\ NUTHH0&bd  d))))    ` alProblem: Rational with Complex ( ) ` K ag dFEE4 h UHl e& ` r su (& ` Approach: Generic Number l{_ UT`  su a{] UT`  UT;; Generic Numbers: mu{[ UT` na-;; Generic-Num = Rational U Complex U Number g{Y UT` L de @&  M ?Allow the numerator and denominator in our rational package to (x& @ M x $be Generic-Nums, not just Sch-Nums! *& ` N  HHS^oinHHl dSa nRa nHHS UTHH7  ` O !Rational Package - "Genericized" &UT UT`  ;UR UT` ;;; the rational number package bdPUP UT` #(define (install-rational-package) eUN UT` ! PrB ;; Internal rep: RepRat =  Generic-Num  X  Generic-Num zUL UT` $ & # ;; internal procedures on RepRat UJ UT` % c % (define (make-rat n d) (cons n d)) TUH UT` ' en (define (numer x) (car x)) UF UT` ( um (define (denom x) (cdr x)) gUD UT` 6 de (define (add-rat x y) AlUB UT` 7 an= (make-rat ( add  ( mul  (numer x) (denom y)) U@ UT` 8 n6 ( mul  (denom x) (numer y)))  U> UT` 9 2 ( mul  (denom x) (denom y)))) "U< UT` :  (define (sub-rat x y) 7U: UT` ; = (make-rat ( sub  ( mul  (numer x) (denom y)) LU8 UT` < 6 ( mul  (denom x) (numer y))) aU6 UT` = 2 ( mul  (denom x) (denom y)))) vU4 UT` > UT (define (mul-rat x y) U2 UT` ? ra0 (make-rat ( mul  (numer x) (numer y)) inU0 UT` @ l-2 ( mul  (denom x) (denom y)))) U. UT` A ri (define (div-rat x y) m U, UT` B & 0 (make-rat ( mul  (numer x) (denom y)) U* UT` C e 2 ( mul  (denom x) (numer y)))) U( UT` D (c x U& UT` T (! ;; Interface to rest of system gU$ UT` E de ... 3U" UT` P Al done) HHSu HHl  dT$ ulHHT% :HH% y= (m ub ` Q ) Rational/Complex Example <) ` R  FEE4 h omm me& ` ٪ =x{_ UT` Y (define z1 (create-rational y){] UT` > (create-number 3) U2{[ UT` 5 (make-from-real-imag (create-number 4) T{Y UT` 7 (create-number 5))) ` A{W UT` iv(define z2 (create-rational & {U UT` (create-number 1) U*{S UT` 5 (make-from-real-imag (create-number 2) T {Q UT` U&7 (create-number 3))) UT {O UT` .  "5{M UT` (mul z1 z2) J{K UT` ==> (rational (number 4) _{I UT` / (complex (rectangular (number 6) t{G UT` 2 (number 8)))) {E UT`  HHT'HHl ` QdTl RomHHTm Y HH%at > re ` ڪProblem: Mixed Types ) ` ag r? ` {YAn easy example U ` S : r++ h umn )& `  v& ` teNo element in the table! & ` W re -& ` U UT Approach: Mixed-Type Procedures fr& ` V te m{_ UT` ˪;; In the rational package... *{] UT` s te+;; mul-num-rat: RepNum, RepRat -> Rational UT?{[ UT` v z(define (mul-num-rat n r) T{Y UT` um/ (tag (mul-rat (make-rat n (create-number 1)) lexi{W UT` t be r))) ~{U UT` *(put mul (number rational) mul-num-rat) % `  % `  Coercion % ` Y  {S UT` X (define (number->rational x) {Q UT` Tl) (create-rational x (create-number 1))) HHToHHl  >dTpHHTq sexHHN S um ` Coercion Table in ) ` &  ) & QUR UT` m2(put-coercion number rational number->rational) h ` te ;|UP UT` um"(define (apply-generic op . args) UN UT` (m( (let ((type-tags (map type-tag args))) agUL UT` t # (let ((proc (get op type-tags))) ` tUJ UT` T$ (if proc TUH UT` ) (apply proc (map contents args)) UF UT` % (if (= (length args) 2) UD UT` {S' (let ((t1 (car type-tags)) al UB UT` ( (t2 (cadr type-tags)) 1)$U@ UT` $ (arg1 (car args)) 9U> UT` & (arg2 (cadr args))) NU< UT` Tp2 (let ((t1->t2 (get-coercion t1 t2)) cU: UT` 3 (t2->t1 (get-coercion t2 t1)))  SxU8 UT`  (cond (t1->t2 U6 UT` ) (apply-generic op U4 UT` 2 (t1->t2 a1) U2 UT` ˪+ a2)) berU0 UT`  (t2->t1 U. UT` ly) (apply-generic op (U, UT` ap) a1  U* UT` p 4 (t2->t1 a2))) UH U( UT` 4 (else (error "No method"))))) 5U& UT` (=$ (error "No method"))))) {SJU$ UT` ( HHTs HHl  l| & T jV & l| & 7>lE) 'plus[over[num[3.00000000,"3"],id[plus[num[4.00000000,"4"],times[num[5.00000000,"5"],char[i]]]]],over[num[1.00000000,"1"],id[plus[num[2.00000000,"2"],times[num[3.00000000,"3"],char[i]]]]]]t1-H{n|"& T 4lUTdT  HHT )erHH >t1 U.ly ` ap Polynomials () ` ap I'' h "o to which we want to add p j `  }UX UT` Z ";; Term = X UV UT` [ $;; = Pos-Integer X Generic-Num U&UT UT` \ ;; UR UT` ] d".;; make-term: Pos-Integer, GenericNum -> Term UP UT` ^ ;; order: Term -> Pos-Integer UN UT` _ ;; coeff: Term -> Generic-Num UL UT` `  UJ UT` a 1;; TermList = empty-termlist U (Term X Termlist) o%UH UT` b ,";; d[p:UF UT` c ,",;; the-empty-termlist: () -> empty-termlist [nOUD UT` d ,i&;; empty-termlist?: TermList -> Bool dUB UT` e i],;; adjoin-term: Term, TermList -> TermList yU@ UT` f  ;; first-term: TermList -> Term U> UT` g $;; rest-terms: TermList -> TermList HHT )HHl H{n|"& Uono4map U ajV & 7>lE'plus[over[num[3.00000000,"3"],id[plus[num[4.00000000,"4"],times[num[5.00000000,"5"],char[i]]]]],over[num[1.00000000,"1"],id[plus[num[2.00000000,"2"],times[num[3.00000000,"3"],char[i]]]]]]> TdU3 s-;;HHU4 `HH}rmlist UVVis ` s ;;Polynomial Example ,") ` t ml :I'' h u is g becomes j ` w -t l}UX UT` x B (define p1 UV UT` } n- (make-polynomial ->UT UT` UT x UR UT` er (adjoin-term UP UT` ;; (make-term 5 2) UN UT`  (adjoin-term UL UT`  (make-term 7 1) UJ UT`  (adjoin-term %UH UT`  (make-term 3 0) :UF UT` $ (the-empty-termlist)))))) OUD UT` Vp1 dUB UT` E%==> (polynomial x (5 2) (7 1) (3 0)) ,yU@ UT` 00 HHU6v[nHHl 000HF&"& U9U3nD& & U:U4=L & D& & #F+'Hcross[num[3.00000000,"3"],over[num[1.00000000,"1"],num[2.00000000,"2"]]];;dU^l : bomHHU_ x BHHUTlynomial `* UT Polynomial Package oi&UT UT` ˪%(define (install-polynomial-package) T;UR UT` " ;; Internal Rep: RepPoly = ??? PUP UT` rm ;; internal procedures eUN UT` te. (define (make-poly variable term-list) ...) zUL UT` (define (add-poly p1 p2) ...) t)UJ UT` ˪ (define (mul-poly p1 p2) ...) EUH UT` x  2UF UT`p U@& ;; representations used internally UD UT`r ;; for terms and term-lists UB UT`  ... U@ UT`s &  U> UT`q 6 ;; External Rep: Polynomial = polynomial X RepPoly "U< UT` . (define (tag x) (attach-tag polynomial x)) 7U: UT` cr% (put add (polynomial polynomial) 0LU8 UT` 00- (lambda (p1 p2) (tag (add-poly p1 p2)))) aU6 UT` % (put mul (polynomial polynomial) vU4 UT` - (lambda (p1 p2) (tag (mul-poly p1 p2)))) U2 UT` al (put make polynomial U0 UT` P6 (lambda (var terms) (tag (make-poly var terms)))) U. UT` ag done) T ` I rHHUam HHl -po|O%U  Io |O%?Q'UT'plus[times[num[2.00000000,"2"],indexes[1,0,char[x],num[5.00000000,"5"]]],times[num[7.00000000,"7"],char[x]],num[3.00000000,"3"]]UDH{~O'U-sto . =U ==Ǟ X '"times[num[3.00000000,"3"],char[x]]<'=UTplyynd500Leftbdd61 Rightad7mu ReferenceldD dKl-1 dalutdhUTdms (dU.dddd d Ud o d 'd 0,ndd"]d"]x]dOd a l(f a CellTiny.  f b   Bullet1d\t. 7f cCellBody. f d  CellHeading. f e ' Footnote. f fTHeading1Body. f gT Heading2Body. f hT  HeadingRunInBody. f i l yIndented. f j  Scheme.  f k 'o oBullet1\t. f l  y TableFootnote. f mT  TableTitleT:Table : .  f nPTitleBody. f o T  TableTitleT:Table : . f p   CellHeading. $f q $. Bullet2-\t. f r   CellFooting. f s  SchemeSig . @ t  oHeader. @ u  +> Footer. f v Body. f w Scheme. f x THeading1Body. f y Scheme. f zEo. Numbered1.\tNumbered. f { T Heading1ContBody.  f | Bulleted\t. f }T Heading1ContBody. f ~  Scheme. ff Body. f CellBody. f Equation. f  HighlightNumber. f . Numbered.\tt. f CellTiny. $f $. Bullet2-\t.  f  Bullet1\t. +33f +33. SubNumbered < >.\t. f  Body.   Emphasis EquationVariables\tt         SchemeFont           . Z  F Z Z  quaThin Medium Double Thick@  Very Thin-=-     oH p rH p rH p rH p rH p rFormat A   ou v b vu v v vu v a vu v v vFormat Beue U e V UComment @ afe d BlackT!WhiteddARed.dd Greendd  Blued Cyand Magentad Yellow  M.Times.P Times-RomanM.Arial Rounded MT Bold.B M.Times.B Times-Bold M.Courier.B Courier-Bold M.Courier.BICourier-BoldOblique M.Helvetica.B-Helvetica-BoldArial Rounded Monotype Bold Courier HelveticaTimesRegularRomanrBoldedBold RegularObliqueItalicu#ӱLuw|aHW92<;dG;p=/lit 6r!QD= lz+{>{|>22lE+9|zO!,)P2.IY<2Ģ:`Ɏkq7q28)438Fkz +-Ѷ0n"ga