- (defn pascals-triangle []
- "Return a lazy seq of rows of Pascal's triangle."
- (letfn [(next-row [row]
- (reduce (fn [v' v] (conj v' (apply +' (take 2 v)))) ; (take 2) returns [1] at the right edge
- [1] ; Left edge
- (take (count row) (iterate rest row))))]
- (iterate next-row [1])))