(ns adventofcode2019.lib
- [:require [clojure.string :as str]
- [clojure.edn :as edn]
- [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)))
(defn parse-int [n]
(let [n-val (edn/read-string n)]
(if (number? n-val)
- n-val
- (throw (Exception. "Not a number!")))))
+ 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))))
(defn mmap [f m]
- (reduce-kv #(assoc %1 %2 (f %3)) {} m))
+ (zipmap (keys m) (map f (vals m))))
-(def part1
+(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