(require 'clojure.string) (def escapes {\< "<", \> ">", \& "&"}) (defn escape [content] (clojure.string/escape content escapes)) (defn tr [cells] (format "%s" (apply str (map #(str "" (escape %) "") cells)))) ;; turn a seq of seq of cells into a string. (defn to-html [tbl] (format "%s" (apply str (map tr tbl)))) ;; Read from a string to a seq of seq of cells. (defn from-csv [text] (map #(clojure.string/split % #",") (clojure.string/split-lines text))) (defn -main [] (let [lines (line-seq (java.io.BufferedReader. *in*)) tbl (map #(clojure.string/split % #",") lines)] (println (to-html tbl)))