EP*h{-vx \LJpYKQQSDT@D4+@PP0@PQ "** dxWf*jWeefiw-8.2(e}w9<>ή qyg%mf9SqY&i£q %KVqUAJUFQP`u7b)\74rS?>V3ag݆R$ʣ :Y@ۡ_υJ_>ʂ)R2^>,ߑ9ӂQ`uxєn C}>tߋ8'ciI 8JTeSHO.7A7 7ٜDeUc>qiaHYNK[a&)%Si?T=*_+D7^M9aLygӵ"ab fuZ(bdq}C|t9˒33ܾy|=S{OҢ_cJu'hχ駙,)AL0/ԺxJeв E%&&}.thFvkEkGm7r|<2e;Z ~ (]-Ga_v ZL+vX+QdHk-L˧4Vkubz:m0h62-(e>jp c>,WV&dFt'acj qBw`n ScC5$n%H2d]v.nu{؁eY9te;SBKǰ곥>nׁϠ*2i=^]{ΜĄ"(ʮZA%¤VHWEf,8j\kEw-,jC D#>8ϯUFhMaoLG\~Hfp LqDKY<%E;dIA-0d#O<6BE8~p΁g,]hgXS9ثjUf)#.H{)eWX[Tu1eޯ;Ѿ DbtJKi_sfkhBzS*TA-zB[hv`2kQlD2k,Fp~\og,9pϳ{K$ve0BO&)!!C|SS98)\klCcB=T9 b2)2H6z \4i47DS}GO`dbu6|rGŞiC0|`y&̋س,9؃^%>{)~` Yb/dΟ릵d~2DqԲS_-^ד֢H| % geuLΖ磓>3}7`HmjmF[gKK[86A23yhdWzN?f9OQ)j6|͞QJ{h}=|kࡘ֭H>{d uP'R:3`t7[3Ycɷj~} ![D }8St=g *uzSF v"%_9A;eҾ) -qWJYa{a!` eh 갥a+}gӎ/l8 ;D;&,$lH:aS`?`sS]}An]VNd?n%W3ybT~,`Ɂe>K)P}0HiD;~:'eWC'Jc rV@xvا!gvߟ{rN:3|;RS {B;dh[=֧_ B6I,Vi&M\HoLR\ݪ G')ל$&2).I٫L\EZsi8Pupu7fq~\Wj`Lf|] |yaf{9Xµ6 R<՟CM,1ږbOs #‚,HK)H @$ I6,J֖L9:itNCt Kv&R(?E[/| ٢l :lX9llQ.<9eD]lہڇnr)Y9r9jF>_vv,d]mG9dB)΁M)aIYQm&Cۆ뿮} hGyC I,#w #i)#RX߈ ؿqHn:UM2)F|iزtoxIO j(jm^Dz Kaf#djnU띍QT#Yۮ1-`^$1)-b,eRqezQK{CGO☦p]/翏Ѻ ]GJSHVs,Ql5>cۣQƶևFuV_-+G[lm}3V3/Yl]  uY[|XQ2v l&ر{JJ{u`B 4){^:W'iv t*$v ` j-dDTSÍ-ʠdga?ݺb˛j"&lW* s3X1BzRHgڵ$cڜF{/{C`O{r#Mp6yľpQh?%ۖm?v ;&vNl:lvΛ~Am.yq\h2>u]}{H$-:Eބ6'E%R(w 6#Ӄ9÷Eu(JbkN}#|w>j=1rԐ4ֲ AOi O7(-#>`cf~rGP7M'T!O"?P9Hژ#9%;';cfŎyȰeȳhrQ2y}vv(gu9}@Ƕ|[%gBdLo1-"Y[9%NVneR쎔v{5:="v 2EIˡZw9bS"6Fc.!Ʊd,2ylz~C$f#I1>R3w;r@ R ֤XO3GU&CR{52N-K},ձP$՗~7]/D㘊qôظ"S0_IV[lv6 l5C{(?=HAe,6ڼطTVKC+(Mi^ fX27^]a^qRu$pL&~6q(]/Hs+mi!܇h L??Ƞ2DYhVU|}wc%/ yQ3>j%f]&Y2 J輟IkdδZSƖkypŗ&9+M?rTG&E=iI\0 %H #f,=SL|=uHQ R#5 f7Z64+t,"J>"r$yw?򵌚s/S% {w^=Tv v: /dKٔ ;MdS):˳jԶ 3Ĝ!nr2 g1%p=V&$9b2dUN19 H.:[Wr[Sؗu4$}bvuwjx@ݿДFmtX{\a,Bm8[KE8L! 0`M7 >>_ؓ]wx@N2f"HF:0øϛt:$LfhLy4 zv>#gatXS؍_2(aLlt8|hK?ё{r7lA?1^P2_A7"Tt'}hh:v6DnnW왚Y!z|ho1q:|%|2C\4]^ yތ_::,C:,AwwR^J'݇ʹ>t"ޕL|"pK ?1\p"lK#ys8" $Huu_+^E!wC6<`2C5}+uM>/}Ӣ6vRG?!PIŖkN`8CEWQt*<*̋E~a+%>?)~CෳLF"IVy5_ܠ7r 3}J@zy|B{d'Ýڼql|7o+FMWƓ>Gا]"<2!s[zo^mH.^H&򲎋RN1>N=mU_:KR"˜EIK1/=V=*$%/$qas# _(_|)O)0OL]F#b1Fυz]y=1b1d'csr*̋p(?ޅE}QLF"Ink&ؠ7r 3}Jٱs{Dx`2C۝- H7%-V1Hb'}f CLfq qnƃnsQ~;`KYlPC⊷?#x G&>l>1=y"<2!z\>P͋C W).:.IB;dRcvwj"oZ94%[H}dRWdLI1 _ z.$%D^\Qb.WlCN⊽h qE qq/Ǯ;#W4}s+VWz\+)?X⊐)Zߋ+֋o,gl"*e/iU.̘9k2bs\EE ukYdktȳҾآmܲ"3? =[+rz wQlAor 3}J@<[8Pv'b86}J囊}o+F8@ '"I#x|FG&3cS-o굾yk`Cr*bp# -&kEV94%_dR[dLI1 _ z aHc{E8ߊQr K1}Jq~ho.[%;b-?!.U}l7[t![tqvzlA=b.[Lߋ-֋}Gbg'"Jًj'8s!Lx`%MF->4d$2ǘ=2iD Ou{(چn;c:<]w#7>1J#X8Bd~]lPCxyL]Fbab1b%dT g];<18=GJ.1*[Qf|Qbu{1zq E|3ܓ ^E qH%Aal%Տ$ Hx')aGRG&k,61\1E|ˇ`P&2L G0Lf&Nin?FH)+mFC}Dl"IGPG،uh:7OG2}J@-0F&3dh3_QjK(w^LG)x# i)OLF"I)?]깮ۋpؐ\0JqL:-qў &o;<ǷU:PcbntȍV5R&dq/~ɘb[GI&3K5э1r0>LR<ܯ!B&3oP; KWn>UyL;3bϣPx)-y4d=_[ _ϣ/ h ={ϣŁuSg'!G{W){A8jG)_BRn"鍙L7o;ID|Eh]p*=Dkx7,!gH 9 %CB@ 2 뿄}sfO*9cmA~#yu0'=@!ЯZ[1 #o &3k7Ÿ%| g #xH3֛|mO)>A+Ex`2IHw"ncۧպ|SOgͷ?#xLGp~?c<zh)OLF"<6B7/ˍoH.^@?ad\0젔/;u8>Aڔ|F 19-SRL—aa RM1nIl.aSؗ,Dx`2-ebH~1tee bq_ (-[~2C\܋[&ܪڏ1Sz; mzʢҟw\Cv{N{4-K-)fr_l'qK Ae8"$Ɇ[BR—v8&…\0yRRP3]?&tN,Vk2TajT/w%Ҷ"&$I%{~qK!N ʁm Xl:uP:b T)g ݗ/Kl 1PY'# 9/oB 4vH_ۡG_"h&R&ۥxH=u<d;ű]'] gS>'#۴LfǦ/k}"~ԆzE2qOE`2"(oshJ1c2gh{&3d>.VAg/=V=&$@e.6}З>![&Cž65ozbָsk+Rr=s78bh A qq/f׽}5+8&]RNAxE{?I@mLj9'ϫ1ֈ*[@+uhˑA'w yZ7b^F!%fdw;Hq@-#L< / {1zq Ei3hr$9nG>n!LfOLEP$3{ja$=FHB D,RB /Dnn:9&9PI~>ȳ%1IY6rE&~4x;hN!LFU$y"fxNCx'~ļտ<?ADx`2ߋIbΙ=n;GMece>%ƙT \ Bv19y^LRî{$РYCItIĀZ\Id1r;iVb27`22%z}?t !F̈i^7 6tL~MM -ЧY0go̞@~hYDekkΈ]=y^,"dc 9ҭ%t/)'y1ؘ1 &kAtk~ùOn\)tc.$A1Gpy`ȝm(a(ئ|p\:o\@y>׷c#Εk EJ|:5|f\oH$]Վ /̋عr> <}fS :L09&C&eTƷOtM>⏷?#x̓G#tfGLfǦZEԜz|u?opd|;mۺ|SiqL Й>&KAUgQWw2<ɾԽuQAʗ>?蜎Dx`2iRTo];c)~- hUͿ!x,A,y2i3G5U|}h|1 W}@M2 qq/Ϯ?Gs"=gɽHޝ\HGQAfȧz E59?V>ˁ!B9P=$d7geE5CX;xcc9U{( Dlҝb#%=mȰ룄}믄[MŽ$"{&ee |&G0$p3!.z_Aor OCsd 6Fީ$o0)']lgQ*6 z}b2)&o굾y_mqCr"􍹲#`٩;mw6%[HcO$ ?o3}L"6 =I֎I&3K݋M,Ч>a,xoy`2-e&"1 &OMDK0 !.&U-_lrxԿc{jc{Hb{hlndN^Ih>I &p$dGR6Ǐ/&ł?w0@M}"&?D!' shFS<OCk4/2QRe[+3W1ǎkD W}$&&GҊ+%X&)MΘtX>lwIRVJ|I縗(5f =^FKd(f٠7gxЧ>? C&#mS1K>囊},o+FxxN&CR{1&\.ƙ6fٙ`b[M/fiezbm2d,fNd1i:4Ϧ,S ,!=1ŘeX"J1K/dgI1dʉ4gv<7"";`1EsC.)ʦU`]C1E1&3E1տ<;AS> MsR6x+Hٮ;SıS.T.x[35r(S =bZ )o_굾y!^qLDDž/ w**W:KyapK~ge"LIaL:$b#l"L2.T߉ҽl1ur KAx"<04}JȰ-s&aY|,y߻$)}b}A&7G77Lf' #xxA|rSO@!Q&*vN7ql|4)']|gr(߄ =>=%#)7ow굾yocCr",SLFUک;mU :d6&973}L" =Vua R⛷Q6Y1A>:zdh[jLxҽҵס}٭n'E3C'N `߄⛪//Rf)7[H '1k\ !Ə_o֋MK^dȑnW|3&ߚ!LFV%Q2~gΚ6,Ȗ{ :7[lC爼3l][Q#}IfywJu-B`6PY&#$] #x&R0N =P$܉Ʊ]']lgQ*z}z> ؔc7 Z߼!^qLvjhR &cb8>DД|)ov0SN&EL-BUEd2jFIRbw/}1Y"<0v)u/$~Y3Cŝd'[?VgHޕ>7P($Ko=LYm37ø~Tqy3` S̺&:`E1N>2;֑/k򀎇H mK٨i(`A_'G<^]~.`WV{83䓻O,ަ2 qt}r{ }>4ӛ>NK_Oν^sC+i J'"y+ZOj~O =5pd'Y$yaO#1~LU}2$œCB˩T |jX%o!wJ!Ϟ9 dL@ށB=fvt,p5{&t|m=c=q$D^!LFݟ$wбs3jDm~n}.,Í6|ھGRr=~1 #NFK0Cfތ_uR>?~x>ɘOdkhVrj~O?}'$'ZP){N2a4v|c, c %n)?!vgOB!U1^AѭwM\"|1Ycq|gޣ3&YV`]93}>|fL~HKc2I Ex`2CA_lbصQ\16qfg^@Jϼ`3Cf3_CMZBuPcvVHq[+~\6{F)կqŠk\iW;]F{mjY+6͹@ rzj%7tlJDgqUkE-UsfLܧ3:Y#ĞmR $s ).2O2m:LGu(=Fqhcx; ]:)K뉔8gJXgmb[ ;&B{zo0~oqD}t q.~o GbK럖]{֢vZt J4Zn v}zvRk*i5IZ녔Wз;1q8+L[EI^H[9 \z; mLm֊&YI>ǵuv >'b/,%tIkٰךfbKyKYq!֎џC[8n%k٥ ,$qHã R*hsg6PoVmN Է~݈߷~:[AؔMdpd#EGgiڞς5hy0ٚSGNR??b%S谴G;%- yg۠́W9e yY#j9`ΡT>o3) av{}]=g|WecDelcM}WB}+ڨcw>}<'rσwYw>:ًv. }!Y0I;*P1Q$B_JӖhh~&:`0f<'kC]WuЭ~ K eE#reؕdJuLu}LffihJVNMau0w 3׌?fu;`o9*x#ő*fPH娓 è.Y>WFF1cz16-ΓCڣ.Ǝ;q0vܐ.탔}֊oeczFq ұeSW8.;&Czۨ9)G_?A')}I+8f tJFw 3(P Y.>Y:?iT}:9>wPPhRL|у#h}LpTxL h}˔j :ΡWo,}zXŦntu˱v !6NIo׼ݦ=Gc򐟃dng-N}\q~n3׳R1x|yCgz!v־oM sKƴvpS_u^p^PUC~gQslLN6h4Stȸc"K]M?E@p[%B.%[P]] Kޠ-Z֬Y 5[n4,"r%;u *?<_\@ݽ) ^q*euةU1rS?zi 5ew7V|f{w>g+f+]b=m}oX>.x.16T_*1}no`f{G`ȬSc45ÑwWglm[{۳N ~{'!DY[0&.|k| ۭp_pB5.Iޗ#P׿`r^m" skMԼ׽4O.6?ngU0},4ƣW_r jE9©9|Լ4ODƁ9(ԊB`cx.&yv^?Nx?czEqxm­2a/oYqNjة|G7 u~hSuǣjźTfn{Wk<>-3iW@Ӌ]8wmRUϴʗJJM0SxtڈyaͷngDэT}]]+m8T?|eIX]agSgMDj<~NZΏ;aR\.ٶh3 \,/V]6nk^s/K<-rMN}GٕA:c?/lwh=`{xtퟻtsHyie3!= u[!Q9r\mr ؒ @xݟ9rhcᢥ*gUGF87Tg\Ck,Ǜ9D3s/.tMPpi֧=YYs-v MTy/1bMr8e&o8Ϭe3["UDo-g*-ʟ貫mæA[TpԺ^CzkZԬEkNgKlR۟[~ټG+ouVa%E͇"m9zeK!11 SV-g<:8d:{UY#p ڤpX?OD`.- V6S9.߶͙3NuZlzA ]NPq粏 {woJ_$>gDtϤA/yEc5GF]_V8ki'6Ltp/^x%Iw>!a\?LXrXkmmx}"b~~^ڵgw2tC՚ϬOOCnʜg-8]z4Yv 叮OC<zkǖsMw)G-((R.9u|@h@бR#^&C3:>;+<*}#tK*~iHcRBGz1w F*p3]6%bcSJMyakߑUqUߏexSW۸Y}ayp_V~{)W̯Ly|Mۻja>>3+/m>1+or^lbC̼7V,+;1P4\,Km#W<hrHS̟>rc2c\'$WQf|{"긒65qm4+4۸?p a$9|1wN \pIvz_E׽Ξ9Nŭ+ދ]{H1GCYb6|gڮN|<2vwpKf/:@^Pi&{TL?17Nxʪf{[lZh<;׭+/"/s]JQYrꡥN¾νۚ%.Rpz!JcK 4Iz8qQ_t +:ofΝcB7wޢy@ܲfiV[-Ԏmک?3˵P |xȢgsc4Wui+x&'03qD[Kr`}êQ۫CV;3ꢣۚpNv8lBﰳʐ~ Ƙ; + &bF\Mᮽ!4Q^}L&" 9C+L-3?LR=X|W55(.{Y* mWRmrxƛ%\Ŵ\n<ֿuߍ뙴$^h%wGu>_wN9?8#ON}H1ru^7翰m~ǝܱŦ'*oV;r{.q I;Nkcm2%.f*IsS ?.}^?בSz/([Wqyՙ o屔 Q}>3K͊X=6w0ٮ{}/u_[COLţ~+I1];9]b,烇VAI6cfE/gAr?.?%/VG_povhT=hXTĶ%ծK͔vaݒ׼Gb+VutSx,H=8qŕVa/k- k|׫V=anâH鎮1/n7Trorzsi/q\^|s%:nhuiGt`Ӓ V=iԳSbb^¡1A%)̲Jފw61EC;w_^ ~eNMUVŢCO"~ȴG{s/'7a*k\"twE ΎRT)9`7ia~q&'Ul_fNg,c8m+"_;ѹSqkxuܲsZWGn /ϼɻ_'rq^^r/{'̸l$-۟e{n4 [N~$ dˉ+/']Y3eq9 p7>)152g!b٫y+ƾXmwu8k<';>wB^I.`6x}7wV~2qP6ʈO<>^e\þWƌ=?'[';kn/~#n9M)4ϷTMtQ}X^oÏc>l7ߞ^c+76Κߝw~ǁo,W>`~K'ƜNⲋ#Vuϴ8>e>{vb:kҪW?)&6GoP9zЙcn;9)HUzN3g+NNy9=_;kRhSf%kW'U'{滺{]2"HN&wRdIDƥ!&cͽF~s}M߃O+2(o|n9SE|壝~}ߨ&Tuq^~;w[e'|5Efͭv^k㨒wr~okL!KNQ/ל뽨 OT( iVyՒ霙rr{}BY(S$̽ڽ˫O60x$?O,ϭ3En?RH'mG>tr7W6^-#8|]宋NVk͞\hfLY±uq-^pݯl>u<=svYFn6T~Kz=f|+6z_&txȔNiV2Zn5voE^ eďs4IAY^K+T*儝Yo6P3籾S4^oٯfHOWj{֔?f=vyx&ΊX.u}qɾ xuYg-rV,i6ٵ">5wޅ|:~+6L;h.N!x͊('*xjdO^'2(?@yl`pȀ9]m|$z^JMfv1jS]R>,|O)\mńnӾkkŠ7`΀Y6\Ż\s>K<@12'~A{#ϿSj`+G6O[f탓6XYzz34βJk2Xjwtֹ_7YJz%W^tУs{<4ȶksۭ(*zUI/LZߥÐg}ok3WK:G%Gg_T4)V.8(26}s߭&-]gm(2~}wDX.є?똱`oaa%mti5ϒo֜x7{M9u&8E">yru>F^N_|'Ԗ"KB˳ ei_U_O-ƶq+#b.Sp>rz&Ĩk.;|C^6xKa{r[MX:SC^R֮9UCX=p[c_׊=j$&Ԭsv6Gs[1rھ3x>NεΕy.Ή;/t|nEWfk*z~Zj|җ.Ě?U^B#ph};{Ml5hs.S;ѹۺ)gc(V\dΥ>6+v_Km 納A[xXGLvD{;;̝*|D*j?Pn _HVmfv<$W}VZ+VZ(UD?sx&Ju/G꿞%ꡍy%Y;(gST_AyP>l_j/xj~|ٶϽGrE:I{{\a7cumTOr>6s@Zb2w@u(ǣ2 /4QfMp\oNx&x:&1? K'd/# sGptTsy"KqI_G0#6i׳Y0gOp}eIhM8nTGn7:FUz!#ȑ Q N)c tN۳"?gK1#%!7dT/&EΤʓEW[iu"LJ%qn7&Հmo2$Vȣ.A>_|{\W>ưO~xvg!¼`|?}S}|aXbPJ(XnYkCyN;- XY. pR),0F'A}@'h -Y^܀w`l%| >փkFT y`LS<$uQٵ -: (S/.t2+5Ŝ®&X|Hs!mz8t;tmo~m󥙝fX<^dM/e7oLoֽ}Rz;r#[u𠣅ǠysXmֽ}DͪڷɹߧK;G;G;Gg?'c-[:uW5:9Me^lx\]Zo'[i4V\tw4mkȨ9Kk:v/5}F۩N =«C^~C-ؔ1\mzy953uXB?^X:wk}~ jWEYg{WՆo"H$4d$KdYk%,oF#JkiV*Z/.5}grI"~}sYνs7.ۼwㅒ]8u|~$}d鑙}nWW墫y>|mUޝڼa|fayޙ:pTY/Wf1b'‚)9s;ݲS9zٓGwH7s7ywio>kG_v~ Gs<CsW1h> |u\OܔFN?yީ[~Vy'(+:Fn9/ߕ=}[tW, '+;[GVc\'1u{^ 2{MfQ1MWF G,} )kOh㽢a8mZuߵZigJ^gE ՂVg.ɭmhЩ {6k*>]eeG֊-?gzӔ+t>Kq2bn|E{tiVE{+Z{*X~ykז֦BM ø.($i1\CB4}=3g.;3[Pz&{'FJĿz9ۨUL< o0S7iYNj.ϩ=M%wB9'/ē 1]F][YR`\` ˓`ä#_Mlz*0O\Pv)ȿ0O<%'쏾,/6, ,@/ˊuX~WJ{Z,eH\/F=h7噾~NPP-O{}~1;#;v,~QަR= |?x ԃS=/ Zrȱ|?[bi/NŶ`oɏٳt翧lߵO/ܹ$?B=hӗ>URtܓƟ:pኔw˪K|E{y??) 衮g xϩ[k[i؞fw5>gΌo<}\|:f6}Oߵe >.GoڬYq3ޚ);)-u{Z>kqn^LZH_ھFwK Hh1dPx7xe B_I8p7>հ]l'.-p{{\Gկ߹Iaم'rS^2]ՙ% gJI_f@p! fR>ge~ujZ 'f5Hrh8zi ?dM ԙ_tG*q wkgupΆ?G6 /:^2_{!zٱ>7fnchFNђ%F7,Ū2epF KE:Sݭ]Xf|CsS2ߠȡ:vۥQ8~uk7uȢAcFMhλ}HIE-Z}BOŷ]8maԵozMMX?"H_l.H*ߺ|>޹#Zz䦈L멨kY߻Q^Rj@#|TuY.y{BD jݩ[~~|;;vpO9CG&G,-))~꥝lmKIabɻ+(|tL2N [({x^+;z㖏2εINL;кq =89l[\)z%>ǺY gK^ pJ.}9Vw In.mڹ>'-߸ퟠӮSO:\*Uœ۰Ls.4 q*_? sq( P[Rjv_LG@R"Q_bØ,ž^ė a9tӈ }23xѪ)XZ|ξr(pE>/?Y^}/~}Z?m~s珪;l>@UG$9wx/V+tdݹO^P, ,",P  hO!/3 p':N.*̣_Gr4 p]KݘhKftDhR": c{/ZfZΗR\"}T t#65_=k N7}ԿK*Ԥ^Rwz}|5Eoe?l++%nKa%( + 3Rcg$/<,9NK")AGK#E0FOEWFr-nĂTkdYV~&p|olЅ~^ՅÑۜNx-lF_jBl"arxK82 g'r/ɰZg_`Z_5 =<'6`uuV"=|$ >eޠ)aI1b_ͳg™X]],az)@U XY[Q7:\g`$yFq t4ʎ&Җw뵴7rN\8*0%aJv^VkZsp^1-y1#''NHK-HI.MJ͜>+5nވ铇MO:uIswL _aɩc%&M153sFzQsF,2-+sS/W3O*;, ;G*HZf̌#_?1&qnz<.%~d֐Duj:-3㕸CIcS&wRP22"60.iHbtfM[JA1I.n-E 0hx#s6bUBmCF5_٣evRM-=ib!,!\dhֱ]˔E+"^3zF~ءHL^!R;+mBmM굮Юǒa)+Ŀ1[2IkK^RMGKƍ%XԭK%hʴ'.|ò6إV]6iŧSnQm{XxIvcg$,0eX tHgq Hw¤juZ ͔|-BL;C?YhvRF*Oi6;+C'd[u[?gUB'{uI7Wܹ˸mڨi{շʷOפAofI&v~b 2s ܣKKWMzu#WkamƺvVq56 #M$*US[is@ۈXk[`=5թNN>FȞ)#G o+y^":tm#c@x^!1A\yt[r(|gϞ]tj3$i ۇү~z7\? c#ƇX٬|{x55\a|D'}.NM8P?pOs{ẖ'=~Fdi0PFWF@wDHU A#F,> \b P) 81 g#W>ƻ a]=7a<]+G7i C,cƍaQ/yLw(]fsU;gatsBU o*VwN͉"'O)7yV?'-kNL =WD~𤧧ڲeKfZ͚5AhժOqq1ZP4Tc6SG. }9~Qz#0Y.˯]ZymKkK,_/ᯨ9\m5FbE9YΡr|!?OD9hn#ǻsD(F'RJUXK(Y`e-3<J7k_1RS18.I~ Cǥ^mo}mZ0ǛsGqYڍzTq6S3!iYaq,XYW-M b"tDq/=/^,,)S>6P-̜qǭ>,^t#,pHf~eh9b%2/>p"h,,M s /K4^W;b(w4Ɛ 'a7VƯQ\1aiu>9g/ƚf⯞ߥf:..N~,3ucW+#_%'y9jarEMSΗ(FHq"d1N`-7~LYCPfb]#<[,Xx/xKBL\ѓ#t}|6'GҀ5r{hrB,,lBHC,EIX40gj>%7$ 8%$h^G;CsH?- 3-঑.ne&3ͣҨn. ø0,~?X2y4}\ zU{4F9yV· Hq + \sB Ny_d{m{EaQBkyG?A\-]'w6-u+*OWV$Y%ZA}ͪ$]LgaғU214*C=ӈa=D'}Q94 x2gZtθ 2wC+8dwj%LlHW#N#utOЏn2 :x2.mȂw̸`"9c;Yne6նgqwXߥ晒;λh}ـwwJy;5yMEf-\mY'KKeޛv1?9K؆=.,(;6LRaaMIw(iiWx3?f|MB,\[4].4%^dHߡ9}^a/ S~GtuO4]6AH.(4E5'xq,>+ ŝEYr|- 1."'w!(z̕ |eωޭ޳0Šbkvܿz.c8aN/ Rj7񬱬u}"A}R9 &F tex{`((Z)k˓Յ3 A<{ǜ{C~-M/1p1uG/\]Nq/dN`"D Bv_D.b# 6@8ǘ90lcRro~`.VsǮ4$ 1GWXe~{Xig>ӤuE#hk>>^{*`+Ho RZ4]~6|(^D?s _󷢰? `#'ʓ_Kh)> gZvqX4,]#G)7(>QG%/D<䫐yy<[4ў$,,Computer Science Logo Style volume 1: Symbolic Computing 2/e Copyright (C) 1997 MIT Computer Science Logo Style Volume 1: Symbolic Computing Brian Harvey University of California, Berkeley Below this short table of contents is an expanded table of contents including sections within each chapter. Click on the chapter name to jump down. You can also download the complete text of each chapter in PDF format for elegant printing, or browse the HTML version. Note: These books are still in copyright, and in print. They are posted here for your personal use, not for resale or redistribution. Thanks!  Preface (frontmatter in PDF) (HTML)  Acknowledgements (HTML)  1. Exploration (PDF) (HTML)  2. Procedures (PDF) (HTML)  3. Variables (PDF) (HTML)  4. Predicates (PDF) (HTML)  5. Functions of Functions (PDF) (HTML)  6. Example: Tic-Tac-Toe (PDF) (HTML)  7. Introduction to Recursion (PDF) (HTML)  8. Practical Recursion: the Leap of Faith (PDF) (HTML)  9. How Recursion Works (PDF) (HTML)  10. Turtle Geometry (PDF) (HTML)  11. Recursive Operations (PDF) (HTML)  12. Example: Playfair Cipher (PDF) (HTML)  13. Planning (PDF) (HTML)  14. Example: Pitcher Problem Solver (PDF) (HTML)  15. Debugging (PDF) (HTML)  A. Running Berkeley Logo (backmatter in PDF) (HTML)  B. GNU General Public License (HTML)  Index of Defined Procedures (HTML)  General Index (HTML)  The Intellectual Content of Computer Programming  Computer Science Apprenticeship  About the Second Edition Volume 2: Advanced Techniques Volume 3: Beyond Programming Download Berkeley Logo (UCBLogo) Brian's home page      MIT Press web page for Computer Science Logo Style Preface (frontmatter in PDF) (HTML) Page 1 sur 5 Symbolic Computing contents 28.07.2006 http://www.cs.berkeley.edu/~bh/v1-toc2.html AxX]lTUswkU%.AA%.Hf %M0&c M}Z ȟFT&4"싥-bEcTb܆sܽ[,/{|s93AVQ*V7[bED.W@J']Zz ?il`jZ{HBfd091nMq`Ր~} u'A_icjs1 ϣ*loOѹ,TG,eɱGkyd<)Y;}_38bN{u]-Iu*NٹS4C=Y?6K *'OY(Np+a]/8yuR|7࿁X[;{Aq.YٲP.uvz}WGsL9r1 }N|",Ki;vg?ko|duf~3m>QGz_;.oƕ8}g>[gN7V.nL45sz8Dɦ{s8w-N2qz8}mW>JMk#15Ip,48 yN*],ԿLG+QV/iev.҆~J6q+Nzvj 6Zso?G'(RVr(wվcÕoP*fή]C9ܼS0CX%=S8}qqs.+qmWjF]fr2c8z޻J/^%ŝo_ڐxh?HB''?{)qwz$#=m; 79|j=N|>S颯\3]sǩHؿywq6`sxGe7z;[SǛl]uUs:kf_IS\o4C?󲄥Yd5Pla1M:B]cϪn;ٳuHja -Rvo5Cdstc gBg܃*YzͪDa-Iկ>kƤ[d2NՅ_mе|bc y}IV[K׬Rwlk}LloeۑK+&N?\Ϳ({ N?^mJ=0Z4'AM@͏V_̱~ 8]\/~ι:me|W; NNNLl`bخU[7X F >^@oݷ{Ӳ2Qծw:jnj5`D]ù?Qձ3Z`|~;N;_>ʟ>a6]ru,KߢCb/h9CWQsS[ےjqoj~wm5u%}jH ۭMo%f;B -W;ktR-/QuZg)awZgKgƼmJ{cbwy;=$vG.;N;/wP i9xo|om-e";R?\oåJo)_GԜCj[}8K 9uAM%呾uKXm.iy9ڑre4K馶9_PR?^nv~N[o6[uo!;Yգ<_}-EI']x8[ssj7WFr޽un=bs6]w~7)[\1۲"9/#.oVr?؏h+[2_$oVW7+81x27NLGi~](mͲթ^@Vo~zٚO}>xrsr>-QˣPygR(Xl-X7RCegpj#iZl'r8ˮ8xo18X'?PZ-=j݀A]t/spA]BMI9H(=5؛/#1#վp 9-JKA?|?:{Iijr l0&,^4vhsŅB6X(`TnĤk*&*\Ap&(e|i ]Acf0LT|&imly &=P&I0ih$lQ0&.!c0iuV9|LZVG1w_P].*OXX&Yja-9i_{[xJI;Uk-5tUVxL"*&d-c4N~yd_ʵy7b^5,&Ӯy_vM4l6̼76yVF bޚBXybآtQa{ʎҘǼ`CQ{XǀkW.˰x, z*I_BKXcb~1Fh}X}Fnħ+>}|B0.Ic z3em_ӲߖOVƜW  i>=9ɰEp O ph+!ci]!||ZEix.AtZb\ Zq hOˮxD1xĆ|+4{A}o/FeJ^6UV7W?+GOIhk #lQ0=YByeѓiLd0`u݌MeVlZ_ 6Q NLTۗ7W Z3[T ruJh+9.c5E.bZ*6yZEĦ aS \р/[.*MOM^1tFilz:6=Ŧ:yS Ϻta62aljt Gy^]4Thm<洕/SۍYֆx/ٳJlө~}TvMI7aR\&#m4f6ʮWz.&wջTL6:l( bؽ5F8 . -JƤgK$Lz6I9|g`ҳQL]PEՊtx1GsE$י,8Ԩ}컃Cpޅvs84 {F *r`/ U')ePM=3hlQqi4CĮtw̗)<%Ġ_*$͠ 93[.*AJ  ڐƠ r&6 Q zGǀ3G#To$ DSFh$_23cQ9#/]>r9,QwQ%ֶcn\c'D\k3lOiV˶c8gCf06*l3dl6zׅmtAbϣE\ mϥ 'i<\Vo)͔裡zs@fAcf=´`ujoPޑ6^V~StA{Bs4ooaE12+;^Hc r&^ȃI/D1iw`og0~:(Ie7$ ѧ(Xdm)kl{7k ]79p pR\џ2l]&]MwE+>I})^/_.-8{ohSh H-a;zʁG+\]X A_fy=GVFǘxBx4P;[.*GJ#<ڔƣMr&_;hS<#sp@f~/dc/i/G}u;|DI"6և*Y{]90`(],m#84ɳ&\ iWZ_zwJԦ6O-a,a &`(]T6a^19aM>m΃aRǀSu3/lQϗ1eoL{o%EѾ]6]rD9R>>XdnWvM-`+&(e2hlQqE&%ߟ:]]0|I'8c%ZSqw'z{jM]l#Em&=svm'N^`7c[ٵ^. y(Z V\f_d۸mVƳ b+.`(]T^-!ۼc4*hP sH-Smt^!U1>7{DUUVk3Wo=rjJm ]j֏ʶ#Ye&$A*#+<x b6go#:% נ̣LG8^J_jGOUvkUo| ݎ;;wlk%p/ >khuGmo5GP zqK\ /Ry/`|1"L/n?GE:\ M'xA\wql*&T' J\_pϛ1ČY}p=CR -pO/~-(-G3hlj4CĮ{t1<ی0HGryuZuU9XB]x =lmFt{at-rRg~au+$%q[,%8ΪS󶵶*? 3+߆jufw6/^z#iEI;}kk)3_sBh*=,|^@f;Hyw0S'Ē_gٻ([+Qgnv;CRXoFuLZ:@ܠgډbW9wK-*&:NzŤJc{3 gv 6i,UÈ3QU $X-Jƪ%dWv V Ocp9DEgiyz=ٖyaG4d6[3́aaG,7E43&\7[}R蚒1* Px6Bs4[.*aJ0 0&FQQ {FǀS'ta6ސ c"٦9yo]_\4=9KCSaY#|a lKp͸G^담xj{~C}e\::Vמ1]).~bO3hlQqEfd6LA]&uY 6 c֘2+;Ƥ1kǬ1y0kLpx lC'Yeks2~7hnf_5xc 2%Fvd8'5:e}~A|Ӳ11N90́'bR$̠gE9W'w]imycAP![$]f@آtQaye4C476_A{3/D6~# 34FNEcL3\Sp փ-uiee\;\'_cr1 tjٴ`m5+%㚧Uk ڸB֪o74GHlQ0RBye)i\;E)yp(c+/5 zGhќd? Պŗ NF˶ rZ='V\w_dۖ/mVF bۇ alE f c+;ƧmǶym|6v]UTlQ\(n1:JKw˽l6=8Dz1 N ϰN|/`د1́a)F=f)eiM~@ jl]ՠҾȰ;R2yZE3o+a\^.`Xu3lQ0VBye`ii ;MNciy0(1q\ō>] >ŋ&N\{۵Sݿ ` 1ŖOp'ȥ ˺ʮ4Lr'LԘ٢b㢟0-v \2&yZbw b0p4>{hWaE12+;Hcr&ȃIgʤi &ab[30~??v3ؒK ݬTvM36K[ 3[Tq}IϨ h{*o=5^&¤ =0 [.*IJ$LƤIr&&IQLzGǀ;olxE?DzvB>ZN3Ⱥm?Ws~?F6e7Ya 6ƲE尲c6Ssk3M.f n{kVɠUE0WͦSv᳢[w-T"yZEuĶ a2a [.*mu%dWv եNc[]lb ~]/߿#l0^)hDeý'Yg^M1xe/xCl'EasŘ l{O``eTL:L~#8).H[zt@cf05v1ѶW~gcf-A3b1Fy@9T`1[.\ EH57ZZfŗ WZϠsJ|JiaX-P-Ft1+>ke^AC*ZlxO(FPo}%آtQa)Dc4{eK[!|)b>%޺QǠn|̯ta6au6ق%8P{S%$$uWanL6|kџcy]_bPY~k6ky]Jor`PfS+*_SKimlIAZ.]Om (]TJ/jH MM>~5(~=c/taS߅ d{*{o84!-3O-[S0e,-%[lꂜ*ry)y8F~o-f&un̠;Yٙt-*eBrjڒq*ڸgS;7ݱ\kz7Ѻu׀=oWB8uGE85ʎii&hqjZũa.56toDW,[͖s0|ޥYy WǵQa+֭eshgѦ2S"kfݠUv]8]bLR\ :5[Tru}k++<ĵ 5\R ~5lQ0(!׼cpmFf!|\fDq 9v],Kk]ms> -ӵ\gzo6\r[]|ϋ_\):sUǀEɘlXF|~Fgc<3.Z^g˔mnk7]X Mz(-Q˾oqh Z6eiA6Wi_dO}Vaľ aw @}آtQa컸ʎwǾ`Q1;J⩀.զ;Kzg96j5i싄G-xe2bp͟/iŲ.WYv]k醦xvB-*~ZC+Ꝑ_kVƠĵµ)nװE¸6\ʎi\)hqmf\ŵu:Z/Y@l^)S*_pb,F`Zy.'9¸6<" Pֆy|wXf{7k]k9bʞYC{Π=E$WVoTV)&{=_*T٦ya}E[QQW:ʁCub}q92lQqKl~`*/eδ蜯ԬͿnߵm6=s|V\D=F3l[t[m"|6}ʿ$74֠}j?og}:5[.\^\985kwkL~|l]:PqgUo;LiG1Y;o9rZnKmUiGi;faZWN^9!fp`3Ǒ]!UgUiP;ro1HHS2,q*N2lqIZ{1_},fiaUSFaZ Չ|Sci0ǸOҧ]UV6@{:Z=&s?Z?A 3hrN14[>AɯI|M)?~D(5i6e $EG\VqkbN7MM0~aot55{X5mkmG>Ƴ'Ť qfg[SY53QF 1oUBg-염w{+^Y]lyeH -XG_swsWSW i+TUoT|3iԿURי&eFb)NL9umj KUmܟǥ|E.`ֹ_ЎjRPWf0]\%tۮ<}0;չi[3+fbKK!unfXLJ+Θd6v6k!'1x8ҵ_+3oqun|~3KۮƦY&G+ ӖӅn_`/0S<{^hD^1ZsY`y2~KzhսجQƣx{³] @,ۻlN{C;9,Ǣ|x R-툖VhԒ(;LK"WwiʶK]p]W[xUY8d6v]+h58vF([~eNs?`'\|=K{Dy@6_A-inz|? ]A7C52go,J=Af3-l[)u_zĔ.6dЅdS{?Ǫ_ֻKI2Xϲi#U̓4L\\C?.w4iMz>J?3{7k5,?[=Eƻ)?|yۢu| t~>I {ύnVkԔ(^ɾ k*/*f@{WYi9:6Ҧ|;9{_ ~#6g- oZ0y[1:ֻK];~lĞl>W =#Ϣh(=/?BtRftr]/)N~hGvXESe,&Īw5l2eG_@vcm':1P:VE:Ys'y;lyvLmYYB;r_[NLjo7WR-ITxv:k'iӞrmXٿfЛ] ju~sH+c׍}g>'ZwTYi[})ύI:iwocuU߸hP+{MWMFgן$xC&~Arc瀚-ږ;bGMiOC'x%EIrѽnj榶ו8D\GU}|1{yD/{=3ټx{ُ}5&ZESc0סM_"sWt = <;iWq>zOWjR:ʓ4n58z%Z,qA}Cj~}J̹#R˜E-a:x8;Ќ4jh|J_$do{k9JSc|qٟ٬}ll%:Ga@td]tA}:/}wp=X s_67)y f z?gh6oWE)Qt 5. GHLc3lQqC?[\0]P$@Z,-}pFxx#ϐ>`_(wd5F͸Q#pw'O?hS~ѡk]50-2XZMDisWh4&WȒ͊.-¯>_K<_SQ.:Z]2X),I2gE\38]"L=d˺9nЉvz@sb~sCH-^:Hv.;y|m<_ֽ%':i -Y|b}aȖmn*P[x~o V sg%}; ohl:nT1NCMJӵZk'A3R'yPcfL9Ji6rmRZOh'h`;^|B|FRgw8ph~;Lj sKCl<~e:-X,Wllaz1r?z gbw|~(t+ݢIk6/)uePfпQb=>b?Y)e63dkQͳYH6׋ ։GŶ+Oc_هńX^di,, Why Logo?  Hardware and Software Requirements  Words of Wisdom  Getting Acquainted with Logo...  ... in Two Senses  Another Greeting  Fooling Around  A Slightly Longer Conversation  A Sneaky Greeting  A Quiz Program  Saving Your Work  About Chapter 2  No Exercises  Procedures and Instructions  Technical Terms  Evaluation  Error Messages  Commands and Operations  Words and Lists  How to Describe a Procedure  Manipulating Words and Lists  Print and Show  Order of Evaluation  Special Forms of Evaluation  Writing Your Own Procedures  Editing Your Procedures  Syntax and Semantics  Parentheses and Plumbing Diagrams  Nonsense Plumbing Diagrams  User Procedures With Inputs  What Kind of Container?  An Abbreviation  More Procedures  An Aside on Variable Naming  Don't Call It X  Writing New Operations  Scope of Variables  The Little Person Metaphor  Changing the Value of a Variable  Global and Local Variables  Indirect Assignment  Functional Programming  True or False Acknowledgements (HTML) 1. Exploration (PDF) (HTML) 2. Procedures (PDF) (HTML) 3. Variables (PDF) (HTML) 4. Predicates (PDF) (HTML) Page 2 sur 5 Symbolic Computing contents 28.07.2006 http://www.cs.berkeley.edu/~bh/v1-toc2.html xVhe~ojy[\Xp!LQ11S̶9 K?FljhIQ JK cBM&, (wW` <<={{pf*4=> 8K`l7I72R7S.^o g+ӎZf(ۆ2tEI E5 W}Ao_pa }!(蓾m ncw[ī A;5acg_ ^&Y7S5A+m9QF,l j8M7N` !\r(a8\ _bmXV'ɄporgV 낮1u#'cN\*DZCI?JWC:V.b\x_ Ko]|=z_J;x1<}5mU:mfK;RJ^'cfcgcn/+.:GqU|s0 e9 fT*y#kZ9&lO?{Ş RiQaG=FoDvwclo=J?̷zhC8,zlf{ &m$bw,TueԮG~lJ1pя|^?KfM_|y=88}w5.w;sè}߼͢}wS5~pyt{hŭ6}9]MtYmWt49x^7jnk 3ׇSrv}}og.=AS@n 'p|綘@nrMicrosoft Office Document Image Writer 12.03.4017.1004 (Debug)2006:07:28 06:58:56  pR 7`h(1?2/v1i{x ՕnHh4(2#J i1by)F6j`$&&d4/T&H3InBn0s16D3~:gUNGX{kuj}U =:HY^y[l[OaD wu}_ҭ'SU;R?z;Mg?67+#ۦ6sK?B=ipoWGGP~WRnɹzsI Fm>bɎU^}Fg9,cir=7;I{3u7-Wg2JZǎS;u\uS}PtCS.l$e^p'(P_ډ±. m^vQ#euN(VHv|Mѱ1н}0^(̂OJqwCfMFQ%YZGaIqQY"[n`Xkio~\6Kf^luol%Vm7TiׇXc%s.|{m\)1SdɖM~0ӷnW5p|WfLF^>\)8/#).~Ӏqc?\Eu#˔帚S.vp\M/<!W/…(\Ivm_-b:˧O{Ӽ|VH*?F8c'-oy}1lV£_ݎk@9^:SH_? TZÂ)vR\d>V8k_5!cl#ٶ,^,\-Y?mtn^ܚQ=i{VXmJ8$s(.!#/. u'9Y*Y~ 8kXgFYÊaqMmKp=g1`0_B ;e2}b⪮H:]{LN2뿑zY۱VW /Wo${,&`7SW-gm嫉>56놊qU6ZW(U$ Y.֘r!| Ö"HSfJ5-ӫw_aTݧ:gZO5VQ4wEwWu'V둑7.]bJi!)#UT۬G׋q浪9ѳTxwzXLٰ$@OטA?kLGV7N @js|E#|lf{ o)~d57+ZaX3b]nwǫ6{urMOeYUֻu;F\NQZt*].8k^+0EuV"ܷS&(̀HYJfk8B~8i|L!q/w= kqnqq.ڟ Gk LUpV밶ܿ`d26'Zh vl=2 _ZS8A`x3\`lp ؐMQܫŬ8~o{ ^2b`9Qf'>*Ο,㳼C2pa2_K6[%>♘g|4C{V/ď^,むᢏ1GxL?b̵9xLxL?6) K0Y%bb7߃ WB"4m]./e(CiI2vYǖ&I|pA٦3㳱;'ʹ|5ؗ}EMYpۧ,`cҽ%qJᬛ0tUO,}FWp΢Ep8T\0<3<ޢ}{jퟯ}zrji"5͞q:N_79 ;dg5NyV<ʸr|źZ6Y,UHk '8 &_i }צlXn*ƔkO E_ Y. u'൱96V "xmlKpח{4 238^[,Vޟ9MuiB'e1Ӗdf2\[}.x͸ 6cSc6h)+9Ǝ3._sI%M>ylanur"sQ7m| Wyq}E`鯗ċJ'+;,}W^"xq|/ޯ6|i&Sx̨<˷#6r!_~1G;2mǙ*A>:|m8]! !'\Iv-]\_0`'*8q!YN#1~i[5IZ]I ?A!k/~OZsWKAd2O!LOm޹Z) }X@qXU Jł5F乌U̷m XI ش(;>"Em' ONNm'J9vqXi|R8Nv.LV(X+Lh܇gfJtfYrWVS)u|){-1KSΎ/ء +#éFFn]|yZs- ^y`0vC0l2p!O_qV|G)&ycd`JOId%֙ezdJd}6cc}1c\Dzhv?8\>>~f⹓nv<gp-M IWDPƪT&(%P^TbCt>F1Lau1Ơ/`NRa&(VtO:0_ }X@qXbC!X0YX0!h&摞<兊>FY] wb0G E' u''m8"Ʌߖ_ͼ7 _dqof"ma_ϳ3+ϻ콸|wuSFϋrX}|V yapuŮ2Y; 8vD\Vj@\j Cʁ;tq} tHYحO)4q]Zr~R}XP9=],8,tdpWLV* #}޶b7Q)D[Zy 08\1B_w9m?" |Na'pa2Ԩ%1޶>⍾QnS|GE +|>pRCe8yOal~僥z?js Cُ3ܿ`&Ϣ|a*Mڢ8hLUi9wqð0s-a|(r`{}]a[Y,<ÈHl#zƟW̟6vϞ]keg`ُ)?,}̟=}TȟNϞϞ#hssgωg_Q$asY1 6aSڢ9l6(r8\1VANar8liEpش8ۦ6&t35&2Q1o|5zMX3_[/nZ\5\E?Rp[`'M{? lRZ퀁(,X~_U|UW'Upw6pǸ\םsQ pUc\U߂ͼ# Vz Z.Պez}*u򮧙=ޤ7Pwz`1X_+,w lUZ89lBoNU-dV⟌lխ1clt$KΣ1_`8&,}. u' r8)IaaqKjt5ً\,Hwq/e/-&*R2scԞqE< awfr.ōKR9n_5-a/Il]88Gukݚkۼh?X8\1?xܹ_w?xVAgj_wti)! );;JvzPͯv#'*0ρj6Cf)g^Ocݎxr z皻x6N6dԝ9 e~~M>7/.| t ۤ/d0Y7sf,n2Of̊Zۋք5s/q[1ȣM+{loj kCZػ؋;GvhjLjڡ\(,\,Y*V<}+c9GS >RǩpEJKp(ܳ^deKU1J3I~#*'~qQڬOx FOiQ

Q(GyƒNm}ɑY8O,HSs3}vv Ѿ&<ȧuاN˷F9r6CnmZiE9W>upۘBU ڪWY٣|B?]3䄧T 55O{^}jc{B.u,oҢ|jl6ŭ! nB\6źOҾaxaeR˂US.n;,𽮊pWt^.-^x^$lg0 ^LFQx%YZsp_nۡ˅鸺b4=>,ʁNg;¿*8NsRNa"וض6ķU3(i<}.ևlʂ cۄ)b0`po< =;6QX!y4nz9j1*8weʥy&;iLRͥ*p.Wt>jT\{_;~,ޮ5(8ʐZO7\l1>)<(X$Ylm,-+~- OO枃 p=s@=`!{M,Tbksҹe75-SlX/{>({$\=x Ey3/{IIڜyEpϼ8Y6)IHc0 M]"|=23ޕVDP!f˸۱R\Q!]pߏSH5@xvLFQ9f\ͮ5>VƨI%q'JdK6~8\1\םk+m\Y\5#pyL0%ˬpjk 5x",eț$pd\du+0aE//Q.ggu['ϱCO~K: (\|nnT-XzAIq),'& a2?bcl>$_ }R 8Y.- u'9ܷ@ p߂"oAmS\ 4YţcSc- i/l~}1,bfp'nq@)Ӻkprpo$媍rLgj7bHCE= G`/Y %ee|UJᪿ.6 B>U+U~ jqW-[9\ZU|N_-4U _c5n%N=p |ϦP~n&u xas/&(P ՝V1~ 6&5/W/?.v~A>/K*/~ eI,B9}%E˒8~iSpv3R.LH{GXM(n 3qzY1R\SNIK'I9.a|13&(32ǴQ>UvzIR8f&z`]S,}c u'ks8Z)G11qLڀG,{qdQI4;o4[gxbgv5,ߝIq S۸d\E9:Ycu1 6e.`qY--M>1KR8=5&_i `}mln55`sFI^kE Y.- u'9\ "xmymUp|R7.LWDHV|?{30 ר)bx fq/u;  ٌ҅<"OdVta~ߩoT! 6_RO5S.})`)dqcHIg.}_1Bx(C781[]_k.? I9.?&mi Fr{ZhOsa{1N&|揕~p޷ 8'!E㼖 r_wk<:<ڜYKy/ xA>̯pat4oρxun2HcsF+ON'ˣL/\+n(gM>rA ,6YϮgXY7Y.ଔ^ y2dqcZANY9*hs8jG8GbD&3fp>ځN >5C4ށg5}p OV\D|vvLIIiРfhfLg{j7j?$`cԒ8馒8I6$Nڣ(3Kcts9ɯ;'ݜI7bks8"88NzHm;?ɆL.J Ov%MͫK~ /c6^h^6x*n)'Mѱ/G*ޣu`^g.k/ 6Y^Geoࣩø8\1>j u'>j9|^FCoIpa2|(>Z$9׻Fܳhh-mB(a{;p_{wbruӈ{X/SQXM+7*sJSOXSn({>U ̓m{n ˇ>=ӑ=R6/QtqntKً[0WO0Dd߹-eVk ;u[xG[*OVC|zݎӥ >JR.0 6M٬=lqU-%q٭pF.{*`2dqc\v[̯;ݖeI!..-˶ :ًg0e͒]Hk/&+?g{/<2>2L/gu; &؉ Ii0XĚlPZ@gXo-n//\M Y.7QAnNMwpR6(MjN0F&7id\sO+=[xx1ٴzu; ࡿ.я&oRz_NMZ<4bCwVН9 t;,zo`d%+2NvLI)' CBRNƦ`dq'vCnj-X+*ΒR8\1NZ[ANNIks8iᤵEp8Nڤ6Nj dq}#ő:O4UwMR Ϩ.>;"[u; ϖJ5  dq&ÈS6R! 6|$\)vkV&7#϶ 5|+U_UmzgzSUv6_Iܪ{SU/=#=*F+<oqOidc68޳Y;``q0KmCdopIR O٩0Bܫjf+y&oԴ?4cㄦu,/Rh1ۚ>jQ:h; l8MQw6gIV/QX|+SI~cuOvrݸs $y8U!N&6*LC&ܔWs!?0u1;ҷ[֦wΣP[iR4t.ױa[~YW~͵G`a:R;/S N̮UcT8v `3hW ]e_ \bvAM[w~pi-cG c;ѵ# C0ώ,Оx1;.Bʀ9 A,Lv$l,g_)EIqq\8.҉Msx"u+ ߔ>GtGoSd f_&;e~99(tb%q^btZeE\&f_(Of3U尤sm0hoU0'ߖV|LWĤd"19K2lmG |¸P:g~Ux=03ŏ]boO{[W+j?C<.FmehKo}7X.ǍSU74n19 ʯ1~61No޾I|?wAp.3Tf E^策Yb8p#a|*3/U |!w,aj[(9}MREqa7oU Nc2;T0'CF1$ly]q75t]0g2^e׎ 'xcKk@K7XP bd.\a>$mx;XXs_aAKb{Mk:#z6G7507W^E+z͇E1mY\ m$NϵU:dD#ntߕ2Bg0\zVIEb?Pkl\w5t*N˗5X\_w kt|\o1{MƘ4Ƃ$Wj2Hqֽg4Kkb򵩕Y #^uUdYZ!j}#?YG+pCSEe]" e|0oxеu O|[8Yמ~];& N_`dn1Ul]ZDaU:W Y[S9ϯ3v*bpbvd.vNb:*v`c'#7񆯹v 2$MWIq &CyA,:oolxC|5_/Y#xAw$6}b'3?Oqg"w윷r=xd^qs~ML^zGS:9=VNt^G|dhͨߤ4G)qgTTkk[#[ZcrdMOTj|oӫP|y/FzܚTd5*/l(弧tY/Zd=uk6'RgSU|=Q Qx#ﵧ?=<[O|wL3ҋ6[Fm^Lp̷7C{'UISz2pb}pd8 9xzX~!:~BmwmOXYor^ ݠb1X0[[?BQ̰v51?z/Q--Zpt˿dWkwMY?qW-QSTc-Ӿ`Q4>syV[+&&Gt~.~ڃ I;[nK?D:o3]{tD_弬23RMB1I%[Q 6DDUcq,cbow,,M Defining Your Own Predicates  Conditional Evaluation  Choosing Between Alternatives  Conditional Evaluation Another Way  About Those Brackets  Logical Connectives  Ifelse as an Operation  Expression Lists and Plumbing Diagrams  Stopping a Procedure  Improving the Quiz Program  Reporting Success to a Superprocedure  The Problem: Initials  One Solution: Numeric Iteration  Critique of Numeric Iteration  What's a Function?  Functions of Functions: Map  Higher Order Selection: Filter  Many to One: Reduce  Choosing the Right Tool  Anonymous Functions  Higher Order Miscellany  Repeated Invocation: Cascade  A Mini -Project: Mastermind This program plays the game of Tic Tac Toe against the user. It follows a perfect strategy, so it always wins or ties.  The Project  Strategy  Program Structure and Modularity  Data Representation  Arrays  Triples  Variables in the Workspace  The User Interface  Implementing the Strategy Rules  Further Explorations  Program Listing  Starting Small  Building Up  Generalizing the Pattern  What Went Wrong?  The Stop Rule  Local Variables  More Examples  Other Stop Rules 5. Functions of Functions (PDF) (HTML) 6. Example: Tic-Tac-Toe (PDF) (HTML) 7. Introduction to Recursion (PDF) (HTML) 8. Practical Recursion: the Leap of Faith (PDF) (HTML) Page 3 sur 5 Symbolic Computing contents 28.07.2006 http://www.cs.berkeley.edu/~bh/v1-toc2.html xWhUe}&LVhdCj͗FI챒jM\Rӊ\24-ي]ZlDQMFix{9v{Bs~wsܕ Kjr.lDF 2N1zT2z,Tr|X!ҋ 8yF#޵Ǽ/:?#;W[IM;C}7y+_oV `H*[v350cxICC v;Ҋ71Xz+Vp]fWYjh7E\1]R7۽jwj׺Gq#ţnƭwԾн8ۭ{1\nLWKw*]~v^[FSL'D"?I$[O#-(|-qq|LcXΞ)K}u>c̄ f,&R_A2zycpqn>O]졣>d/̌t>wMoD ɬGv`ɈpSߍwQ17䋡9 p(-TrJɚk1ZE}{dNf`}o&ׇ:W}o3E?s1yDu)E6P*(մٔeFwˉk(eWqzuZz2F{{ʽ|rk!*{ 5ׂeQx9=9g:>'r݈,Y\~Y4Qz_>[7pPڑP)[.EXg{7R_@iL%qc|Yܚ~Rɾ%K=.߂+v+3)A ۍ7YOoikmck'r;&A۞;4ՌBS jR=m]8zR~rӏNlb19گĖ5ט?8gl_Dr+Ol49=uA=3=5Λ`:踷桍T1_VpF,UsdUst>?όWtmI]Y5XW +oݪ4Rѵ][N~#ǒ{~.}GǕ~e%vՈoZ1b(4\S9Tf/V~:G:r|_B 8__o?3ʻ\e,fin?ȫ}?a:&mPlΎҩv GʈQow׮v`sC:գN'{kuI˪OU/9RP?\oMJVbey6(}hTuygZ+,םB[.^2CUy J$uJ(6<6au/ʩKSyx%X`XO=',RhY΃j73֬nq׮\tv7rIZǦҾƦco;[zoڎ[·Cpg2k;g?z‚s1⢺~A?kIZ&}6vO6ך @~?I YuEq]{qvߐp]6lpoo}N=yԹ׷1L!^ثo)7ߋ/#};[[Kdkum\9Ƹ W!d*U pҤ.[GLFQxeko\_1IPI?]K\~o '`ӲQػ([OѾ ,bSco;?5@ӏj,iZ̯d]|Rs2j#2Q?se DjT:w<g+gS lbKyB>MFQܓ]OBqA]B-p|clYWϮQ~2 bل*v>g-M(&Yg+_ &#24`,PpJ }r74nˍsNyS^yC%xH~,)`3: NLFQ8W$ϴ+ljYAM>qb%/r гͪzc`U/ k$c=x̻XF.?)g|[7w淚k.X,VeNLN}3X0˹FF46Nx,+ f;&(~ӇW/m"ؘrLY~ ŷKŏ*AFY!\ 1DQ~ -_|qm'śt |_Sq'r0\I.QY]Q\>3ށHepqfY}xrʌ&/]cmU;7S~%)<gv%((,X(vH[5 6&]P)Ֆ<׵3p1ofo;㿙Rf3qwH^<Ɉ F l\3[\ hrŕ-)[:0a0۫1GIs4Y5*\G"#!c_8m8-fUIIy<^[vndc^xǪs-eldvjj^sp1xnNyo;9Rssxnoi({Aon9ΎE<Ot2;sOFK4xȶ%#x DfH>xqVO5Uy^ ܽ?w&G, wU|⩷I%CԴ=8\ 1z{yo;O=.hqx%xj'?%(jljBsaÍA2(d\X)kQ }ߨOv`d=OQ*= 665s 3`Sdqb\sVo;ל5gI!Z99Xc>#_\,kfa.VdR/x1|+Epٻk||%;&)ᣐqtN>Ԟ3>G*ؘYלS \5(s&dqb\\EN5y\ç9k6ɕd.l?x1k$E˯?2p=+wΌS2N~Ttn%8)#`+%f bdq'ゕs/千rbH}بI8*ظʲ8鼲8I qR,`&'ͫ"'m'yy4O[IJyqtn0Y'j׸lR'(NhwJ:vW߸>{; ~"wxdEnA(s9WЮ q"8n~%8n bR;[`d]Ȗe$9nDU8`ceqp 8[FY.-"m'y@ p܂8nA=ccp> aEd}**n6ۉ.:@ clSzpWlgSoEp;+aIRR&_ lUF9lUU0`~MYpnkip18*rv .8vA vAvR~& (/ݳxp:OvΝv-k!to_c4 ox<[yWVZߎ_ց臫~5/Kj^TCClOOf:Y5+?T]?:M}[ia%'v"8Vrj=S?ޅSȦ}i2u_.l sㅥUs/2uʉe$L! 7*V1n/ڐFC$tM[&i}];dkReG23zÃiyl\s3< ̬VMZ rō9`WF[gQ}} X>qhagZJJعv\B?k"A옌*M?T "MM8FLw]-rOlҁ~hT-6fUr6D>Mܧ\|2k7pRua͹/E\̿oA?`D|k~üQ h%p3f]zafեu}=ܫ|ܥa跍,[/vt(q<ϫ6>/lGWox߸oxCm՚{GNU'| _]WGQ L)7h7\)pA;I h%pBIy~EJJ~焓 c/|02a϶%cKACؖJ`^(ՏŶm ~l[-+19ǂ vc(^ړ؅c/?:f]wӈv3Q^P.ސÀ;N Y.ۊ>m'c[V)In-m-֏}t. Xd{(W*+mjp81YN5k>*k"^ZM͘/_#hOLw-w- +E`}Nb sqvLf!11Mޠ.u7̗]~Ew}2=`bG|W̱J<W ։4*QϞCʕ٘D `߱Y-Mq"X+m+%?+<~[VMH^(ٙB$3]^6 冝=اcAC|W;Xe;vVwT[&ee%a|؉}!vt`d2#x⻫Sxk7S/-ǧ&\SS9pp1|vQ%o;OݞSK9Zxp{ >u{OFyJ?|d>.LV:QEfy|kvn΃fػQcxR?7Ɉށu~S|v/Ee7nʃ1Dٓf}U`CdOSv8\ 1"m',:ȉR֨Dcs9m.`QT Esy%_pV>Mf ڪ\(,X9r@~GlnY>0<l]9pc.p1|+Gb.~ |+|+-|jG\o1sO7f^ƨNo) =Z/xK`?\Ɨa9ޱំ&o^!2'OJZQ  u*pTVJ~7K{x#C)CQ uʫZm\puS_Y QAC|J` >Ds [3åA$Oq~fvU%m0%|dHq` bd=WyBl~0ySU9E|}~䪻g=~~Jm>[vȿ=*S]ۏ?Mk~FN6tmmAZ4|?vϹe:Z'g|=jnܲc#Y5޷ө߮rUQ_Cs~{UI|LK QM3PNwFw%((z܃;58 J\s<>co\Ӏ?ݏ0zv$xvB1r}{r"{2b6wJo9CF3qmgVmdnsQY};q6ΜU+UmLg˞IWc1)L5* k2u(gcmp w:ԥuSfRnuh:O rZ9!sϋqJv krh ɭ TrmWyVW9iFJ:OvOCt^[vmT}#uۅtՙClV9w|~ȿӗdžaXbv,rg[a3?>A#pn980`N?iusX{m곯[Hv~G9dY;Q*rϩJ h+; 6Z-=V=Js+_y/(OrWt!PL[3򞋋OV* CE`#p]'Eb]`!B`rp#_F'3|طE~|rkY#_b/1Is(֧0Y. '9/й^-%>~ ^bzz*nlR^w߸8.A|$&6(:Bx`^\\0mg;($1 >~5|,w1,qqU>'i.~TJpRF 0]夨a ]"l,d‚C++clBYt . pҵ'!U$:VK!ZgfKqM9_#qc&/8G2/B|ros]XL/"NVND1vm2w>4Jp!)M]&Q*dQۈ e"c)vM))&A!4Y踅0T%2˝)|^*>^}^˾Yp8\ 1.\淝ˮk-][][,&{dp2!.)dl،i,Q{ J=* Yx|q}A/w,ekv7rlVFX?V|/>QBv .Kfep1ĸ*rv..ˮB8\v] \v]=cWdG&k:Q\3.z^U6wgiTG2⣏ٲ1S[2r/|sEpଉ` ,6et\c,_X+DEuW.| ئ ^E } no 63o}niX6RsS15:^9po!Y~ 8<κQp֍%p֍qAǀwn0Y| |j27 ;˄1pqqD)K ;'et4Sc`dq'`$t'f߫I>Ven*R*4Q9p9 Y.'"'m'वyVp8im'm1|dar>"N$gdR<âGӚT*| 1xe|źNǏY=ʬO ;OV&I/ؒ /<,Net\c<5XTIk㰪}_YR*զ<_p1*v9n8us usep8jt3dG\'֫Lqq⯾͒Zڂ,rGqN6iX 9a8BXe`?q\6Iؤ33kٻ[ QȪU1xS` ޮ 8dqb(?S\~D!ƏUmyxJet /%SO?V ^{f{y\]1 fvͧq+]3b_ƕqyrgvkp[cnL%mPJmGHq`,ΆetBX0 5n{萪qU1rR*V'c\nC!mwTpy܆S;J;mmo8 T>O=8fmiFB8ztFL 7>Ҹ8\kl9brx-gȨwۥ1Jol]l%nVJwIq*7I_N9P4I6Z翼?%KEiLm|uv[өU*fN!-nS3SQCuo}DN~U/(Gެ}=qT3sױ}5ԍ*Rm=4}V=;'7W-O,ux] u}t~'̩yzlS$2BZgϳ`yNZNԧ5żAm?z?wPϻnGK]}搢 KrhK #cW7QH<4[]J:ÿN-T^(;vjWUi##?}~Vtb2)W̛T(}X ;xM.B_??xc>.WFn`9(ίQξG݌u36s`nfMB˺MPV8f]wӈv-*'$oַݵKrK][o=k{&O_ԭ}֣ZG!d8K-g84mG8|Da qH7۵Rא\7IK$zқot}$snt(ӿc2ݻfчLvJrPPq!R5q^ M::\N WN5ɋ?K5QUf3U簤smh`U0']$6NtV[ՠEޥ( \x}(kڢkl@L7:fӈ%02?J;}7ɏ&<[2a3`uZ;pVD+*5vu/`#ijɬmA5%b)+Wxѩ$Y/yQ}8s c)N;F,z]o+?<`Lb36 ]썫p;w] vr^N]Z59,: &6 baw8CE`{'ZumSvގ`1B؞BGH1JY#^)hL;Gӛ+"pjEpt.> /hvWsmsۃV Fj`m?T2Bg0I=dv$&AˌB;X2bK%%6*6;xV'vךs)|n^^R6jwk$c$BŖ'#^eDeG`2Jl[ b#1$ W׵i&I`E)i\Wʃ4mGaQWCB= WW.]=3( {vbƨB _wH 貐o"=X0DH +M-pNug!xX ],Q!%Y|6eC(O @zG)qؾN,N~%2h~!%~]sԍ,"kJ7Lյԡ4p0g`df2J{ f (񆳅O 9yYWUWΘQ;wCw ڑJe!E:{ꀅG`2tkv$o܎-Xn7PR*G5| ׇGgqxDh2 qotN7<\M\Bhp) d7p~Ze{تoxėqm:+I [L̍7?jO7dw%xe})*#0E *-&ް^'ްR;o*v PЩ{Um>;ُ7d 5( X<(%pq(Ql@x̵E&)%|M; ʃX2mGa [Q(wJx|MJC&̰6ڋ"7=1;";p|+!{ڑJe!E:ꀅ6(,xvG6<v%@gqxDoh8<CASߩ&.k!\sqa2u ک\[Ÿdh<`S%1/Y!L@ت?+bdEb?=Ɓ2P6gG)1S-PԩOUDZ?u~gDŽwm]U"߇v:/;qEgK{췔+u+vσk'iMQ ԎS:]<9؏ƾ>I]tSu˵Pe^i>=U&GrTF-S,Ea_}rճfר{Zs~@H_n\N|~lӧ}Nea7Z2묀N[LuPdSk8t'Vqw,! o7өU;{=*SK>Qj.G-a`&OtoF#sX?DĮnX`.ҠN*r of20W{Ԭ'7[s2ƀ?:>Waw?.0K5 oux ]]a%${| ޖCkcsסڎ: A\pLQr D}wp;D߫W?+%siBFs2nFEs2 D\T͕E]@p]8Bx`yc.LgNi|<y>N`X<ہ(`߹-+ϮbJ"kI:경Y5>ທEq8^c.LpMV23 =-M ';Y$}a-wp[y1~w8s\OXyr^ Mݠbt6*O>vT?av9EA L@;J1&l*_V:eOӛ'jfv {\/gJ̾!\q Wއ%[|(dR-Qol:QƶgxŶMf㕰?;? ^!R 5wQcįh; sWW'Pi3߸k]B vdHH)o/ KQvDlًc‹N8c_bbo8xd,, Recursive Patterns  The Leap of Faith  The Tower of Hanoi  More Complicated Patterns  A Mini -Project: Scrambled Sentences  Procedure Patterns  Tricky Stop Rules  Little People and Recursion  Tracing  Level and Sequence  Instruction Stepping  A Review, or a Brief Introduction  Local vs. Global Descriptions  The Turtle's State  Symmetry  Fractals  Further Reading  A Simple Substitution Cipher  More Procedure Patterns  The Filter Pattern  The Reduce Pattern  The Find Pattern  Numerical Operations: the Cascade Pattern  Pig Latin  A Mini -Project: Spelling Numbers  Advanced Recursion: Subsets  A Word About Tail Recursion This project demonstrates the use of a slightly complex cipher, in which a given letter in the original text is not always represented by the same letter in the coded version.  Data Redundancy  Composition of Functions  Conversational Front End  Further Explorations  Program Listing  Structured Programming  Critique of Structured Programming  A Sample Project: Counting Poker Hands  An Initialization Procedure  Second Edition Second Thoughts 9. How Recursion Works (PDF) (HTML) 10. Turtle Geometry (PDF) (HTML) 11. Recursive Operations (PDF) (HTML) 12. Example: Playfair Cipher (PDF) (HTML) 13. Planning (PDF) (HTML) Page 4 sur 5 Symbolic Computing contents 28.07.2006 http://www.cs.berkeley.edu/~bh/v1-toc2.html /xW}he=(2, ^b}aC[hBf&E#FhHe#),2 {ns{޽lA ^8<^V(ZT[)Y1$^gJO3x┊&S`zZqfVH?nǝj&[]bK*>བྷ~cF|_wjS;ӋeYrw'27xiŴkP"T<ɽvעq7X.PzgesSNLIRJ)%vRQ())I_)C\7)96A| i hֽ:w0A-@V[f}{Z/\pѼpM>7{gZ~4Oxb v2byLa}#5펗pf'Yck6 ל-_ S"ownNY/4^b[L)bO @3w?˲tss̝;9 pz%훟:NQR"sj_|kN%LR8}=l^>\^ LR}{rd-r;O2Wn{Kksڡ7"sZ>Οc#p|ⵎVië 5>ѵ*=ϛ|oJ=q0UcyʳjW:!zfwMttȑ~^SmCxClyퟫ~u$?չѱuhz|QrR~x޴Ýrʑ7j<[X͓kzjAK)c~Z,km7<n39v2M8KL'_xhKF(tܳv6 K޳yF{q]/ ]6π)KEr*]½&_V </r`adEunШ$666=6 y/|-`)?A qAG)w)OPpLmpE+{pYoc.t/iSa{M$#Iz[r /MOB(d/p_ tGV\$*WA>~/Ox%_AtՔ_MA.5u2WSt#r/廸0u 낀Vܻ޻l{9N[qcuGRwൣO<&(_ 81X\I[:)$$ &ap+urM X |Yfv :1Iߧq ap18*rXPv;5N-NM㰇u x_'.L6R$}*lV\+jտbec0[dGÈGn|>S|4|> +uQ Lw|/dKdsjSX?VVMRG.!#.I` 0>XE> Gh&G΁P+r0\l$bd5׮̖eb'?\}XKr }VsyI8N/Oѯq$~Qr.Ñ'č2c|<ϱ[v%o urYo*,w`d=O.n|pMzj`llz,T1N }T>0̙ bq*r_Pv}U9:\MNMv|dJVXB3^+k7z#B濌_#No!I}"8Jpz<rY9iXŘ(; cp}@?ƭ}||>~4עbi~LoϪҒo 9v)!'~[ :??' +<ֶ̞h.jܸZ79MԜ.ߴkd?i-̷jUkNz'^sOqcЊԏ2mmjtldn(VG]43|F%!ʳw!(n FH.r)lP\R;ܢ~ "Z8ջE=Y"N` \/*u rs误+ԫR`M哮MڃtW?,w+%&Ws\)nb5 1y*}vsnmG;0y5g!Ñlnέ|–ڔ.9!,m0$89G:Ήwe -,}>IogbA>⑓-48ݟ]x+Ӟd9iwL? ZUKi3k]"kt+7HWZKvO_RzҬ^b1 {%'w}Z [6i7t#/=a{yN`m.PNt/+$ñ֡Vz뚆Wkԯm0 [!skCa4i:0ױ !#L~Mvc,'mY[M/GZ0cLAJG'W0Y. rEVKYH>~on ӥ?/[ ,$mBœksX?/L6hnzm}WC`bSp`z2{%HyZ~awJ!70U LFIX;;Wu_~XH;e!,lR[ UHT =V\m}S9 E2tѡm(16U?r#0i7g`diW9#䒰`5n;+ }v-?)ԾZqwY.X}Gm3ߗw~*Gw~_ }EVc.LF+%̇3~EЋfUf3g|fYӤ#c%le]"lzH}(wp+U7S];i\Q{_t\ΪqUU_p\8/4\ 0YE U3j*DU3KઙrU.7ҸjgԆw7z٫E+KYƚP Nq&/9'\>XZ|b>Z\u{9P L,=K ~U뮪qUU1}oY\uA9\kW *diH*{{CeutD6}ڝ6{=PӨ[JvrW=[yaWƭ{ʲvS ~rv8wV~bͪm6g c*6di&4֮.R~o} ^t멛pwVț6Rf9JxXJ0 1֐d%sżjs0R|^#|b}巹dzi2!BnyiM992s1VdO9^ +w3Tb`_g6(; 3=]>agǬ 6&wY|wTpk4\ 0|.㻋U!:%i|C׀๟x# IbdaMc`{ ~.o9rf|Ԕ;LJXO4yHGCwEּJ$:d\VzAdiu a0K ~Zy rO%VU1vr,po=. p1x*VPv޺4.UpxxbyKu=5-\[xz碣Զ WY =$!H7Z~e!U+.;ؼ1&KO~ *oxj`l/[ K򣼅, ."oegxrU./.Ou .L7Eq?"v8(.GGYZjp,2މ YksSh2}ĸv?#sYWTZTYZ5Y{Št_ #Āk==j`l?1YjC, ZYA8%h:j)Z8˾şI H ֎.:[<_ߠ_ \#j v$ w{\_)oHe$8 yIbd37 ^Kā^sJ򛴻>qO9\ɍ'c-L‡`qZ-MWsg;Wpܚ,Ms_U5 6X^9<&\swG<, >XE sBt8<xi<o#}.Lv-{X-Oz}}fmMH8N C8ֆ'ioNjIkC:oeizV6YNdiu@,~bj`l \A9Kޑ5di`bUkxy]Wc\\,mMɜ`bF賱Bw/5%pdFKY&7ry4`_1Wg]S Κ;-rY9a ~9&KM{8rSYV gYזY(3nbY.g-"geg%yD%%p֒4ڤkKCT|~z&3N'ldΣ=νn5z5Vfog*V|=o 7߹bdiuGNzX}R=ca͔ {NYUἲ8:#mq' 4\ 0NU9:NN>5-Q jFgWO5hF,4:Z״>!GEYr6E>Α[\!='9*YT'RQ-gb0h4څprNKde~UΩgXM3ep%ֈn, W3pR/U`cѥeMV~YDOp1iE)(;??(V#j̿diz-:^WٷY{߹d}(tk0,X>UcjgMR]?J$A&_>9qVUvKYp>5,ė;, VV3pUq\Lщ}E|kۍ{SHù>HCe=`11eϓ >UJ`cr8淥,"~4\ 0cn㘛U!:9cvX/dΏdajo0w^NuX*Ʊ/\*M.?&6^Gi:Jw&9GZ Nlos[T&.! ֿ7184e'p [Vk``6{o, VW3<ނ t8Z],ou\[xkFWxe7[=_fЙ%'G "θZ91'3">]u-wkš/‚aDPPU痕[zV~Ob֚*VPvZ[kT!:ZSoI-$zQuT~ L읧t^_߻LTXp9'kWMpύ,θ|E3IrllL>k||7Ca9k?1U}*&Kkkb02M4`l[Quw ӐbU仠 |w{ݮJ%i|7BUN) J3)lѱG*1_I8\3>[Lf>|gi,ZcJr^%+ݫ`diuL,~qU`8;W: [mbqU传 wGݡ p%piS׀ຟ1/dFa[ [=|'W Coo>_ug%k]šK8/&$<Η̗+_ -eW(ܦBvhECɶO{&|83cƏQuÞhvԡ[lo ,C`oMznq`_?qsukҾ&ƒ{]+,#:4KNw:Vqm_v7p׃NfLq"ƋFؐͱ'`|K)w1={Ls:7^FjUɸY/MP?i *RG jrzCjoCx7WXG-w7픛]_zEmn:;[mڏqJEݥpR薜:MlVEۄ<>:_6 W9=%cCZWx´Q␃gˋO÷t1Ӭmƹ6moV+zK~Q_"*VyWZܶBj+-JOV%?VLFImed5pNǾL̋Ecz>eЊO72eKSڶiD[o`yiKqm"Eϕ|U(Ѷh2ImMk58C=U:_yKպJUd<:yYv)jSި;^H;RV7~;够vu1[㲎 4)/\쁝B9x#13e'a[..3vYN]_ʒw'`!| enaau LV. #r J0a6:}"z!|kN{j:? ];a} 5?պ1r xc{?;6;K[Gl\3r}xZmبNtPg;;jy6mbtw{֒X´uQvؗ?vҐݳryꈧ<=uZw`X܃̃GjW:˙W#򍆚#sUz:]?5Ag /#K?냚$ř2)~>S;'F ˷pS|1ne%΄]? k5豮T9ٸ*qˍ`.4[:x?snr)D9<ĝ Gp_qϭ~Mahn^awp$ R*8GF\EQHlV^%Vyl\+;k ߑŵ(; f$,X$rmdN-b*dvw3<7tFHC QU8hF65Ij{up>b~`_;å(p?<MbN^jCv&ȡk'ۄ٫GhI_],D<tz.a,GvrL#8/czlS8 8 G`2ڶ(E̍6EYqa\xd6Ͻ ֛֯saxk־c_(^qtf>Kc8.ڻEX#3A}bz$ew\ 1g]=g}F3.@]m) XDL &np}۸{%lxvb/BJ=9`\:K#dix<?͕Wny ^ bԙpU~TOL]z` po8tb Wn |%1- Pg0ɸ:!&S1ĎԸAz\#һvg75wW3m;;:X{|<W9F;lɷI*ؗg}"0gWںsq ~]#>/z/|yQ&{$KWqbah[y6ZΣF]/8F5={Lצ{+0R:__?ݥYјU ʘDq9sFN3TE?s ? c.O?ꀵ獬E8UGZͷ޵\>qo;xbV^O+fodm}(~k|`ŌK fNu{bhýk1*p]S>շŮ~bčy[ a5<,1ݯJF rR=ء!ǵzH<ov髋w-Fսk7Gc.1#=c.z$m-ug7sg5X*0߁($V-[B=4`1Ss∷}y^41>mX?zw `c= ]]!_/|s1t48@'͒sFY!/TzqDFpR _2ו?ŎחNhe7Vs{>DqC muPN'Ιe󤋛3}pe=kBs ?iCKQ#Pt_` ͖ޤOPӍܗcЉAϡ/qIkb~`N9Wb)z`i\Vd(&MFIDrV _>mdgBn6>/ws':HtJX?n-vߠzG9^}f2;s|Agc #%fF]l%O]I0^ "? Q:#Q,Y2hvO>6h#aQ{'?Q F1Q p:µשB^G1i2^bto=-qןoyI(P%{=(;>{m=6<~~..sudӰLqk+|~`՞ d'񵮛qKe% Gouʋ1}O9v: J"?Iޗ#CdG [6hѮ+՞krY[=p&&$̢|9pW[ ,{>|1ow$81}g2;w6ULCF$Al-w0]$c\=Ri{,d;aVixm &s(=t ݞǖq1R _1d=O$<&ύ\{>Ibϯ1О_מ_8uK班=?{[u=3IX;C{f2\eg+:.T9_XJug6f*WJ*c woX~)㬥C}9I{R.LM;axG%po.ǺzT~a\\V~Nψ(; 9_:6qņ?Oy]عP䈎39핏; 7ub?Je!{ib ?łdJ( *< 3v 1O6oUI6퉸 <|Χl<&?v$s1Bqݛ ~~lvxn]ͧe6;5J{DurG|L{D}lGGՙ|Pمc;H?+tpÜZEz;6Y ܴ ¸?sdnŽߚԟ:Q: I~3=qyn8?p:}]g gO|_kT/:{s vW_xeTݍG{cM:~xgD}g9a6 խ4#kHxYNx-rr磐t<&l20OξӞ6^woM8Sh>&⸇zԒ8آw.kwTw[w?f2~qrK0LK. γ'?zMyl?fuI_\p׼Gvh8ODF#|BߪsmT/,M/ZȬ"sw: 3.ES%pB@/ud% DQy9<ݾ'=sK}167"{Hk~qV-kEI{dEiK8s]L\ic\?QOX?"S\{9 {P?YTLSV~xID0G1fq#1amP2Ү}WwV6beJ\͑oI|㐡ܰ#Gk4 ,=oN. ~[\Ύ(; s'5Ի.fO2vߴpLVgOO_en(sTT%k%&1У ى#ra&~^,^i+y[$zq.,, Planning and Debugging  Classifying Poker Hands  Embellishments  Putting the Project in a Context  Program Listing This program solves the category of problems in which you are given pitchers of certain sizes and asked to use them to measure a specified amount of water from a river.  Tree Search  Depth-First and Breadth-First Searching  Data Representation  Abstract Data Types  Sentence as a Combiner  Finding the Children of a Node  Computing a New State  More Data Abstraction  Printing the Results  Efficiency: What Really Matters?  Avoiding Meaningless Pourings  Eliminating Duplicate States  Stopping the Program Early  Further Explorations  Program Listing  Using Error Messages  Invalid Data  Incorrect Results  Tracing and Stepping  Pausing  Final Words of Wisdom  Getting Berkeley Logo  Berkeley Logo for DOS Machines  Berkeley Logo for the Macintosh  Berkeley Logo for Unix MIT Press web page for Computer Science Logo Style Brian Harvey, bh@cs.berkeley.edu 14. Example: Pitcher Problem Solver (PDF) (HTML) 15. Debugging (PDF) (HTML) Appendices (backmatter in PDF) A. Running Berkeley Logo (HTML) B. GNU General Public License (HTML) Index of Defined Procedures (HTML) General Index (HTML) Page 5 sur 5 Symbolic Computing contents 28.07.2006 http://www.cs.berkeley.edu/~bh/v1-toc2.html xWhe~o[.RdE[(~M/e Vci-bed3,?Z%ed&uҢfd+0$.D"i߽{O~}݁սrx}>ރP: [i[t9?8@ 萔_MtҳEiőZ]bCHc ti᛽Us7?Q;Y|()=_xU)rյC3.Hs?UӋ)(.PӼ:bL}Ƶ( >\3NzK\yW{+577^&`Oq IŘ߯Al}+i5K%Y LrXN'.sn#[Gj-d}6\rN,vL(uEA} m;fqm)Zsȷ!^x֖_-LA,qݢn5e\jۜRSfh¯ЁB (t";p P(]@ CMicrosoft Office Document Image Writer 12.03.4017.1004 (Debug)2006:07:28 06:58:56  ЖH] w9Ȗ(1?2X/֖1sࡱ> Root EntryNdqrvorsQblcu4szKeiub3mf2g8CONTENTSprop2 # mX]0,Å :+0h08@T B prop2B prop3jA+cfBYhbq6I]5#D!HraDICT ā BA\w `&d9hVq&C6H2athVyOOh0@(08  PDQaCsOh+'0p0prop3 AuvsxjatP0udblw1Aaq5eubr5h8CONTENTSpSummaryInformation(CONTENTS8@h Administrateur0@HJP5,vIQJMXQb"2Dj@=d&8PchfI0R0e"dҤA/c9agfgA'|bm ϴ@ 0 , 0lb6L &G?[腷E'1AHSaM {0*hML 0, %)Jq:$P*;VnHAjl5[(oPSȥ-Qy,O#/ocM