<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
	<title>TICS</title>
	
	<link>http://ticsblog.com</link>
	<description>Still deciding ...</description>
	<lastBuildDate>Mon, 13 Jun 2011 09:24:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ticsblog/mNZI" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="ticsblog/mnzi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Environments the easy way</title>
		<link>http://ticsblog.com/2011/06/13/environments-the-easy-way/</link>
		<comments>http://ticsblog.com/2011/06/13/environments-the-easy-way/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 09:24:06 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1232</guid>
		<description><![CDATA[What is the result of evaluating the following expression in Scheme? 12&#40;let &#40;&#40;a 9&#41;&#41; &#160; &#40;* a 3&#41;&#41; If you answered 27, then think again. In actuality, this question does not make any sense, or partially at least. In Scheme, as well as in other programming languages, an expression is evaluated with respect to an [...]]]></description>
			<content:encoded><![CDATA[<p>What is the result of evaluating the following expression in Scheme?</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>a <span style="color: #cc66cc;">9</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> a <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>If you answered 27, then think again. In actuality, this question does not make any sense, or partially at least. In Scheme, as well as in other programming languages, an expression is evaluated with respect to an environment that assigns values to its variables. In our example, this includes <tt>a</tt> <em>and</em> <tt>*</tt>.</p>
<p>But, what is an environment? There are several ways to explain and represent those, but let&#8217;s focus on the functional approach. Say <img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-10.png" alt="" title="CodeCogsEqn (10)" width="10" height="13" class="alignnone size-full wp-image-1303" /> is the finite set of all Scheme symbols, and <img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-11.png" alt="" title="CodeCogsEqn (11)" width="13" height="13" class="alignnone size-full wp-image-1305" /> is the set of all Scheme values, then an environment is a function:</p>
<p><img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-9.png" alt="" title="CodeCogsEqn (9)" width="91" height="13" class="aligncenter size-full wp-image-1290" /></p>
<p>That is, given a symbol that represents a variable, <tt>env</tt> returns a value for that variable. In an environment <tt>env<sub>1</sub></tt> where the symbol <tt>x</tt> is associated or <em>bound</em> to the value 10, the straightforward expression:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> x <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>is further evaluated to (+ <tt>env<sub>1</sub>(x)</tt> 4), that is 14. Such an environment can be easily represented with a diagram:</p>
<p><img src="http://ticsblog.com/wp-content/uploads/2011/06/closures_12.png" alt="" title="closures_1" width="152" height="112" class="aligncenter size-full wp-image-1277" /></p>
<p>Here, <tt>env<sub>empty</sub></tt> represents a function that returns an unspecified value, or rather, more commonly, raises an error for any symbol in the input. On top of that, <tt>env<sub>1</sub></tt> simply augments <tt>env<sub>empty</sub></tt> with a new association or <em>binding</em> for <tt>x</tt>. Such extension implies the existence of another function:</p>
<p><img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-8.png" alt="" title="CodeCogsEqn (8)" width="218" height="18" class="aligncenter size-full wp-image-1288" /></p>
<p><tt>extend<sub>env</sub></tt> takes an environment, <img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-6.png" alt="" title="CodeCogsEqn (6)" width="6" height="7" class="alignnone size-full wp-image-1256" /> symbols and <img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-6.png" alt="" title="CodeCogsEqn (6)" width="6" height="7" class="alignnone size-full wp-image-1256" /> values for some <img src="http://ticsblog.com/wp-content/uploads/2011/06/CodeCogsEqn-7.png" alt="" title="CodeCogsEqn (7)" width="27" height="8" class="alignnone size-full wp-image-1257" />, and returns an environment that augments the initial with the new bindings. Environments are constructed by starting with <tt>env<sub>empty</sub></tt>, and repeatedly extending it with <tt>extend<sub>env</sub></tt>. In diagrams like the one above, the vertical arrows, created by the application of <tt>extend<sub>env</sub></tt>, relate an environment with its <em>enclosing environment</em>.</p>
<p>Note that, by definition of a function, a symbol cannot be bound to more than one value. This is quite interesting, for it is usual to extend an environment by including bindings for new <em>and</em> existing symbols. To illustrate this, if we want to extend <tt>env<sub>1</sub></tt> with new bindings for <tt>y</tt> and <tt>z</tt>, we would have:</p>
<p><img src="http://ticsblog.com/wp-content/uploads/2011/06/closures_23.png" alt="" title="closures_2" width="252" height="182" class="aligncenter size-full wp-image-1271" /></p>
<p>With this new environment <tt>env<sub>2</sub></tt>, the previous example expression is evaluated to (+ <tt>env<sub>2</sub>(x)</tt> 4), which is still 14. The procedure works as follows:</p>
<ul>
<li>Starting from <tt>env<sub>2</sub>(x)</tt>, we look up the first binding for the symbol <tt>x</tt> in the sequence of <em>frames</em> (the colored boxes containing the associations).</li>
<li>We eventually find a value for <tt>x</tt> or reach <tt>env<sub>empty</sub></tt> and get a nasty error. In the latter, we would say that <tt>x</tt> is <em>unbound</em> in <tt>env<sub>2</sub></tt>.</li>
</ul>
<p>Now, we extend  <tt>env<sub>2</sub></tt> with a new binding for <tt>x</tt>:<br />
<img src="http://ticsblog.com/wp-content/uploads/2011/06/closures_3.png" alt="" title="closures_3" width="252" height="249" class="aligncenter size-full wp-image-1269" /></p>
<p>In this last environment configuration, our expression is evaluated to (+ <tt>env<sub>3</sub>(x)</tt> 4), but now the result is 23, not 14. We consciously <em>shadowed</em> the previous binding for <tt>x</tt> in <tt>env<sub>1</sub></tt>, retrieving 19 instead of 10. </p>
<p>Therefore, in our initial example:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>a <span style="color: #cc66cc;">9</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> a <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>If we evaluate it in an environment that shadows the symbol <tt>*</tt> to return <tt>(&#955; (x y) (+ ( * x y) 4))</tt>, then the result would be 31, not 27. Such is the importance of environments.</p>
<p>In a forthcoming article, we shall explain how this concept of environment can be used to implement lexical scoping through the creation of closures.</p>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/UncqrsLf4NY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/06/13/environments-the-easy-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 4.1</title>
		<link>http://ticsblog.com/2011/05/09/exercise-4-1/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-4-1/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:59:00 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1228</guid>
		<description><![CDATA[From left to right: 123456&#40;define &#40;list-of-values exps env&#41; &#160; &#40;if &#40;no-operands? exps&#41; &#160; &#160; &#160; nil &#160; &#160; &#160; &#40;let &#40;&#40;first &#40;eval &#40;first-operand exps&#41; env&#41;&#41;&#41; &#160; &#160; &#160; &#160; &#40;cons first &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;list-of-values &#40;rest-operands exps&#41; env&#41;&#41;&#41;&#41;&#41; From right to left: 123456&#40;define &#40;list-of-values exps env&#41; &#160; &#40;if &#40;no-operands? exps&#41; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>From left to right:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>list<span style="color: #66cc66;">-</span>of<span style="color: #66cc66;">-</span>values exps env<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>no<span style="color: #66cc66;">-</span>operands? exps<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">nil</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>first <span style="color: #66cc66;">&#40;</span>eval <span style="color: #66cc66;">&#40;</span>first<span style="color: #66cc66;">-</span>operand exps<span style="color: #66cc66;">&#41;</span> env<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> first<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>list<span style="color: #66cc66;">-</span>of<span style="color: #66cc66;">-</span>values <span style="color: #66cc66;">&#40;</span>rest<span style="color: #66cc66;">-</span>operands exps<span style="color: #66cc66;">&#41;</span> env<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>From right to left:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>list<span style="color: #66cc66;">-</span>of<span style="color: #66cc66;">-</span>values exps env<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>no<span style="color: #66cc66;">-</span>operands? exps<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">nil</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>rest <span style="color: #66cc66;">&#40;</span>list<span style="color: #66cc66;">-</span>of<span style="color: #66cc66;">-</span>values <span style="color: #66cc66;">&#40;</span>rest<span style="color: #66cc66;">-</span>operands exps<span style="color: #66cc66;">&#41;</span> env<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #66cc66;">&#40;</span>eval <span style="color: #66cc66;">&#40;</span>first<span style="color: #66cc66;">-</span>operand exps<span style="color: #66cc66;">&#41;</span> env<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rest<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/QMU2AFZhR5U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-4-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.82</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-82/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-82/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:57:10 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1225</guid>
		<description><![CDATA[123456789&#40;define &#40;estimate-integral P x1 x2 y1 y2&#41; &#160; &#40;define experiment-stream &#160; &#160; &#40;define test &#160; &#160; &#160; &#40;lambda &#40;&#41; &#40;P &#40;random-in-range &#40;min x1 x2&#41; &#40;max x1 x2&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;random-in-range &#40;min y1 y2&#41; &#40;max y1 y2&#41;&#41;&#41;&#41;&#41; &#160; &#160; &#40;cons-stream test experiment-stream&#41;&#41; &#160; &#40;let &#40;&#40;area &#40;* &#40;abs &#40;- [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>estimate<span style="color: #66cc66;">-</span>integral P x1 x2 y1 y2<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> experiment<span style="color: #66cc66;">-</span>stream<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> test<br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>P <span style="color: #66cc66;">&#40;</span>random<span style="color: #66cc66;">-</span>in<span style="color: #66cc66;">-</span>range <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">min</span> x1 x2<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">max</span> x1 x2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>random<span style="color: #66cc66;">-</span>in<span style="color: #66cc66;">-</span>range <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">min</span> y1 y2<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">max</span> y1 y2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream test experiment<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>area <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">abs</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> x2 x1<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">abs</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> y2 y1<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> area p<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>monte<span style="color: #66cc66;">-</span>carlo experiment<span style="color: #66cc66;">-</span>stream <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/7s3mju7RbhM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.81</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-81/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-81/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:56:28 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1222</guid>
		<description><![CDATA[Not sure if this works. Cannot test without rand-update: 1234567891011&#40;define &#40;rand random-stream&#41; &#160; &#40;define &#40;random-numbers initial-value&#41; &#160; &#160; &#40;cons-stream initial-value &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;stream-map rand-update random-numbers&#41;&#41;&#41; &#160; &#40;define &#40;dispatch op&#41; &#160; &#160; &#40;cond &#40;&#40;eq? op 'generate&#41; &#40;random-numbers random-init&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#40;&#40;eq? op 'reset&#41; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Not sure if this works. Cannot test without <em>rand-update</em>:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>rand random<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>random<span style="color: #66cc66;">-</span>numbers initial<span style="color: #66cc66;">-</span>value<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream initial<span style="color: #66cc66;">-</span>value<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> rand<span style="color: #66cc66;">-</span>update random<span style="color: #66cc66;">-</span>numbers<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>dispatch op<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> op 'generate<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>random<span style="color: #66cc66;">-</span>numbers random<span style="color: #66cc66;">-</span>init<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> op 'reset<span style="color: #66cc66;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>new<span style="color: #66cc66;">-</span>value<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>random<span style="color: #66cc66;">-</span>numbers <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>filter <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>n<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> n new<span style="color: #66cc66;">-</span>value<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>random<span style="color: #66cc66;">-</span>numbers random<span style="color: #66cc66;">-</span>init<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#40;</span>error <span style="color: #ff0000;">&quot;Operation not found -- RAND&quot;</span> op<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; dispatch<span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/EXU7OCmSxkc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.80</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-80/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-80/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:55:12 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1219</guid>
		<description><![CDATA[123456789101112131415&#40;define &#40;RLC R L C dt&#41; &#160; &#40;lambda &#40;vc0 il0&#41; &#160; &#160; &#40;cons &#40;vc-stream vc0 C dt&#41; &#160; &#160; &#160; &#160; &#160; &#40;il-stream il0 R L dt&#41;&#41;&#41;&#41; &#40;define &#40;vc-stream vc0 C dt&#41; &#160; &#40;define vc &#40;integral &#40;delay dvc&#41; vc0 dt&#41;&#41; &#160; &#40;define dvc &#40;scale-stream &#40;delay il-stream&#41; &#40;/ -1.0 C&#41;&#41;&#41; &#160; vc&#41; &#40;define &#40;il-stream il0 R [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>RLC R <span style="color: #b1b100;">L</span> C dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>vc0 il0<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> <span style="color: #66cc66;">&#40;</span>vc<span style="color: #66cc66;">-</span>stream vc0 C dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>il<span style="color: #66cc66;">-</span>stream il0 R <span style="color: #b1b100;">L</span> dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>vc<span style="color: #66cc66;">-</span>stream vc0 C dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> vc <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> dvc<span style="color: #66cc66;">&#41;</span> vc0 dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> dvc <span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> il<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">1.0</span> C<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; vc<span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>il<span style="color: #66cc66;">-</span>stream il0 R <span style="color: #b1b100;">L</span> dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> il <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> dil<span style="color: #66cc66;">&#41;</span> il0 dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> dil <span style="color: #66cc66;">&#40;</span>add<span style="color: #66cc66;">-</span>streams <span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream vc<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">1.0</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream il <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> R<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">1.0</span> <span style="color: #b1b100;">L</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; il<span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/mBe94U6NPx0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.79</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-79/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-79/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:54:13 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1216</guid>
		<description><![CDATA[12345&#40;define &#40;solve-2nd f dt y0 dy0&#41; &#160; &#40;define y &#40;integral &#40;delay dy&#41; y0 dt&#41;&#41; &#160; &#40;define dy &#40;integral &#40;delay ddy&#41; dy0 dt&#41;&#41; &#160; &#40;define ddy &#40;stream-map f y&#41;&#41; &#160; y&#41;]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>solve<span style="color: #66cc66;">-</span>2nd <span style="color: #b1b100;">f</span> dt y0 dy0<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> y <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> dy<span style="color: #66cc66;">&#41;</span> y0 dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> dy <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> ddy<span style="color: #66cc66;">&#41;</span> dy0 dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> ddy <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #b1b100;">f</span> y<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; y<span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/R4QDx6DucYw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-79/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.78</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-78/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-78/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:53:14 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1213</guid>
		<description><![CDATA[123456&#40;define &#40;solve-2nd a b dt y0 dy0&#41; &#160; &#40;define y &#40;integral &#40;delay dy&#41; y0 dt&#41;&#41; &#160; &#40;define dy &#40;integral &#40;delay ddy&#41; dy0 dt&#41;&#41; &#160; &#40;define ddy &#40;add-stream &#40;scale-stream dy a&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;scale-stream y b&#41;&#41;&#41; &#160; y&#41;]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>solve<span style="color: #66cc66;">-</span>2nd a b dt y0 dy0<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> y <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> dy<span style="color: #66cc66;">&#41;</span> y0 dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> dy <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> ddy<span style="color: #66cc66;">&#41;</span> dy0 dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> ddy <span style="color: #66cc66;">&#40;</span>add<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream dy a<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream y b<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; y<span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/2mBywv93Q_Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-78/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.77</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-77/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-77/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:52:31 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1210</guid>
		<description><![CDATA[123456789&#40;define &#40;integral delayed-integrand initial-value dt&#41; &#160; &#40;cons-stream initial-value &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;let &#40;&#40;integral &#40;force delayed-integral&#41;&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;if &#40;stream-null? integrand&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;the-empty-stream &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;integral &#40;delay &#40;stream-cdr integrand&#41;&#41; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>integral delayed<span style="color: #66cc66;">-</span>integrand initial<span style="color: #66cc66;">-</span>value dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream initial<span style="color: #66cc66;">-</span>value<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">force</span> delayed<span style="color: #66cc66;">-</span>integral<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> integrand<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;the<span style="color: #66cc66;">-</span>empty<span style="color: #66cc66;">-</span>stream<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">delay</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> integrand<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> dt <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> integrand<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; initial<span style="color: #66cc66;">-</span>value<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/i-uG5s8463w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-77/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.76</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-76/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-76/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:51:46 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1207</guid>
		<description><![CDATA[1234567891011&#40;define &#40;smooth input-stream&#41; &#160; &#40;let &#40;&#40;avpt &#40;/ &#40;+ &#40;stream-car input-stream&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;stream-car &#40;stream-cdr input-stream&#41;&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;2&#41;&#41;&#41; &#160; &#160; &#40;cons-stream avpt &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;smooth &#40;stream-cdr input-stream&#41;&#41;&#41;&#41;&#41; &#40;define input-example &#40;cons-stream 1 &#40;cons-stream 2 &#40;cons-stream 3 [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>smooth input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>avpt <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream avpt<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>smooth <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> input<span style="color: #66cc66;">-</span>example <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #cc66cc;">3</span> <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #cc66cc;">4</span> <span style="color: #b1b100;">nil</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>zero<span style="color: #66cc66;">-</span>crossings input<span style="color: #66cc66;">-</span>stream last<span style="color: #66cc66;">-</span>value smooth<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>smooth <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream last<span style="color: #66cc66;">-</span>value input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/3FPXNcMagYY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-76/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.75</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-75/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-75/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:51:02 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1204</guid>
		<description><![CDATA[Louis&#8217;s code is averaging the values from the output, which is not correct. Fixed: 123456&#40;define &#40;make-zero-crossings input-stream last-value last-avpt&#41; &#160; &#40;let &#40;&#40;avpt &#40;/ &#40;+ last-value &#40;stream-car input-stream&#41;&#41; 2&#41;&#41;&#41; &#160; &#160; &#40;cons-stream &#40;sign-change-detector avpt last-avpt&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;make-zero-crossings &#40;stream-cdr input-stream&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Louis&#8217;s code is averaging the values from the output, which is not correct. Fixed:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>zero<span style="color: #66cc66;">-</span>crossings input<span style="color: #66cc66;">-</span>stream last<span style="color: #66cc66;">-</span>value last<span style="color: #66cc66;">-</span>avpt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>avpt <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> last<span style="color: #66cc66;">-</span>value <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span>sign<span style="color: #66cc66;">-</span>change<span style="color: #66cc66;">-</span>detector avpt last<span style="color: #66cc66;">-</span>avpt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>zero<span style="color: #66cc66;">-</span>crossings <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avpt<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/Ba4QY4rXaL4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-75/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.74</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-74/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-74/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:49:51 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1201</guid>
		<description><![CDATA[1234567&#40;define &#40;make-zero-crossings input-stream last-value&#41; &#160; &#40;cons-stream &#160; &#160;&#40;sign-change-detector &#40;stream-car input-stream&#41; last-value&#41; &#160; &#160;&#40;make-zero-crossings &#40;stream-cdr input-stream&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;stream-car input-stream&#41;&#41;&#41;&#41; &#40;define zero-crossings &#40;make-zero-crossings sense-data 0&#41;&#41; Alternative: 1234&#40;define zero-crossings &#160; &#40;stream-map sign-change-detector &#160; &#160; &#160; &#160; &#160; &#160; &#160; sense-data &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>zero<span style="color: #66cc66;">-</span>crossings input<span style="color: #66cc66;">-</span>stream last<span style="color: #66cc66;">-</span>value<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream<br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>sign<span style="color: #66cc66;">-</span>change<span style="color: #66cc66;">-</span>detector <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span> last<span style="color: #66cc66;">-</span>value<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>zero<span style="color: #66cc66;">-</span>crossings <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> input<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> zero<span style="color: #66cc66;">-</span>crossings <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>zero<span style="color: #66cc66;">-</span>crossings sense<span style="color: #66cc66;">-</span>data <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Alternative:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> zero<span style="color: #66cc66;">-</span>crossings<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> sign<span style="color: #66cc66;">-</span>change<span style="color: #66cc66;">-</span>detector <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sense<span style="color: #66cc66;">-</span>data <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #cc66cc;">0</span> sense<span style="color: #66cc66;">-</span>data<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/_BqgyOadguY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-74/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.73</title>
		<link>http://ticsblog.com/2011/05/09/exercise-3-73/</link>
		<comments>http://ticsblog.com/2011/05/09/exercise-3-73/#comments</comments>
		<pubDate>Mon, 09 May 2011 07:48:01 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1198</guid>
		<description><![CDATA[123456789101112131415&#40;define &#40;integral integrand initial-value dt&#41; &#160; &#40;define int &#160; &#160; &#40;cons-stream initial-value &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;add-streams &#40;scale-stream integrand dt&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; int&#41;&#41;&#41; &#160; int&#41; &#40;define &#40;RC R C dt&#41; &#160; &#40;lambda &#40;i v0&#41; &#160; &#160; &#40;define v [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>integral integrand initial<span style="color: #66cc66;">-</span>value dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> int<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream initial<span style="color: #66cc66;">-</span>value<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>add<span style="color: #66cc66;">-</span>streams <span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream integrand dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; int<span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>RC R C dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>i v0<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> v<br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>add<span style="color: #66cc66;">-</span>streams <span style="color: #66cc66;">&#40;</span>integral <span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream i <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">1.0</span> C<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> v0 dt<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>scale<span style="color: #66cc66;">-</span>stream i R<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; v<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> RC1 <span style="color: #66cc66;">&#40;</span>RC <span style="color: #cc66cc;">5</span> <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/aO08P1yN_B4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/09/exercise-3-73/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.72</title>
		<link>http://ticsblog.com/2011/05/03/exercise-3-72/</link>
		<comments>http://ticsblog.com/2011/05/03/exercise-3-72/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:10:13 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1195</guid>
		<description><![CDATA[1234567891011121314151617181920212223242526&#40;define &#40;weight-sum-squares pair&#41; &#160; &#40;let &#40;&#40;i &#40;car pair&#41;&#41; &#160; &#160; &#160; &#160; &#40;j &#40;cadr pair&#41;&#41;&#41; &#160; &#160; &#40;+ &#40;* i i&#41; &#40;* j j&#41;&#41;&#41;&#41; &#40;define sum-squares &#160; &#40;weighted-pairs integers integers weight-sum-squares&#41;&#41; &#40;define &#40;iter-sq pairs weight&#41; &#160; &#40;let &#40;&#40;car-pairs &#40;stream-car pairs&#41;&#41; &#160; &#160; &#160; &#160; &#40;cadr-pairs &#40;stream-car &#40;stream-cdr pairs&#41;&#41;&#41; &#160; &#160; &#160; &#160; &#40;caddr-pairs &#40;stream-car &#40;stream-cdr [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>weight<span style="color: #66cc66;">-</span>sum<span style="color: #66cc66;">-</span>squares pair<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>i <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>j <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> i i<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> j j<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> sum<span style="color: #66cc66;">-</span>squares<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>weighted<span style="color: #66cc66;">-</span>pairs integers integers weight<span style="color: #66cc66;">-</span>sum<span style="color: #66cc66;">-</span>squares<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>iter<span style="color: #66cc66;">-</span>sq pairs weight<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>car<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cadr<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>caddr<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cdddr<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> pairs<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">nil</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>weight car<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>weight cadr<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>weight caddr<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>weight car<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; car<span style="color: #66cc66;">-</span>pairs <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cadr<span style="color: #66cc66;">-</span>pairs <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; caddr<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>iter<span style="color: #66cc66;">-</span>sq cdddr<span style="color: #66cc66;">-</span>pairs weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#40;</span>iter<span style="color: #66cc66;">-</span>sq <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span> weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> 3way<span style="color: #66cc66;">-</span>square<span style="color: #66cc66;">-</span>numbers &nbsp;<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>iter<span style="color: #66cc66;">-</span>sq sum<span style="color: #66cc66;">-</span>squares weight<span style="color: #66cc66;">-</span>sum<span style="color: #66cc66;">-</span>squares<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Test:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>display<span style="color: #66cc66;">-</span>stream 3way<span style="color: #66cc66;">-</span>square<span style="color: #66cc66;">-</span>numbers <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">325</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">18</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">6</span> <span style="color: #cc66cc;">17</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span> <span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">425</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span> <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">8</span> <span style="color: #cc66cc;">19</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">13</span> <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">650</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">5</span> <span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span> <span style="color: #cc66cc;">23</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">17</span> <span style="color: #cc66cc;">19</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">725</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">7</span> <span style="color: #cc66cc;">26</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span> <span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">14</span> <span style="color: #cc66cc;">23</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">845</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">29</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">13</span> <span style="color: #cc66cc;">26</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">19</span> <span style="color: #cc66cc;">22</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">850</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">29</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span> <span style="color: #cc66cc;">27</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span> <span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/k9PHeUwTCbk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/03/exercise-3-72/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.71</title>
		<link>http://ticsblog.com/2011/05/03/exercise-3-71/</link>
		<comments>http://ticsblog.com/2011/05/03/exercise-3-71/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:09:10 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1192</guid>
		<description><![CDATA[123456789101112131415161718192021&#40;define &#40;weight-sum-cubes pair&#41; &#160; &#40;let &#40;&#40;i &#40;car pair&#41;&#41; &#160; &#160; &#160; &#160; &#40;j &#40;cadr pair&#41;&#41;&#41; &#160; &#160; &#40;+ &#40;* i i i&#41; &#40;* j j j&#41;&#41;&#41;&#41; &#40;define sum-cubes &#160; &#40;weighted-pairs integers integers weight-sum-cubes&#41;&#41; &#40;define &#40;iter pairs weight&#41; &#160; &#40;let &#40;&#40;car-pairs &#40;stream-car pairs&#41;&#41; &#160; &#160; &#160; &#160; &#40;cadr-pairs &#40;stream-car &#40;stream-cdr pairs&#41;&#41;&#41; &#160; &#160; &#160; &#160; &#40;cddr-pairs [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>weight<span style="color: #66cc66;">-</span>sum<span style="color: #66cc66;">-</span>cubes pair<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>i <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>j <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> i i i<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> j j j<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> sum<span style="color: #66cc66;">-</span>cubes<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>weighted<span style="color: #66cc66;">-</span>pairs integers integers weight<span style="color: #66cc66;">-</span>sum<span style="color: #66cc66;">-</span>cubes<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>iter pairs weight<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>car<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cadr<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cddr<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> pairs<span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">nil</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>weight car<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>weight cadr<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>weight car<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span> car<span style="color: #66cc66;">-</span>pairs cadr<span style="color: #66cc66;">-</span>pairs<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>iter cddr<span style="color: #66cc66;">-</span>pairs weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#40;</span>iter <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> pairs<span style="color: #66cc66;">&#41;</span> weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> ramanujan<span style="color: #66cc66;">-</span>numbers &nbsp;<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>iter sum<span style="color: #66cc66;">-</span>cubes weight<span style="color: #66cc66;">-</span>sum<span style="color: #66cc66;">-</span>cubes<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Test:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>display<span style="color: #66cc66;">-</span>stream ramanujan<span style="color: #66cc66;">-</span>numbers <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1729</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">12</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">9</span> <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4104</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">9</span> <span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">13832</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">24</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">18</span> <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20683</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span> <span style="color: #cc66cc;">27</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">19</span> <span style="color: #cc66cc;">24</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32832</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4</span> <span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">18</span> <span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">39312</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">34</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">15</span> <span style="color: #cc66cc;">33</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/DmMbHtMdBns" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/03/exercise-3-71/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.70</title>
		<link>http://ticsblog.com/2011/05/03/exercise-3-70/</link>
		<comments>http://ticsblog.com/2011/05/03/exercise-3-70/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:08:01 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1189</guid>
		<description><![CDATA[123456789101112131415161718192021222324252627282930313233343536373839&#40;define &#40;merge-weighted s1 s2 weight&#41; &#160; &#40;cond &#40;&#40;stream-null? s1&#41; s2&#41; &#160; &#160; &#160; &#160; &#40;&#40;stream-null? s2&#41; s1&#41; &#160; &#160; &#160; &#160; &#40;else &#160; &#160; &#160; &#160; &#160;&#40;let &#40;&#40;s1car &#40;stream-car s1&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;s2car &#40;stream-car s2&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;weight-s1car &#40;weight &#40;stream-car s1&#41;&#41;&#41; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>merge<span style="color: #66cc66;">-</span>weighted s1 s2 weight<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> s1<span style="color: #66cc66;">&#41;</span> s2<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> s2<span style="color: #66cc66;">&#41;</span> s1<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>s1car <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> s1<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>s2car <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> s2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>weight<span style="color: #66cc66;">-</span>s1car <span style="color: #66cc66;">&#40;</span>weight <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> s1<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>weight<span style="color: #66cc66;">-</span>s2car <span style="color: #66cc66;">&#40;</span>weight <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> s2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&lt;</span> <span style="color: #66cc66;">=</span> weight<span style="color: #66cc66;">-</span>s1car weight<span style="color: #66cc66;">-</span>s2car<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream s1car <span style="color: #66cc66;">&#40;</span>merge<span style="color: #66cc66;">-</span>weighted <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> s1<span style="color: #66cc66;">&#41;</span> s2 weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream s2car <span style="color: #66cc66;">&#40;</span>merge<span style="color: #66cc66;">-</span>weighted s1 <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> s2<span style="color: #66cc66;">&#41;</span> weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>weighted<span style="color: #66cc66;">-</span>pairs <span style="color: #b1b100;">s</span> <span style="color: #b1b100;">t</span> weight<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream<br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>merge<span style="color: #66cc66;">-</span>weighted<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>weighted<span style="color: #66cc66;">-</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span> weight<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; weight<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref <span style="color: #b1b100;">s</span> n<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> n <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> n <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">for-each</span> proc <span style="color: #b1b100;">s</span> n<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">newline</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> n <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">newline</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">begin</span> <span style="color: #66cc66;">&#40;</span>proc <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">for-each</span> proc <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> n <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>display<span style="color: #66cc66;">-</span>stream <span style="color: #b1b100;">s</span> n<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">for-each</span> display<span style="color: #66cc66;">-</span>line <span style="color: #b1b100;">s</span> n<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>display<span style="color: #66cc66;">-</span>line x<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">newline</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">display</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>a.<br />
</code></p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>accumulated pair<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>i <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>j <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> i j<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> accumulated<span style="color: #66cc66;">-</span>pairs<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>weighted<span style="color: #66cc66;">-</span>pairs integers integers accumulated<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Test:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>display<span style="color: #66cc66;">-</span>stream accumulated<span style="color: #66cc66;">-</span>pairs <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>b.</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>filter pred stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">null?</span> stream<span style="color: #66cc66;">&#41;</span> the<span style="color: #66cc66;">-</span>empty<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>pred <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> stream<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>filter pred<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>filter pred <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>divisible? n<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">remainder</span> n <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">remainder</span> n <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">remainder</span> n <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>weight<span style="color: #66cc66;">-</span>non<span style="color: #66cc66;">-</span>divisible pair<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>i <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>j <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> pair<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span> i<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">3</span> j<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">5</span> i j<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> non<span style="color: #66cc66;">-</span>divisible<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>filter <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">not</span> <span style="color: #66cc66;">&#40;</span>divisible? x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> integers<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> non<span style="color: #66cc66;">-</span>divisible<span style="color: #66cc66;">-</span>pairs<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>weighted<span style="color: #66cc66;">-</span>pairs non<span style="color: #66cc66;">-</span>divisible non<span style="color: #66cc66;">-</span>divisible weight<span style="color: #66cc66;">-</span>non<span style="color: #66cc66;">-</span>divisible<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Test:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>display<span style="color: #66cc66;">-</span>stream non<span style="color: #66cc66;">-</span>divisible<span style="color: #66cc66;">-</span>pairs <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">7</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">13</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">17</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">19</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">23</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">29</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">31</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">7</span> <span style="color: #cc66cc;">7</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/YQPCzdo9lBs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/03/exercise-3-70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.69</title>
		<link>http://ticsblog.com/2011/05/03/exercise-3-69/</link>
		<comments>http://ticsblog.com/2011/05/03/exercise-3-69/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:05:25 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1186</guid>
		<description><![CDATA[1234567891011121314&#40;define &#40;triples s t u&#41; &#160; &#40;cons-stream &#160; &#160;&#40;list &#40;stream-car s&#41; &#40;stream-car t&#41; &#40;stream-car u&#41;&#41; &#160; &#160;&#40;interleave &#160; &#160; &#40;stream-map &#40;lambda &#40;x&#41; &#40;append &#40;list &#40;stream-car s&#41;&#41; x&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;stream-cdr &#40;pairs t u&#41;&#41;&#41; &#160; &#160; &#40;triples &#40;stream-cdr s&#41; &#40;stream-cdr t&#41; &#40;stream-cdr u&#41;&#41;&#41;&#41;&#41; &#40;define pythagorean &#160; &#40;stream-filter &#160; &#160;&#40;lambda &#40;x&#41; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>triples <span style="color: #b1b100;">s</span> <span style="color: #b1b100;">t</span> u<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream<br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> u<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>interleave<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #66cc66;">&#40;</span>pairs <span style="color: #b1b100;">t</span> u<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>triples <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> u<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> pythagorean<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>filter<br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span>square <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>square <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>square <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">caddr</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>triples integer integer integer<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/s6Vsvr32ZUs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/03/exercise-3-69/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.68</title>
		<link>http://ticsblog.com/2011/05/03/exercise-3-68/</link>
		<comments>http://ticsblog.com/2011/05/03/exercise-3-68/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:04:32 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1183</guid>
		<description><![CDATA[Louis&#8217;s version causes an infinite loop because there is no delayed evaluation of the recursive call (using the cons-stream left out).]]></description>
			<content:encoded><![CDATA[<p>Louis&#8217;s version causes an infinite loop because there is no delayed evaluation of the recursive call (using the <em>cons-stream</em> left out).</p>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/7Se3pWA0GEk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/03/exercise-3-68/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.67</title>
		<link>http://ticsblog.com/2011/05/03/exercise-3-67/</link>
		<comments>http://ticsblog.com/2011/05/03/exercise-3-67/#comments</comments>
		<pubDate>Tue, 03 May 2011 08:03:16 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1178</guid>
		<description><![CDATA[12345678910&#40;define &#40;pairs s t&#41; &#160; &#40;cons-stream &#160; &#160;&#40;list &#40;stream-car s&#41; &#40;stream-car t&#41;&#41; &#160; &#160;&#40;interleave &#160; &#160; &#40;stream-map &#40;lambda &#40;x&#41; &#40;list &#40;stream-car s&#41; x&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#40;stream-cdr t&#41;&#41; &#160; &#160; &#40;interleave &#160; &#160; &#160;&#40;stream-map &#40;lambda &#40;x&#41; &#40;list x &#40;stream-car t&#41;&#41;&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;stream-cdr s&#41;&#41; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>pairs <span style="color: #b1b100;">s</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream<br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>interleave<br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>interleave<br />
&nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> x <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>pairs <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">t</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/dP08N_D0rRM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/03/exercise-3-67/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.66</title>
		<link>http://ticsblog.com/2011/05/02/exercise-3-66/</link>
		<comments>http://ticsblog.com/2011/05/02/exercise-3-66/#comments</comments>
		<pubDate>Mon, 02 May 2011 08:12:44 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1170</guid>
		<description><![CDATA[12&#40;pairs integers integers&#41; =&#62; &#40;0,0&#41;, &#40;0,1&#41;, &#40;1,1&#41;, &#40;0,2&#41;, &#40;1,2&#41;, &#40;2,2&#41; ... Pair Pos n (1,1) 1 1 (1,2) 2 2 (2,2) 3 (1,3) 4 3 (2,3) 5 (1,4) 6 4 (3,3) 7 (1,5) 8 5 (2,4) 9 &#8230; &#8230; &#8230; (1,n) appears in position 2n-2. For n=100, 2·100-2=198 positions for (1,100).]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>pairs integers integers<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> ...</div></td></tr></tbody></table></div>
<table border="1" align="center">
<tr>
<th>Pair</th>
<th>Pos</th>
<th>n</th>
</tr>
<tr>
<td>(1,1)</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>(1,2)</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>(2,2)</td>
<td>3</td>
<td></td>
</tr>
<tr>
<td>(1,3)</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>(2,3)</td>
<td>5</td>
<td></td>
</tr>
<tr>
<td>(1,4)</td>
<td>6</td>
<td>4</td>
</tr>
<tr>
<td>(3,3)</td>
<td>7</td>
<td></td>
</tr>
<tr>
<td>(1,5)</td>
<td>8</td>
<td>5</td>
</tr>
<tr>
<td>(2,4)</td>
<td>9</td>
<td></td>
</tr>
<tr>
<td>&#8230;</td>
<td>&#8230;</td>
<td>&#8230;</td>
</tr>
</table>
<p>(1,n) appears in position 2n-2. For n=100, 2·100-2=198 positions for (1,100).</p>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/b2XYgRgp3Tw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/02/exercise-3-66/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
		<item>
		<title>Exercise 3.65</title>
		<link>http://ticsblog.com/2011/05/02/exercise-3-65/</link>
		<comments>http://ticsblog.com/2011/05/02/exercise-3-65/#comments</comments>
		<pubDate>Mon, 02 May 2011 08:04:00 +0000</pubDate>
		<dc:creator>Rubén Barroso</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[scheme]]></category>
		<category><![CDATA[sicp]]></category>

		<guid isPermaLink="false">http://ticsblog.com/?p=1167</guid>
		<description><![CDATA[12345678910111213141516171819202122232425262728&#40;define &#40;ln2-summands n&#41; &#160; &#40;cons-stream &#40;/ 1.0 n&#41; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#40;stream-map - &#40;ln2-summands &#40;+ n 1&#41;&#41;&#41;&#41;&#41; &#40;define ln2-stream &#160; &#40;partial-sums &#40;ln2-summands 1&#41;&#41;&#41; &#40;define &#40;euler-transform s&#41; &#160; &#40;let &#40;&#40;s0 &#40;stream-ref s 0&#41;&#41; &#160; &#160; &#160; &#160; &#160; ; S[n-1] &#160; &#160; &#160; &#160; &#40;s1 &#40;stream-ref s 1&#41;&#41; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>ln2<span style="color: #66cc66;">-</span>summands n<span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">1.0</span> n<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">-</span> <span style="color: #66cc66;">&#40;</span>ln2<span style="color: #66cc66;">-</span>summands <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> n <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> ln2<span style="color: #66cc66;">-</span>stream<br />
&nbsp; <span style="color: #66cc66;">&#40;</span>partial<span style="color: #66cc66;">-</span>sums <span style="color: #66cc66;">&#40;</span>ln2<span style="color: #66cc66;">-</span>summands <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>euler<span style="color: #66cc66;">-</span>transform <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>s0 <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref <span style="color: #b1b100;">s</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">; S[n-1]</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>s1 <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref <span style="color: #b1b100;">s</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">; S[n]</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>s2 <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref <span style="color: #b1b100;">s</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;">; S[n+1]</span><br />
&nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> s2 <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">/</span> <span style="color: #66cc66;">&#40;</span>square <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> s2 s1<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> s0 <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">-</span><span style="color: #cc66cc;">2</span> s1<span style="color: #66cc66;">&#41;</span> s2<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>euler<span style="color: #66cc66;">-</span>transform <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>square n<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> n n<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>tableau transform <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>cons<span style="color: #66cc66;">-</span>stream <span style="color: #b1b100;">s</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>tableau transform<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #66cc66;">&#40;</span>transform <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>accelerated<span style="color: #66cc66;">-</span><span style="color: #b1b100;">sequence</span> transform <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; <span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span> stream<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>tableau transform <span style="color: #b1b100;">s</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><br />
<br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #66cc66;">&#40;</span>accelerated<span style="color: #66cc66;">-</span><span style="color: #b1b100;">sequence</span> euler<span style="color: #66cc66;">-</span>transform<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ln2<span style="color: #66cc66;">-</span>stream<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Convergence test:</p>
<div class="codecolorer-container scheme mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #cc66cc;">1.0</span><br />
<br />
<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #cc66cc;">0.7</span><br />
<br />
<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #cc66cc;">0.6932773109243697</span><br />
<br />
<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #cc66cc;">0.6931488693329254</span><br />
<br />
<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #cc66cc;">0.6931471960735491</span><br />
<br />
<span style="color: #66cc66;">&#40;</span>stream<span style="color: #66cc66;">-</span>ref acc<span style="color: #66cc66;">-</span>ln2 <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #66cc66;">=&gt;</span> <span style="color: #cc66cc;">0.6931471806635636</span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/ticsblog/mNZI/~4/ROSWQ1ajCmM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ticsblog.com/2011/05/02/exercise-3-65/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/uk/</creativeCommons:license>
	</item>
	</channel>
</rss><!-- Dynamic page generated in 3.073 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-06 14:53:04 -->

