X-Git-Url: http://git.jkinsey.net/?a=blobdiff_plain;f=src%2Fadventofcode2019%2Flib.clj;h=e81b3062011eb7d0149008ad82c4ab0cabb12535;hb=ab32e54381280135a0df771d293438c195259dc2;hp=d992475caf866b9d7f992668c6bba59ec390ab53;hpb=f1a195aa5c74e264f1aa82aea8556d0501b5abf7;p=adventofcode2019.git diff --git a/src/adventofcode2019/lib.clj b/src/adventofcode2019/lib.clj index d992475..e81b306 100644 --- a/src/adventofcode2019/lib.clj +++ b/src/adventofcode2019/lib.clj @@ -1,28 +1,35 @@ (ns adventofcode2019.lib - [:require [clojure.string :as str] - [clojure.java.io :as io] - [clojure.java.shell :refer [sh]]]) + [:require [clojure.string :as str] + [clojure.edn :as edn] + [clojure.java.io :as io] + [clojure.java.shell :refer [sh]]]) (defn get-list-from-file ([file-name] - (str/split-lines (str/trim (slurp file-name)))) + (str/split-lines (str/trim (slurp file-name)))) ([file-name split-regex] - (str/split (str/trim (slurp file-name)) split-regex))) + (str/split (str/trim (slurp file-name)) split-regex))) -(def parse-int - #(Integer/parseInt %)) +(defn parse-int [n] + (let [n-val (edn/read-string n)] + (if (number? n-val) + n-val + (throw (Exception. "Not a number!"))))) (defmacro input-file [] (let [bottom-ns (last (str/split (str *ns*) #"\."))] (str "resources/" bottom-ns))) -(defn manhattan-distance [[ax ay] [bx by]] +(defn manhattan-distance [[ax ay] [bx by]] (+ (Math/abs (- ax bx)) (Math/abs (- ay by)))) -(def part1 +(defn mmap [f m] + (zipmap (keys m) (map f (vals m)))) + +(def part1 #(println (str "Part 1: " %))) -(def part2 +(def part2 #(println (str "Part 2: " %))) ;; FIXME: this is still broken but i give up for now