<rss version="2.0">
  <channel>
    <title>The Spirit in the Computer</title>
    <link>http://wiki.wordaligned.org/sicp/published/HomePage</link>
    <description>An Instiki wiki</description>
    <language>en-us</language>
    <ttl>40</ttl>
    <item>
      <title>Schedule</title>
      <description>&lt;p&gt;&lt;a href="http://wiki.wordaligned.org/sicp/edit/Schedule"&gt;Edit this page.&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Who does or did what is no longer explicitly listed here even though the group remains active. We&amp;#8217;ve just reached the end of Chapter 3, and will recommence with Chapter 4 on January 1st 2007, according to the following schedule.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
(define (who-does-exercise exercise)
    (let ((ex-mod-5 (modulo exercise 5)))
      (cond 
        ((= ex-mod-5 0) "Thomas, Friday")
        ((= ex-mod-5 1) "Martin, Monday")
        ((= ex-mod-5 2) "Holger (substituting until others come back), Tuesday")
        ((= ex-mod-5 3) "Pal, Wednesday")
        ((= ex-mod-5 4) "Mike, Thursday")
        (else "Error -- I don't know about exercise" exercise))))
&lt;/code&gt;&lt;/pre&gt;

	&lt;h2&gt;History&lt;/h2&gt;


	&lt;p&gt;M 7th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.93"&gt;2.93&lt;/a&gt;&lt;br /&gt;T 8th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.94"&gt;2.94&lt;/a&gt;&lt;br /&gt;W 9th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.95"&gt;2.95&lt;/a&gt;&lt;br /&gt;T 10th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.96"&gt;2.96&lt;/a&gt;&lt;br /&gt;F 11th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.97"&gt;2.97&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 31st Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.88"&gt;2.88&lt;/a&gt;&lt;br /&gt;T 1st open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.89"&gt;2.89&lt;/a&gt;&lt;br /&gt;W 2nd Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.90"&gt;2.90&lt;/a&gt;&lt;br /&gt;T 3rd Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.91"&gt;2.91&lt;/a&gt;&lt;br /&gt;F 4th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.92"&gt;2.92&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 24th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.83"&gt;2.83&lt;/a&gt;&lt;br /&gt;T 25th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.84"&gt;2.84&lt;/a&gt;&lt;br /&gt;W 26th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.85"&gt;2.85&lt;/a&gt;&lt;br /&gt;T 27th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.86"&gt;2.86&lt;/a&gt;&lt;br /&gt;F 28th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.87"&gt;2.87&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 17th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.78"&gt;2.78&lt;/a&gt;&lt;br /&gt;T 18th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.79"&gt;2.79&lt;/a&gt;&lt;br /&gt;W 19th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.80"&gt;2.80&lt;/a&gt;&lt;br /&gt;T 20th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.81"&gt;2.81&lt;/a&gt;&lt;br /&gt;F 21st Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.82"&gt;2.82&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 10th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_thm_2.73"&gt;2.73&lt;/a&gt;&lt;br /&gt;T 11st open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_thm_2.74"&gt;2.74&lt;/a&gt;&lt;br /&gt;W 12nd Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_thm_2.75"&gt;2.75&lt;/a&gt;&lt;br /&gt;T 13rd Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_thm_2.76"&gt;2.76&lt;/a&gt;&lt;br /&gt;F 14th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-18.html#%_thm_2.77"&gt;2.77&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;(skipping 2.67)&lt;/p&gt;


	&lt;p&gt;M 3rd Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.68"&gt;2.68&lt;/a&gt;&lt;br /&gt;T 4th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.69"&gt;2.69&lt;/a&gt;&lt;br /&gt;W 5th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.70"&gt;2.70&lt;/a&gt;&lt;br /&gt;T 6th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.71"&gt;2.71&lt;/a&gt;&lt;br /&gt;F 7th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.72"&gt;2.72&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 26th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.62"&gt;2.62&lt;/a&gt;&lt;br /&gt;T 27th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.63"&gt;2.63&lt;/a&gt;&lt;br /&gt;W 28th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.64"&gt;2.64&lt;/a&gt;&lt;br /&gt;T 29th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.65"&gt;2.65&lt;/a&gt;&lt;br /&gt;F 30th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.66"&gt;2.66&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 19th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.57"&gt;2.57&lt;/a&gt;&lt;br /&gt;T 20th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.58"&gt;2.58&lt;/a&gt;&lt;br /&gt;W 21st Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.59"&gt;2.59&lt;/a&gt;&lt;br /&gt;T 22nd Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.60"&gt;2.60&lt;/a&gt;&lt;br /&gt;F 23rd Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.61"&gt;2.61&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 12nd Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.52"&gt;2.52&lt;/a&gt;&lt;br /&gt;T 13rd open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.53"&gt;2.53&lt;/a&gt;&lt;br /&gt;W 14th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.54"&gt;2.54&lt;/a&gt;&lt;br /&gt;T 15th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.55"&gt;2.55&lt;/a&gt;&lt;br /&gt;F 16th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-16.html#%_thm_2.56"&gt;2.56&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 5th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.47"&gt;2.47&lt;/a&gt;&lt;br /&gt;T 6th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.48"&gt;2.48&lt;/a&gt;&lt;br /&gt;W 7th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.49"&gt;2.49&lt;/a&gt;&lt;br /&gt;T 8th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.50"&gt;2.50&lt;/a&gt;&lt;br /&gt;F 9th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.51"&gt;2.51&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 29th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.42"&gt;2.42&lt;/a&gt;&lt;br /&gt;T 30th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.43"&gt;2.43&lt;/a&gt;&lt;br /&gt;W 31st Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.44"&gt;2.44&lt;/a&gt;&lt;br /&gt;T 1st Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.45"&gt;2.45&lt;/a&gt;&lt;br /&gt;F 2nd &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.46"&gt;2.46&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 22nd Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.37"&gt;2.37&lt;/a&gt;&lt;br /&gt;T 23rd Jan &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.38"&gt;2.38&lt;/a&gt;&lt;br /&gt;W 24th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.39"&gt;2.39&lt;/a&gt;&lt;br /&gt;T 25th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.40"&gt;2.40&lt;/a&gt;&lt;br /&gt;F 26th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.41"&gt;2.41&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 15th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.32"&gt;2.32&lt;/a&gt;&lt;br /&gt;T 16th open &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.33"&gt;2.33&lt;/a&gt;&lt;br /&gt;W 17th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.34"&gt;2.34&lt;/a&gt;&lt;br /&gt;T 18th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.35"&gt;2.35&lt;/a&gt;&lt;br /&gt;F 19th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.36"&gt;2.36&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 8th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.27"&gt;2.27&lt;/a&gt;&lt;br /&gt;T 9th Jan &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.28"&gt;2.28&lt;/a&gt;&lt;br /&gt;W 10th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.29"&gt;2.29&lt;/a&gt;&lt;br /&gt;T 11th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.30"&gt;2.30&lt;/a&gt;&lt;br /&gt;F 12nd Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.31"&gt;2.31&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 1st Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.22"&gt;2.22&lt;/a&gt;&lt;br /&gt;T 2nd Jan &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.23"&gt;2.23&lt;/a&gt;&lt;br /&gt;W 3rd Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.24"&gt;2.24&lt;/a&gt;&lt;br /&gt;T 4th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.25"&gt;2.25&lt;/a&gt;&lt;br /&gt;F 5th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.26"&gt;2.26&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 24th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.17"&gt;2.17&lt;/a&gt;&lt;br /&gt;T 25th Jan &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.18"&gt;2.18&lt;/a&gt;&lt;br /&gt;W 26th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.19"&gt;2.19&lt;/a&gt;&lt;br /&gt;T 27th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.20"&gt;2.20&lt;/a&gt;&lt;br /&gt;F 28th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#%_thm_2.21"&gt;2.21&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 17th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.12"&gt;2.12&lt;/a&gt;&lt;br /&gt;T 18th Jan &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.13"&gt;2.13&lt;/a&gt;&lt;br /&gt;W 19th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.14"&gt;2.14&lt;/a&gt;&lt;br /&gt;T 20th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.15"&gt;2.15&lt;/a&gt;&lt;br /&gt;F 21st &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.16"&gt;2.16&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;M 10th Martin &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.7"&gt;2.7&lt;/a&gt;&lt;br /&gt;T 11th Jan &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.8"&gt;2.8&lt;/a&gt;&lt;br /&gt;W 12th Pal &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.9"&gt;2.9&lt;/a&gt;&lt;br /&gt;T 13th Mike &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.10"&gt;2.10&lt;/a&gt;&lt;br /&gt;F 14th Thomas &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.11"&gt;2.11&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;F 31st &lt;span class="newWikiWord"&gt;Jan&lt;a href="http://wiki.wordaligned.org/sicp/new/Jan"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.1"&gt;2.1&lt;/a&gt;&lt;br /&gt;M 3rd &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Tim"&gt;Tim&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.2"&gt;2.2&lt;/a&gt;&lt;br /&gt;T 4th &lt;span class="newWikiWord"&gt;Pal&lt;a href="http://wiki.wordaligned.org/sicp/new/Pal"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.3"&gt;2.3&lt;/a&gt;&lt;br /&gt;W 5th &lt;span class="newWikiWord"&gt;Mike&lt;a href="http://wiki.wordaligned.org/sicp/new/Mike"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.4"&gt;2.4&lt;/a&gt;&lt;br /&gt;T 6th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.5"&gt;2.5&lt;/a&gt;&lt;br /&gt;F 7th &lt;span class="newWikiWord"&gt;Martin&lt;a href="http://wiki.wordaligned.org/sicp/new/Martin"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#%_thm_2.6"&gt;2.6&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;T 23rd &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Tim"&gt;Tim&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.41"&gt;1.41&lt;/a&gt;&lt;br /&gt;F 24th &lt;span class="newWikiWord"&gt;Pal&lt;a href="http://wiki.wordaligned.org/sicp/new/Pal"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.42"&gt;1.42&lt;/a&gt;&lt;br /&gt;M 27th &lt;span class="newWikiWord"&gt;Jan&lt;a href="http://wiki.wordaligned.org/sicp/new/Jan"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.43"&gt;1.43&lt;/a&gt;&lt;br /&gt;T 28th &lt;span class="newWikiWord"&gt;Mike&lt;a href="http://wiki.wordaligned.org/sicp/new/Mike"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.44"&gt;1.44&lt;/a&gt;&lt;br /&gt;W 29th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.45"&gt;1.45&lt;/a&gt;&lt;br /&gt;T 30th &lt;span class="newWikiWord"&gt;Martin&lt;a href="http://wiki.wordaligned.org/sicp/new/Martin"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.46"&gt;1.46&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;W 15th &lt;span class="newWikiWord"&gt;Pal&lt;a href="http://wiki.wordaligned.org/sicp/new/Pal"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.35"&gt;1.35&lt;/a&gt;&lt;br /&gt;T 16th &lt;span class="newWikiWord"&gt;Jan&lt;a href="http://wiki.wordaligned.org/sicp/new/Jan"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.36"&gt;1.36&lt;/a&gt;&lt;br /&gt;F 17th &lt;span class="newWikiWord"&gt;Mike&lt;a href="http://wiki.wordaligned.org/sicp/new/Mike"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.37"&gt;1.37&lt;/a&gt;&lt;br /&gt;M 20th &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.38"&gt;1.38&lt;/a&gt;&lt;br /&gt;T 21st &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Tim"&gt;Tim&lt;/a&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.39"&gt;1.39&lt;/a&gt;&lt;br /&gt;W 22nd &lt;span class="newWikiWord"&gt;Martin&lt;a href="http://wiki.wordaligned.org/sicp/new/Martin"&gt;?&lt;/a&gt;&lt;/span&gt; &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_thm_1.40"&gt;1.40&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 10 Oct 2007 06:42:05 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Schedule</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Schedule</link>
    </item>
    <item>
      <title>More Resources</title>
      <description>&lt;h2&gt;SICP at Berkeley&lt;/h2&gt;


	&lt;p&gt;Berkeley also run a course based on Structure and Interpretation of Computer Programs. &lt;a href="http://www-inst.eecs.berkeley.edu/~cs61a/sp06/"&gt;http://www-inst.eecs.berkeley.edu/~cs61a/sp06/&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The Lectures are Available online &lt;a href="http://webcast.berkeley.edu/courses/archive.php?seriesid=1906978270"&gt;here&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;Some interesting stuff on queues&lt;/h2&gt;


	&lt;p&gt;Here are two interesting papers regarding the implementation of queues:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://mumble.net/~jar/pubs/scheme-of-things/opaque-types.ps"&gt;http://mumble.net/~jar/pubs/scheme-of-things/opaque-types.ps&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.merl.com/papers/TR91-04/"&gt;http://www.merl.com/papers/TR91-04/&lt;/a&gt; &amp;#8212;third part&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Termite Scheme&lt;/h2&gt;


	&lt;p&gt;Functional programming seems a good starting point for parallelisation&amp;#8212;that is, exploiting multiple processor architectures. Termite Scheme tries to implement Erlang style parallel programming in Scheme. Try googling for &lt;a href="http://www.google.com/?q=termite+scheme"&gt;termite scheme&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Here are a couple of links &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Holger"&gt;Holger&lt;/a&gt; found earlier:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://lambda-the-ultimate.org/node/841"&gt;http://lambda-the-ultimate.org/node/841&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://patricklogan.blogspot.com/2005/07/termite-lisp-for-distributed-computing.html"&gt;http://patricklogan.blogspot.com/2005/07/termite-lisp-for-distributed-computing.html&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Co-routines in Scheme&lt;/h2&gt;


	&lt;p&gt;&lt;a href="http://www.scheme.com/tspl3"&gt;The Scheme Programming Language&lt;/a&gt; provides an elegant implementation of co-routines implemented entirely in Scheme.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.scheme.com/tspl3/examples.html"&gt;http://www.scheme.com/tspl3/examples.html#./examples:h11&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;How&amp;#8217;s this for an exercise?&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Exercise 9.11.4  Implement the kernel of a small operating system using engines for processes. Processes should request services (such as reading input from the user) by evaluating an expression of the form (trap &amp;#8216;request). Use call/cc and engine-return from the preceding exercise to implement trap.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h2&gt;Adding syntax to Scheme (defining macros)&lt;/h2&gt;


