title: zipWith-ing List of Integers with List of Functions
body: <p>How can I zip a <code>[Integer]</code> with a <code>[Integer -&gt; Integer -&gt; Integer]</code> to get <code>[Integer -&gt; Integer]</code>?</p>
  
  <p>Example:</p>
  
  <p>I tried:</p>
  
  <pre><code>Prelude&gt; zipWith [1,2,3] (replicate 3 (*))
  </code></pre>
  
  <p>with the desired result of:</p>
  
  <p><code>[(*1), (*2), (*3)]</code></p>
  
  <p>But I got an error:</p>
  
  <pre><code>&lt;interactive&gt;:25:9:
      Couldn't match expected type `(a0 -&gt; a0 -&gt; a0) -&gt; b0 -&gt; c0'
                  with actual type `[t0]'
      In the first argument of `zipWith', namely `[1, 2, 3]'
      In the expression: zipWith [1, 2, 3] (replicate 3 (*))
      In an equation for `it': it = zipWith [1, 2, 3] (replicate 3 (*))
  </code></pre>
  
  <p><strong>EDIT</strong>  <a href="https://stackoverflow.com/users/615030/artyom-kazak">@artyom-kazak</a> corrected me - thank you.</p>
  
  <p>Looks like I can do it with Applicatives:</p>
  
  <pre><code>Prelude Control.Applicative&gt; let f = [(*)] &lt;*&gt; [1,2,3]
  Prelude Control.Applicative&gt; :t f
  f :: [Integer -&gt; Integer]
  </code></pre>
  
  <p>But, can I do this with <code>zipWith</code> alone?</p>