title: Scala higher order function that filters even numbers
body: <p>I am relatively new to Scala and have been going through some tutorials on the web. I am currently learning higher-order functions and have come across this example:</p>
  <pre><code>val filter = (predicate: Int =&gt; Boolean, xs: List[Int]) =&gt; {
    for (x &lt;- xs if predicate(x)) yield x
  }
  </code></pre>
  <p>The function filters even values from a list.. but I cannot figure out which parameters the function call takes.</p>
  <p>I also have another questions:</p>
  <ul>
  <li>Can someone explain what the: <code>predicate: Int =&gt; Boolean</code> parameter is doing?</li>
  <li>And what if I did this: <code>predicate: Int =&gt; Boolean =&gt; Boolean</code>?</li>
  </ul>
  <p>I am a little confused to how that chaining pattern works...</p>