Some examples of / tutorials on &lt;code&gt;define-syntax&lt;/code&gt;:
	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://people.csail.mit.edu/jhbrown/scheme/macros03.scm"&gt;http://people.csail.mit.edu/jhbrown/scheme/macros03.scm&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.scheme.com/tspl3/syntax.html"&gt;http://www.scheme.com/tspl3/syntax.html&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://home.comcast.net/~prunesquallor/macro.txt"&gt;http://home.comcast.net/~prunesquallor/macro.txt&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Scheme in Scheme&lt;/h2&gt;


	&lt;p&gt;Regarding stuff from chapter 4 (implementing a scheme interpreter):&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Henriy Baker had an article in Lisp Pointers Vol.5, No. 4 (1992) &amp;#8220;Metacircular Semantics for Common Lisp Special Forms&amp;#8221; &lt;a href="http://home.pipeline.com/~hbaker1/MetaCircular.html"&gt;http://home.pipeline.com/~hbaker1/MetaCircular.html&lt;/a&gt; (or &lt;a href="http://home.pipeline.com/~hbaker1/MetaCircular.ps.gz"&gt;http://home.pipeline.com/~hbaker1/MetaCircular.ps.gz&lt;/a&gt; for the &lt;span class="newWikiWord"&gt;Post Script&lt;a href="http://wiki.wordaligned.org/sicp/new/PostScript"&gt;?&lt;/a&gt;&lt;/span&gt; version) in which he shows how the &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt; special forms can be implemented via other &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt; special forms.  Quite an interesting read, although you will have to learn about back-quotes to understand the implementations.&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Fri, 26 Jan 2007 09:36:08 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/MoreResources</guid>
      <link>http://wiki.wordaligned.org/sicp/published/MoreResources</link>
    </item>
    <item>
      <title>Scratch Pad</title>
      <description>&lt;p&gt;Try out &lt;a href="http://instiki.org"&gt;Instiki&lt;/a&gt; markup here. This Wiki uses Textile markup, so, alternatively, you can click across to &lt;a href="http://www.textism.com/tools/textile/"&gt;Textism&lt;/a&gt; and try things out there.&lt;br /&gt;You can do preformatted text like this:&lt;/p&gt;


