Skip to content

Instantly share code, notes, and snippets.

@levity
Created August 29, 2012 03:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save levity/fe6844b82d698ee2dd08 to your computer and use it in GitHub Desktop.
Save levity/fe6844b82d698ee2dd08 to your computer and use it in GitHub Desktop.
august clojure dojo mucking-about
; http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR
(ns baclj
(:use [clojure.string :only [split]]))
(def digits [
" _ _ _ _ _ _ _ "
" | _| _||_||_ |_ ||_||_|"
" ||_ _| | _||_| ||_| _|"])
(def input
(partition 4 (split (slurp "numbers.txt") #"\n")))
(println (count input))
(defn nth-digit [lines n]
"0-indexed."
(let [x (* 3 n) x2 (+ 3 x)]
(for [y (range 3)] (subs (nth lines y) x x2))))
(def digit-map
(into {} (for [i (range 9)] [(nth-digit digits i) (+ 1 i)])))
; (doall
; (for [i (range 9)]
; (let [joined (interpose "\n" (nth-digit digits i))]
; (println (apply str joined)))))
(doseq [part input]
(doall (map println part))
(println
(apply str
(for [i (range 9)] (digit-map (nth-digit part i))))
))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment