title: Use logical operator as combine closure in reduce
body: <p>I am trying to reduce an array of <code>Bool</code>s by applying the logical operator <strong>OR</strong> (<code>||</code>) using the following code, however I get an error:</p>
  
  <pre><code>func reduceBools(values: [Bool]) -&gt; Bool {
      return values.reduce(false, combine: ||)
  }
  </code></pre>
  
  <blockquote>
    <p>Ambiguous reference to member '||'</p>
  </blockquote>
  
  <p>Analogously for integers the code works like a charm.</p>
  
  <pre><code>func reduceInts(values: [Int]) -&gt; Int {
      return values.reduce(0, combine: +)
  }
  </code></pre>
  
  <p>I was able to make it work by adding a <code>||</code> function (code below) or using a <code>{ $0 || $1 }</code> closure but I dislike these approaches and I would prefer simply passing the operator.</p>
  
  <pre><code>func ||(lhs: Bool, rhs: Bool) -&gt; Bool {
      return lhs || rhs
  }
  </code></pre>
  
  <p>The same thing happens for the logical <strong>AND</strong> (<code>&amp;&amp;</code>) operator.</p>
  
  <p>How can I make it work without using the hack above?</p>