Bringing Clojure to project Euler 19
A function that gives you the sequence of month lengths in a given year: 

(defn month-seq [year]
  (map
    (if (leap-year? year) leap-year-month-length month-length)
    months))


... is all that your count-number-of-times-day-on-nth-of-month function needs. 


I've extended it to accept a year-range as well as day and
date.
I've replaced  


flatten with the simpler mapcat and
reduce  with reductions, to simplify the algorithm.



The result is ... 

(defn count-number-of-times-day-on-nth-of-month
  [year-range day date]
  {:pre [(&gt;= (first year-range) 1900)]}
  (let [month-lengths (mapcat month-seq (range 1900 (inc (last year-range))))
        day-seqs (reductions
                   (fn [s n] (drop n s))
                   week-days
                   month-lengths)
        first-days (map first day-seqs)]
    (-&gt;&gt; first-days
         (drop (+ (* 12 (- (first year-range) 1900)) date))
         butlast
         frequencies
         day)))


For example, 

(count-number-of-times-day-on-nth-of-month (range 1901 2001) :sun 0)




Odds and ends


Your zip function (unused) and main function are each missing a pair of parentheses.
If there is only one arity, there is no need for parentheses around
the argument list and body.


For example, 

(defn zip
  [coll-1 coll-2] (map list coll-1 coll-2))




Edited to correct a sign error in dealing with the date argument to count-number-of-times-day-on-nth-of-month.