Multiplication tables: Difference between revisions

Content added Content deleted
No edit summary
Line 212: Line 212:


=={{header|Clojure}}==
=={{header|Clojure}}==
<lang lisp>
<lang lisp>(let [size 12
trange (range 1 (inc size))
(doseq [s (cons
(apply str (format "%4s" " ") (map #(format "% 4d" %) (range 1 13)))
fmt-width (+ (.length (str (* size size))) 1)
(for [i (range 1 13)]
fmt-str (partial format (str "%" fmt-width "s"))
(apply str (format "% 4d" i) (map #(format "%4s" (str %))
fmt-dec (partial format (str "% " fmt-width "d"))]

(map #(if (>= % i) (* i %) " ")
(doseq [s (cons
(for [j (range 1 13)] j))))))]
(apply str (fmt-str " ") (map #(fmt-dec %) trange))
(println s))
(for [i trange]
(apply str (fmt-dec i) (map #(fmt-str (str %))
(map #(if (>= % i) (* i %) " ")
(for [j trange] j))))))]
(println s)))
</lang>
</lang>