Pascal's Triangle - Remove hack
There's a simpler way. 

To get the next line


take two copies of the line,
extend them respectively with 0 at the start and with 0 at the end, and
add the corresponding elements.


In Clojure, 

(defn pascal []
  (iterate
    #(mapv + (cons 0 %) (conj % 0))
    [1]))

=&gt; (take 5 (pascal))
([1] [1 1] [1 2 1] [1 3 3 1] [1 4 6 4 1])


This avoids the partitioning. 



Not sure if it's what you're looking for, but showing off was irresistible.