<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -217,6 +217,9 @@ You can work this out one line at a time. But the result is pleasing:
 
 The double mocking bird does two things: First, because it incorporates `x.call(y)`, it allows us to break an algorithm into two separate concrete steps. Second, because it takes the resulting function and calls the function with itself, the function can call itself recursively. There are more elegant ways to accomplish recursion, but for our purposes, the important thing is that we can accomplish it without cluttering up the namespace. All we needed was a combinator that (a) duplicated its arguments so we could build a recursive function, and (b) had more than one argument so that we could break an algorithm up into separate steps.
 
+Helpers
+---
+
 Building a recursive function like a divide and conquer algorithm is feasible with combinators, but that making it recurse anonymously adds some accidental complexity we do not need for things like summing squares or rotating matrices. But there's something there worth using on a day-to-day basis: What if instead of building a template method from the top down by specializing the concrete steps, we construct the method from the bottom up using a helper method that works like a combinator?
 
 	def divide_and_conquer(steps)</diff>
      <filename>2008-11-21/templates_double_mockingbirds_and_helpers.md</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>35cc789172d8f7d33022dccb6c868604328310b5</id>
    </parent>
  </parents>
  <author>
    <name>Reg Braithwaite</name>
    <email>rbraithwaite@mdlogix.com</email>
  </author>
  <url>http://github.com/raganwald/homoiconic/commit/0bdff294c77f2fe38c40b58ba09206e742448998</url>
  <id>0bdff294c77f2fe38c40b58ba09206e742448998</id>
  <committed-date>2008-11-21T14:48:46-08:00</committed-date>
  <authored-date>2008-11-21T14:48:46-08:00</authored-date>
  <message>added a heading</message>
  <tree>22cece14ddc05ac62a0d1592a634de7bdb77c7ec</tree>
  <committer>
    <name>Reg Braithwaite</name>
    <email>rbraithwaite@mdlogix.com</email>
  </committer>
</commit>
