title: Combining vectors by index
body: <p>I am looking to write a function which inputs two vectors of length n, </p>
  
  <p>i.e. [:a :b :c :d :e :f] [1 2 3 4 5 6]. 
  Outputting one vector of length 2n </p>
  
  <p>[:a 1 :b 2 :c 3 :d 4 :e 5 :f 6]. </p>
  
  <p>However, if the second vector being input doesn't match the length of n it will cycle, </p>
  
  <p>i.e. [:a :b :c :d :e :f] [1 2 3]</p>
  
  <p>outputs: [:a 1 :b 2 :c 3 :d 1 :e 2 :f 3].</p>
  
  <pre><code> (defn Swanson [x y] (vec (flatten (interleave x (repeat (count x) y)))))
  </code></pre>
  
  <p>Moreover, the function can also take [x y min max n], where x and y are vectors, min is an index to start the interleaving, max is an index to end the interleaving, and n is a step-size for the interleaving. </p>