title: Python: Understanding reduce()'s 'initializer' argument
body: <p>I'm relatively new to Python and am having trouble<br>
  with <b>Folds</b> or more specifically, <code>reduce()</code>'s  'initializer' argument</p>
  
  <p>e.g. <code>reduce(function, iterable[, initializer])</code></p>
  
  <p><b>Here is the function...</b><br></p>
  
  <pre><code>&gt;&gt;&gt; def x100y(x,y):
  ...     return x*100+y
  </code></pre>
  
  <p><b>Could someone explain why reduce() produces 44...</b><br></p>
  
  <pre><code>&gt;&gt;&gt; reduce(x100y, (), 44)
  44
  </code></pre>
  
  <p><b>or why it produces 30102 here...</b><br></p>
  
  <pre><code>&gt;&gt;&gt; reduce(x100y, [1,2], 3)
  30102
  </code></pre>