&lt;pre&gt;
                           .,ad88888888baa,
                  _    ,d8P"""        ""9888ba.      _
                 /  .a8"          ,ad88888888888a   |\
               /   aP'          ,88888888888888888a   \
              /  ,8"           ,88888888888888888888,  \
             |  ,8'            (888888888888888888888, |
            /  ,8'             `8888888888888888888888  \
            |  8)               `888888888888888888888, |
Procedure,  |  8                  "88888 Apply 8888888) | Expression
Arguments   |  8     Eval          `888888888888888888) | Environment
            |  8)                    "8888888888888888  |
            \  (b                     "88888888888888'  /
             | `8,                     8888888888888)  |
             \  "8a                   ,888888888888)  /
              \   V8,                 d88888888888"  /
              _\| `8b,             ,d8888888888P' _/
                     `V8a,       ,ad8888888888P'
                        ""88888888888888888P" 
                             """""""""""" 
                              [graphic by Normand Veillux, modified]
&lt;/pre&gt;

	&lt;blockquote&gt;
		&lt;p&gt;Blockquotes work just fine! User error on my part.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h1&gt;Heading1&lt;/h1&gt;


	&lt;p&gt;You can reference footnotes&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;


	&lt;h2&gt;Heading2&lt;/h2&gt;


	&lt;h3&gt;Heading3&lt;/h3&gt;


	&lt;p&gt;&lt;em&gt;italics&lt;/em&gt;
&lt;strong&gt;bold&lt;/strong&gt;&lt;/p&gt;


&lt;hr&gt;

	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; This is footnote 1&lt;/p&gt;


	&lt;p&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/LanguageWars"&gt;Language Wars&lt;/a&gt;&lt;br /&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/PeterNorvig"&gt;Peter Norvig&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 04 Jan 2007 09:29:34 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/ScratchPad</guid>
      <link>http://wiki.wordaligned.org/sicp/published/ScratchPad</link>
    </item>
    <item>
      <title>Home Page</title>
      <description>&lt;h1&gt;Welcome&lt;/h1&gt;


	&lt;p&gt;Welcome to the &amp;#8220;The Spirit in the Computer&amp;#8221;. This &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Wiki"&gt;Wiki&lt;/a&gt; has been set up in support of an &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ACCU"&gt;ACCU&lt;/a&gt; mentored project. You&amp;#8217;re most welcome to edit pages but you&amp;#8217;ll have to &lt;a href="http://wiki.wordaligned.org/sicp/login"&gt;log in&lt;/a&gt; first. Contact &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Thomas"&gt;Thomas&lt;/a&gt; for the password.&lt;/p&gt;


	&lt;h2&gt;The Project&lt;/h2&gt;


	&lt;p&gt;The project is a study group for the book &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Structure+and+Interpretation+of+Computer+Programs"&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;. This is a famous book which has been used in undergraduate courses in many  universities to teach students general principles of programming. The language used in the text is &lt;a href="http://www.schemers.org/Documents/Standards/R5RS/HTML/"&gt;Scheme&lt;/a&gt;, a dialect of Lisp, which the authors claim to be a perfect teaching language since it allows them to concentrate on fundamental concepts they want to present without having to teach very much syntax.&lt;/p&gt;


	&lt;h2&gt;Quick Links&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Schedule"&gt;Schedule&lt;/a&gt;&amp;#8212;who&amp;#8217;s doing what when&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Students"&gt;Students&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book.html"&gt;The Wizard Book&lt;/a&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start"&gt;here&amp;#8217;s the contents page&lt;/a&gt; &lt;/li&gt;
		&lt;li&gt;&lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-37.html#%_chap_Temp_850"&gt;here are the exercises&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://mitpress.mit.edu/sicp/code/index.html"&gt;and here&amp;#8217;s the code you&amp;#8217;ll need for these exercises&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.neilvandyke.org/sicp-texi/"&gt;the contents in texinfo for people preferring text interfaces&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.cs.uvm.edu/~dvanhorn/tmp/sicp.pdf"&gt;the contents in &lt;span class="caps"&gt;PDF&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/"&gt;The Lectures&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://schemers.org"&gt;Scheme Resources&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Interpreters"&gt;Interpreters&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Standards"&gt;Standards&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/MoreBooks"&gt;More Books&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/MoreResources"&gt;More Resources&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/FrequentlyAskedQuestions"&gt;Frequently Asked Questions&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ProgressReport"&gt;Progress Report&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ScratchPad"&gt;Scratch Pad&lt;/a&gt;&amp;#8212;a place to experiment&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h2&gt;Why &amp;#8220;The Spirit in the Computer&amp;#8221;?&lt;/h2&gt;


	&lt;p&gt;Because &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/The+Wizard+Book"&gt;The Wizard Book&lt;/a&gt; is dedicated: &amp;#8220;in respect and admiration, to the spirit that lives in the computer.&amp;#8221;&lt;/p&gt;</description>
      <pubDate>Wed, 13 Dec 2006 09:43:44 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/HomePage</guid>
      <link>http://wiki.wordaligned.org/sicp/published/HomePage</link>
    </item>
    <item>
      <title>Tim</title>
      <description></description>
      <pubDate>Sun, 15 Oct 2006 13:22:51 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Tim</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Tim</link>
    </item>
    <item>
      <title>More Books</title>
      <description>&lt;h2&gt;The Scheme Programming Language&lt;/h2&gt;


	&lt;p&gt;The Scheme Programming Language by R. K. Dybvig&amp;#8212;you&amp;#8217;ll notice his name is also on &lt;span class="caps"&gt;R5RS &lt;/span&gt;&amp;#8212;describes all the features of standard Scheme. &lt;span class="caps"&gt;SICP&lt;/span&gt; won&amp;#8217;t be using every feature of the language, so you may find this book useful if you use Scheme outside the project.  The third edition is available &lt;a href="http://www.scheme.com/tspl3/"&gt;online.&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;The Little Schemer&lt;/h2&gt;


	&lt;p&gt;An excellent book for getting the feel of the language is &lt;em&gt;The Little Schemer&lt;/em&gt; by Friedman and Felleisen.  It&amp;#8217;s quite different from any other programming text I&amp;#8217;ve read (although the cover reminds me of &lt;em&gt;The Fortran Colouring Book&lt;/em&gt; by Roger Kaufman), but it&amp;#8217;s very useful. In the foreward, Gerald Sussman describes it as something that can &amp;#8220;perform the same service that Hanon&amp;#8217;s finger exercises or Czerny&amp;#8217;s piano studies perform for the student of piano.&amp;#8221;  There&amp;#8217;s no other way to describe it without showing it to you.&lt;/p&gt;


	&lt;h2&gt;Practical Common Lisp&lt;/h2&gt;


	&lt;p&gt;Peter Seibel&amp;#8217;s book is also available &lt;a href="http://www.gigamonkeys.com/book/"&gt;online.&lt;/a&gt; This book looks particularly interesting since it contains several practical Lisp applications&amp;#8212;rather than the more academic ones we find in &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/The+Wizard+Book"&gt;The Wizard Book&lt;/a&gt;.&lt;/p&gt;


	&lt;h2&gt;Hackers &amp;#38; Painters&lt;/h2&gt;


	&lt;p&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Paul+Graham"&gt;Paul Graham&lt;/a&gt;&amp;#8217;s book is really a collection of essays, many of which promote Lisp in one way or another. They&amp;#8217;ve certainly convinced me the language is worth exploring. &lt;a href="http://www.paulgraham.com/hackpaint.html"&gt;Here&amp;#8217;s the book&amp;#8217;s homepage&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 10 Oct 2006 08:34:38 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/MoreBooks</guid>
      <link>http://wiki.wordaligned.org/sicp/published/MoreBooks</link>
    </item>
    <item>
      <title>Holger</title>
      <description>&lt;h1&gt;Holger Durer&lt;/h1&gt;


	&lt;p&gt;I am just lurking on the list occasionally making the odd comment.&lt;/p&gt;


	&lt;p&gt;I used scheme in a previous life (read: before getting a job and family) and am following this project as I never got around to studying &lt;span class="caps"&gt;SICP&lt;/span&gt; in university.&lt;/p&gt;</description>
      <pubDate>Fri, 22 Sep 2006 09:58:29 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Holger</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Holger</link>
    </item>
    <item>
      <title>Standards</title>
      <description>&lt;h2&gt;The &lt;span class="caps"&gt;IEEE &lt;/span&gt;Standard (R5RS)&lt;/h2&gt;


	&lt;p&gt;Scheme has an &lt;span class="caps"&gt;IEEE&lt;/span&gt; standard as well as a series of revisions to that standard, the latest of which is named &amp;#8220;The Revised(5) Report on the Algorithmic Language Scheme.&amp;#8221;  The latter is available at the link below.  It&amp;#8217;s a fairly readable reference and, depending on how well your interpreter&amp;#8217;s documentation makes the distinction, you&amp;#8217;ll want to refer to it so you&amp;#8217;ll know the difference between standard parts of the language and extra features added by your interpreter.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.schemers.org/Documents/Standards/R5RS/HTML/"&gt;http://www.schemers.org/Documents/Standards/R5RS/HTML/&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;d like to draw your attention to &lt;a href="http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html"&gt;this section&lt;/a&gt; in particular, since one of the early exercises concerns numeric representations, and also this &lt;a href="http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-2.html"&gt;next section&lt;/a&gt;
 because the idea of tail recursion comes up early in the text (and as C++ programmers many of us are probably going to be concerned about performance with all the recursion going on):&lt;/p&gt;


	&lt;h2&gt;Scheme Requests for Implementation (SRFIs)&lt;/h2&gt;


	&lt;p&gt;Besides &lt;span class="caps"&gt;R5RS&lt;/span&gt; there are a set of proposed features for standard Scheme called the &lt;span class="caps"&gt;SRF&lt;/span&gt;Is (Scheme Requests for Implementation).  I think of these as similar to the Boost libraries for C++: better to use than a vendor specific feature or library by being defacto standards and because they may one day become part of the actual standard:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://srfi.schemers.org/"&gt;http://srfi.schemers.org/&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;R6RS&lt;/h2&gt;


	&lt;p&gt;A draft of the next version of the Scheme standard is available at &lt;a href="http://www.r6rs.org"&gt;http://www.r6rs.org&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 15 Sep 2006 14:57:18 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Standards</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Standards</link>
    </item>
    <item>
      <title>Frequently Asked Questions</title>
      <description>&lt;h3&gt;What&amp;#8217;s Currying?&lt;/h3&gt;


	&lt;p&gt;It sounds like you&amp;#8217;re interested in functional programming. The &lt;a href="http://www.cs.nott.ac.uk/~gmh/faq.html"&gt;comp.lang.functional &lt;span class="caps"&gt;FAQ&lt;/span&gt;&lt;/a&gt; answers this question and many more.&lt;/p&gt;


	&lt;h3&gt;What&amp;#8217;s an &lt;span class="caps"&gt;ACCU &lt;/span&gt;Mentored Developers Project?&lt;/h3&gt;


	&lt;p&gt;The project centres on an email reflector. People sign up as either observers or students, and start receiving emails&amp;#8212;typically it seems to be three or four a day. Students are assigned exercises from &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/The+Wizard+Book"&gt;The Wizard Book&lt;/a&gt; and submit their answers to the reflector for comment.&lt;/p&gt;


	&lt;p&gt;Mentors and observers are on the list to offer expert advice.&lt;/p&gt;


	&lt;h3&gt;Sounds Interesting&amp;#8212;Can I Join?&lt;/h3&gt;


	&lt;p&gt;Yes, if you&amp;#8217;re a member of the &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ACCU"&gt;ACCU&lt;/a&gt;. Head over to the mentored developers page on the website and follow the instructions.&lt;/p&gt;


	&lt;h3&gt;Can you supply an implementation of &amp;#8220;put&amp;#8221; and &amp;#8220;get&amp;#8221;?&lt;/h3&gt;


	&lt;p&gt;All the source code for the exercises, including implementations of library functions required, can be found &lt;a href="http://mitpress.mit.edu/sicp/code/index.html"&gt;here&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Why isn&amp;#8217;t &amp;#8220;nil&amp;#8221; working?&lt;/h3&gt;


	&lt;p&gt;The quick answer is: nil is no longer part of Scheme, use &amp;#8216;() instead. The long answer follows&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Early examples in Chapter 2 use &lt;strong&gt;nil&lt;/strong&gt; as a list terminator, but when these examples are run using (e.g.) &lt;span class="caps"&gt;MIT &lt;/span&gt;Scheme, you get: &lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;;Unbound variable: nil&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Similarly, using &lt;strong&gt;()&lt;/strong&gt; or &lt;strong&gt;null&lt;/strong&gt; in place of nil may work on some implementations, but neither is portable. &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/The+Wizard+Book"&gt;The Wizard Book&lt;/a&gt; addresses the issue in &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-15.html#footnote_Temp_158"&gt;this footnote&lt;/a&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;It&amp;#8217;s remarkable how much energy in the standardization of Lisp dialects has been dissipated in arguments that are literally over nothing: Should nil be an ordinary name? Should the value of nil be a symbol? Should it be a list? Should it be a pair? In Scheme, nil is an ordinary name, which we use in this section as a variable whose value is the end-of-list marker (just as true is an ordinary variable that has a true value). Other dialects of Lisp, including &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt;, treat nil as a special symbol. The authors of this book, who have endured too many language standardization brawls, would like to avoid the entire issue. Once we have introduced quotation in section 2.3, we will denote the empty list as &amp;#8216;() and dispense with the variable nil entirely.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Since this was written, nil has been excised from the Scheme standard&amp;#8212;but the bottom line holds: use &amp;#8216;(), not nil. In an email to the accu-sicp list, Mike notes:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;It&amp;#8217;s a troublesome thing, this nil/null/&amp;#8217;() business.  Scheme48 and&lt;br /&gt;scm don&amp;#8217;t define null, and guile defines it but as a procedure akin to&lt;br /&gt;common lisp&amp;#8217;s null (to go with its nil which behaves like cl&amp;#8217;s nil,&lt;br /&gt;which itself is distinct from &amp;#8216;()&amp;#8212;maybe this had something to do&lt;br /&gt;with fsf&amp;#8217;s plans to re-do emacs in guile).  I think the best bet is to&lt;br /&gt;replace the authors&amp;#8217; use of nil with &amp;#8216;().&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h3&gt;What&amp;#8217;s the difference between Lisp and Scheme?&lt;/h3&gt;


	&lt;p&gt;Sorry, I don&amp;#8217;t have a definitive answer to that. Scheme is a Lisp dialect. The best known Lisp dialect is probably &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt;&amp;#8212;which is rather bigger than Scheme. Here are some relevant links:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://linkit.fractalconcept.com/"&gt;http://linkit.fractalconcept.com/&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.cliki.net/"&gt;http://www.cliki.net/&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://wiki.alu.org/"&gt;http://wiki.alu.org/&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Holger had this to say about the difference between Scheme and &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt;:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I think a good comparison is the difference between Modula-2 and Ada (only that with Scheme v CL it is a bit larger a difference).  One language is designed of elegance of simplicity while the other is meant for industrial strength application developments (CL has the added &amp;#8216;feature&amp;#8217; of carrying a few decades of historical cruft with it while Ada might suffer more from design by committee).&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;&lt;span class="newWikiWord"&gt;Mike&lt;a href="http://wiki.wordaligned.org/sicp/new/Mike"&gt;?&lt;/a&gt;&lt;/span&gt; also notes:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;My impression so far is that if I do much Scheme I&amp;#8217;ll probably end up using different implementations for different things.  Guile has a lot of good things for &lt;span class="caps"&gt;GNU&lt;/span&gt;/Linux environments, but is not much good if I want the program to run on windows, I think, and hasn&amp;#8217;t the full numeric tower (this may have changed in versin 1.8 just out).  I&amp;#8217;ve started using scsh instead of bash or perl for scripts, and it runs on scheme48.  And then there&amp;#8217;s bigloo which looks like the most promising of the scheme compilers for targetting the .Net runtime.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;This situation contrasts with &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt; where I think I can just pick one of sbcl or &lt;span class="caps"&gt;GNU&lt;/span&gt; clisp and stick with it (although sbcl seems more complete while it sounds like &lt;span class="caps"&gt;GNU&lt;/span&gt; clisp has a better windows port, but at least the code wouldn&amp;#8217;t need to change as much between them&amp;#8212;if at all?).  And the tools seem to be more mature for &lt;span class="caps"&gt;CL &lt;/span&gt;(slime looks wonderful), the module system is standardized, and there seems to be more handy libraries, which also look more mature. Someday, assuming a Scheme community continues to work away as they are now, I think I&amp;#8217;d rather use Scheme than CL, but right now it looks like CL is the more serious language for general use, so that&amp;#8217;s on my list to learn when we&amp;#8217;re finished here (or sooner).&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h3&gt;Implementing the Fibonacci Series is nice, but can I write a &lt;span class="caps"&gt;GUI&lt;/span&gt; using Scheme?&lt;/h3&gt;


	&lt;p&gt;I know what you mean. I guess &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/CommonLisp"&gt;Common Lisp&lt;/a&gt; is a better starting point. Holger has had some good results using &lt;a href="http://www.peter-herth.de/ltk/"&gt;LTK&lt;/a&gt;, which describes itself as &amp;#8220;The easy way to do Lisp &lt;span class="caps"&gt;GUI&lt;/span&gt; programming&amp;#8221;, and provides a Common Lisp binding for the Tk graphics toolkit. Apparently no knowledge of Tk is required.&lt;/p&gt;


	&lt;p&gt;Holger also notes:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I vaguely remembered that there was some gtk binging for guile. Google found me:&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.gnu.org/software/guile-gtk/."&gt;http://www.gnu.org/software/guile-gtk/.&lt;/a&gt; &lt;/li&gt;
		&lt;li&gt;There is guile Tk: &lt;a href="http://wiki.tcl.tk/GuileTk"&gt;http://wiki.tcl.tk/GuileTk&lt;/a&gt;   (&amp;#8220;A moribund binding of Guile to Tk&amp;#8221;)&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://kaolin.essi.fr/STk/"&gt;http://kaolin.essi.fr/STk/&lt;/a&gt; &amp;#8212;&lt;span class="caps"&gt;R4RS&lt;/span&gt; with Tk bindings.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.scheme.com/csv6.9c/"&gt;http://www.scheme.com/csv6.9c/&lt;/a&gt;&amp;#8212;&lt;span class="caps"&gt;SWL &lt;/span&gt;(seems to be Tk for Chez scheme)&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;PLT &lt;/span&gt;/ Dr Scheme seems to have some graphics capabilities&amp;#8230;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;SICP is great. Can you recommend any other material for a programming language enthusiast?&lt;/h3&gt;


	&lt;p&gt;&lt;a href="http://lambda-the-ultimate.org/"&gt;Lambda the Ultimate&lt;/a&gt; calls itself a &amp;#8220;programming languages weblog&amp;#8221;. I found an interesting thread on reading matter &lt;a href="http://lambda-the-ultimate.org/node/492"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 29 Jul 2006 13:25:15 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/FrequentlyAskedQuestions</guid>
      <link>http://wiki.wordaligned.org/sicp/published/FrequentlyAskedQuestions</link>
    </item>
    <item>
      <title>Progress to Date</title>
      <description>&lt;h2&gt;Where are we?&lt;/h2&gt;


	&lt;p&gt;As I write this (April 2006), we&amp;#8217;re well into Chapter 2 of the book, which starts to talk about layers of abstraction,  data structures and so on.&lt;/p&gt;


	&lt;p&gt;Chapter One, &amp;#8220;Building Abstractions with Procedures&amp;#8221; went into some detail on the Lisp evaluation model, before covering:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;recursive and iterative processes&lt;/li&gt;
		&lt;li&gt;the space/time complexity of a program&lt;/li&gt;
		&lt;li&gt;functional programming&lt;/li&gt;
	&lt;/ul&gt;


&lt;hr/&gt;&lt;br /&gt;&lt;&lt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/A+Few+Lines+of+Code"&gt;A Few Lines of Code&lt;/a&gt; | ^ &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ProgressReport"&gt;Progress Report&lt;/a&gt; | &gt;&gt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Recursion+and+Iteration"&gt;Recursion and Iteration&lt;/a&gt;</description>
      <pubDate>Sun, 16 Jul 2006 18:20:58 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Progress+to+Date</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Progress+to+Date</link>
    </item>
    <item>
      <title>A Few Lines of Code</title>
      <description>&lt;h2&gt;A Few Lines of Code&lt;/h2&gt;


	&lt;p&gt;As already mentioned, the book uses Scheme as a language for teaching. Yet Scheme itself is never really taught:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;In teaching our material we use a dialect of the programming language Lisp. We never formally teach the language, because we don&amp;#8217;t have to. We just use it, and students pick it up in a few days.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Amazingly, this turns out to be true.  I find myself learning the language by using it. Sure, some of the exercises are there to help me on my way, but most of them are aimed at discovering more fundamental things about programming.&lt;/p&gt;


	&lt;p&gt;Scheme is also a powerful language. You don&amp;#8217;t have to type a whole lot, and, by virtue of the interpreted environment, you can reshape and test your code as you go. There&amp;#8217;s no need for Makefiles or compilation.&lt;/p&gt;


	&lt;p&gt;Should you require more information on the language, the Standard is available online at: &lt;a href="http://schemers.org/Documents/Standards/R5RS."&gt;http://schemers.org/Documents/Standards/R5RS.&lt;/a&gt; Scheme programs are concise and so too is the standard which, at just 50 pages, is more of a pamphlet than a doorstop.&lt;/p&gt;


&lt;hr/&gt;&lt;br /&gt;&lt;&lt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Report+Schedule"&gt;Report Schedule&lt;/a&gt; | ^ &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ProgressReport"&gt;Progress Report&lt;/a&gt; | &gt;&gt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Progress+to+Date"&gt;Progress to Date&lt;/a&gt;</description>
      <pubDate>Sun, 16 Jul 2006 18:20:08 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/A+Few+Lines+of+Code</guid>
      <link>http://wiki.wordaligned.org/sicp/published/A+Few+Lines+of+Code</link>
    </item>
    <item>
      <title>Report Schedule</title>
      <description>&lt;h2&gt;Schedule&lt;/h2&gt;


	&lt;p&gt;After much discussion and a few iterations, we seem to have settled on a sustainable schedule. Each iteration starts with Mike assigning exercises, one per student per day. As an example, here&amp;#8217;s the schedule for the last few exercises in Chapter One.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Thu 23rd March, Tim, Exercise 1.41&lt;/li&gt;
		&lt;li&gt;Fri 24th, Pal, 1.42&lt;/li&gt;
		&lt;li&gt;Mon 27th, Jan, 1.43&lt;/li&gt;
		&lt;li&gt;Tue 28th Mike, 1.44&lt;/li&gt;
		&lt;li&gt;Wed 29th Thomas, 1.45&lt;/li&gt;
		&lt;li&gt;Thu 30th Martin, 1.46&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;So, this particular round of exercises starts with Tim submitting his solution to Exercise 1.41 to the email list on Thursday 23rd March. Everyone then comments on this solution. On Friday, Pal&amp;#8217;s solution to the next exercise gets posted.&lt;/p&gt;


	&lt;p&gt;This schedule might seem rather ambitious, but, since the book contains over 350 exercises, we need to keep things moving. As you can see, we get the weekends off, and, if someone can&amp;#8217;t complete an exercise, he just says so and anyone else is free to step in. Besides, many of the exercises are trivial, and nearly all can be answered in just a few lines of code.&lt;/p&gt;


&lt;hr/&gt;&lt;br /&gt;&lt;&lt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Mentored+Developer+Projects"&gt;Mentored Developer Projects&lt;/a&gt; | ^ &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ProgressReport"&gt;Progress Report&lt;/a&gt; | &gt;&gt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/A+Few+Lines+of+Code"&gt;A Few Lines of Code&lt;/a&gt;</description>
      <pubDate>Sun, 16 Jul 2006 18:19:48 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Report+Schedule</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Report+Schedule</link>
    </item>
    <item>
      <title>Progress Report</title>
      <description>&lt;h2&gt;The &lt;span class="caps"&gt;ACCU SICP &lt;/span&gt;Project&amp;#8212;a Progress Report&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Report+Introduction"&gt;Report Introduction&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Mentored+Developer+Projects"&gt;Mentored Developer Projects&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Report+Schedule"&gt;Report Schedule&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/A+Few+Lines+of+Code"&gt;A Few Lines of Code&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Progress+to+Date"&gt;Progress to Date&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Recursion+and+Iteration"&gt;Recursion and Iteration&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Functional+Programming"&gt;Functional Programming&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Joining+In"&gt;Joining In&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Not+all+Languages+are+Equal"&gt;Not all Languages are Equal&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Report+End"&gt;Report End&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;</description>
      <pubDate>Wed, 21 Jun 2006 20:57:39 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/ProgressReport</guid>
      <link>http://wiki.wordaligned.org/sicp/published/ProgressReport</link>
    </item>
    <item>
      <title>Recursion and Iteration</title>
      <description>&lt;h3&gt;Recursion and Iteration&lt;/h3&gt;


	&lt;p&gt;Scheme does not need any special looping construct&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt; since recursive procedures (that is, procedures which call themselves) can be used to implement iterative processes. The classic example is the factorial function, which we might consider implementing using a recursive procedure:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;    (define (factorial n)
      (if (= n 1)
          1
          (* n (factorial (- n 1)))))      
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


	&lt;p&gt;This turns out to be an expensive implementation, since, to evaluate a particular factorial, the Scheme interpreter needs to build a chain of deferred multiplication operations, which can only be applied when it finally reduces the input argument to to the special case value, 1. We have here a recursive procedure which generates a recursive process.&lt;/p&gt;


	&lt;p&gt;By contrast:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;    (define (factorial n)
      (define (iter product counter)
        (if (&amp;gt; counter n)
            product
            (iter (* counter product)
                  (+ counter 1))))
      (iter 1 1))
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


	&lt;p&gt;uses a recursive procedure &lt;code&gt;iter&lt;/code&gt; to implement an iterative process. At any point in the calculation of a &lt;code&gt;factorial&lt;/code&gt;, the complete state of the function is held in just three variables, &lt;code&gt;product&lt;/code&gt;, &lt;code&gt;counter&lt;/code&gt;, and &lt;code&gt;n&lt;/code&gt;.&lt;/p&gt;


	&lt;p&gt;Some points for the curly-bracket language readers.&lt;/p&gt;


	&lt;p&gt;0) Notice the nested inner function, &lt;code&gt;iter&lt;/code&gt;, which has been scoped within the &lt;code&gt;factorial&lt;/code&gt; function since it has no real use outside this scope. Scheme also supports unnamed, or &lt;em&gt;lambda&lt;/em&gt; functions.&lt;/p&gt;


	&lt;p&gt;1) I could have used the usual mathematical symbol, !, for factorial,    if I wanted.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;    (define (! n)
       ... )

    (! 9)
    ;Value: 362880
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


	&lt;p&gt;(Note that in Scheme, logical not is written &amp;#8220;not&amp;#8221;.)&lt;/p&gt;


	&lt;p&gt;It appears that pretty much any contiguous combination of non-whitespace symbols can be used to name a function. For example, the built-in increment function is &lt;code&gt;1+&lt;/code&gt;, which we could happily alias to &lt;code&gt;++&lt;/code&gt; if we wanted:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;    (define ++ 1+)
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


	&lt;p&gt;Predicates often end with a question mark, which reads nicely.   &lt;br /&gt;&lt;pre&gt;&lt;code&gt;    (if (even? n) ...)
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


	&lt;p&gt;2) Numbers aren&amp;#8217;t constrained to fit into a fixed number of bits, so we can calculate:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;   (! 2006)
   ;Value: 2144794478704779 ... 000000
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;I was also pleased to find that Scheme builds in support for rational and complex numbers:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;   (+ 7 (/ (sqrt -1) 3))
   ;Value: 7+1/3i
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;


	&lt;h3&gt;Space/Time Complexity&lt;/h3&gt;


	&lt;p&gt;I don&amp;#8217;t suppose analysis of the space and time requirements of a program will come as anything new to a seasoned programmer, though we may choose to measure rather than analyse. There really is nothing like running an interpreter and directly experiencing the difference between an O(n) and an O(log(n)) implementation of a function to bring the lesson home, though.&lt;br /&gt;&lt;hr/&gt;&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; In fact, Scheme does provide two special forms for looping: &lt;code&gt;do&lt;/code&gt;, and the more general &lt;code&gt;named let&lt;/code&gt;.&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;&lt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Progress+to+Date"&gt;Progress to Date&lt;/a&gt; | ^ &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ProgressReport"&gt;Progress Report&lt;/a&gt; | &gt;&gt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Functional+Programming"&gt;Functional Programming&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 21 Jun 2006 20:56:41 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Recursion+and+Iteration</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Recursion+and+Iteration</link>
    </item>
    <item>
      <title>Functional Programming</title>
      <description>&lt;h3&gt;Functional Programming&lt;/h3&gt;


	&lt;p&gt;The functional style of programming may be a little more novel to curly-bracket programmers. By functional programming, I mean a style of programming where powerful abstractions can be built from higher-order functions&amp;#8212;functions which apply to functions, that is&amp;#8212;and where functions are first-class objects.&lt;/p&gt;


	&lt;p&gt;As an example, here is all we need to implement a function which will n-fold smooth another function. Note the higher-order helper functions, &lt;code&gt;compose&lt;/code&gt;, which forms the composition of two functions, and &lt;code&gt;repeated&lt;/code&gt;, which repeatedly applies a function. Both these helpers are completely general purpose building blocks.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;    (define (compose f g)
     (lambda (x)
       (f (g x))))

    (define (repeated f n)
     (if (= n 1) f
         (compose f (repeated f (- n 1)))))

    (define dx 0.1)

    (define (average . items)
     (/ (apply + items)
        (length items)))

    (define (smooth f)
     (lambda (x)
       (average (f (- x dx))
                (f x)
                (f (+ x dx)))))

    (define (n-fold-smooth f n)
     ((repeated smooth n) f))
&lt;/code&gt;&lt;/pre&gt;

&lt;hr/&gt;&lt;br /&gt;&lt;&lt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Recursion+and+Iteration"&gt;Recursion and Iteration&lt;/a&gt; | ^ &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/ProgressReport"&gt;Progress Report&lt;/a&gt; | &gt;&gt; &lt;a class="existingWikiWord" href="http://wiki.wordaligned.org/sicp/show/Joining+In"&gt;Joining In&lt;/a&gt;</description>
      <pubDate>Wed, 21 Jun 2006 20:55:32 Z</pubDate>
      <guid>http://wiki.wordaligned.org/sicp/published/Functional+Programming</guid>
      <link>http://wiki.wordaligned.org/sicp/published/Functional+Programming</link>
    </item>
  </channel>
</rss>

