title: Why is lambda asking for 2 arguments despite being given 2 arguments?
body: <p>This is my code:</p>
  
  <p><code>filter(lambda n,r: not n%r,range(10,20))</code></p>
  
  <p>I get the error:</p>
  
  <p><code>TypeError: &lt;lambda&gt;() takes exactly 2 arguments (1 given)</code></p>
  
  <p>So then I tried:</p>
  
  <p><code>foo=lambda n,r:not n%r</code></p>
  
  <p>Which worked fine. So I thought this will work:</p>
  
  <p><code>bar=filter(foo,range(10,20))</code></p>
  
  <p>but again:</p>
  
  <p><code>TypeError: &lt;lambda&gt;() takes exactly 2 arguments (1 given)</code></p>
  
  <p>Something similar happens for map as well. But reduce works fine. What am I doing wrong? Am I missing something crucial needed in order to use filter or map?</p>