(ns microtables-frontend.utils) (defn highest [dir data] (apply max (map dir data))) (defn increment-letter-code [s] (let [l (last s)] (cond (empty? s) [65] (= l 90) (conj (increment-letter-code (subvec s 0 (dec (count s)))) 65) :else (conj (subvec s 0 (dec (count s))) (inc l))))) (defn next-letter [lc] (apply str (map char (increment-letter-code (mapv #(.charCodeAt % 0) lc))))) (def col-letters (iterate next-letter "A"))