<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,8 +1,10 @@
+; Chapter 5, entitled &quot;Returning Functions&quot;, is where we really start to see the power of functional programming.  It is the types of problems outlined in the chapter where [Clojure](http://clojure.org) really shines.  In fact, many of the functions created by Paul Graham in *On Lisp* are built into Clojure, as I will show below.
+
 ; As always, I will post when the code is &quot;complete&quot;, but my progress can be followed on [Github](http://github.com/fogus/polyglot/tree/master/reading/onlisp).  Also, this post is executable, just copy and paste into a Clojure REPL.
 
 ; pg. 62
 
-; Clojure does not have a typecase function, but one could be made fairly easily by writing a macro that expands into something like:
+; Clojure does not have a typecase function, but one could be made by writing a macro that expands into something like (I stress 'like' as this is not exactly correct):
 
 ;&lt;pre lang=&quot;lisp&quot;&gt;
 (defn joiner [obj]
@@ -13,7 +15,7 @@
 ;&lt;/pre&gt;
 
 
-; Clojure of courser has a multi-method facility that would provide something similar ala:
+; Clojure of courser has a multi-method facility that would provide something similar:
 
 ;&lt;pre lang=&quot;lisp&quot;&gt;
 (defmulti joiner class)
@@ -27,7 +29,7 @@
 (joiner &quot;test&quot;)
 ;&lt;/pre&gt;
 
-; Of course it would be nice if we could use type hints for dispatch and simplify the API.  I will not hold my breath for this (especially since it breaks CLojure's current intent for type hints).
+; Of course it would be nice if we could use type hints for dispatch and simplify the API.  I will not hold my breath for this (especially since it breaks Clojure's current intent for type hints... and my comment on it was ignored :p).
 
 ;&lt;pre lang=&quot;lisp&quot;&gt;
 (defn foo
@@ -38,7 +40,7 @@
 
 ; pg. 63
 
-; One of PG's famous &quot;inventions&quot; is the make-adder function.  He originally presented it as a test for programming language X which is used to determine how such a simple function cannot be easily defined in many (at the time) popular languages.  Of course, since Clojure has closures like Lisp, it's a no-brainer.
+; One of PG's famous &quot;inventions&quot; is the make-adder function.  He [originally presented it](http://www.paulgraham.com/icad.html) as a test for programming language X which is used to determine how such a simple function cannot be easily defined in many (at the time) popular languages.  Of course, since Clojure has closures like Lisp, it's a no-brainer.
 
 ;&lt;pre lang=&quot;lisp&quot;&gt;
 (defn make-adder [n]
@@ -69,10 +71,6 @@
 
 ;&lt;pre lang=&quot;lisp&quot;&gt;
 (defn memoize
-  &quot;Returns a memoized version of a referentially transparent function. The
-  memoized version of the function keeps a cache of the mapping from arguments
-  to results and, when calls with the same arguments are repeated often, has
-  higher performance at the expense of higher memory use.&quot;
   [function]
   (let [cache (ref {})]
     (fn [&amp; args]</diff>
      <filename>reading/onlisp/chapter5.clj</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e14c39279457a4149486b04ef6af77e4ab6356b7</id>
    </parent>
  </parents>
  <author>
    <name>Fogus</name>
    <email>devnull@earthvssoup.com</email>
  </author>
  <url>http://github.com/fogus/polyglot/commit/4de0344dc8743e68b8391fd21f19cfc436b9d8a3</url>
  <id>4de0344dc8743e68b8391fd21f19cfc436b9d8a3</id>
  <committed-date>2008-10-24T10:40:12-07:00</committed-date>
  <authored-date>2008-10-24T10:40:12-07:00</authored-date>
  <message>1st pub version</message>
  <tree>f6d3f044773a5d38d3c596c13f0a0a0a0f4161c8</tree>
  <committer>
    <name>Fogus</name>
    <email>devnull@earthvssoup.com</email>
  </committer>
</commit>
