(defn digits [n] (->> n (iterate #(quot % 10)) (take-while pos?) (mapv #(mod % 10)) rseq)) (defn is-palindrome [n] (let [d (digits n)] (= d (reverse d)))) (defn pairs [s] (for [a s b s] [a b])) (defn pow [b e] (reduce * 1 (repeat e b))) (defn largest-palindrome [n] (->> (range (pow 10 (dec n)) (pow 10 n)) (pairs) (map (partial apply *)) (filter is-palindrome) (apply max))) (println (largest-palindrome 3))