title: How to create a recursive zipWith function in Haskell?
body: <p>So far I have:</p>
  
  <pre><code>miZipWith f [] [] = []
  miZipWith f (x:xs) [] = []
  miZipWith f [] (y:ys) = []
  miZipWith f (x:xs) (y:ys) = f y: miZipWith f xs ys
  
  ----miZipWith f (x:xs) (y:ys) = f x : f y : miZipWith f xs ys
  </code></pre>
  
  <p>But this only "zips" the function f with the second list. How do I include the first list too?</p>
  
  <pre><code>*Main&gt; miZipWith (*2) [1,2,3,4] [5,6,1]
  [10,12,2]
  </code></pre>