Fork me on GitHub
#clojure-norway
<
2023-12-01
>
augustl08:12:28

god morgen, god morgen. Immutable state slukker sorgen!

Fredrik Aubert08:12:41

gledelig morgen!

infosophy08:12:13

Go-morn, og gledelig adventstid! Når sparker AoC igang?

leifericf09:12:53

Åja! Advent of Conde, haha. Makes sense.

leifericf09:12:25

Nedtellingen viser ca. 20 timer 🙂 https://adventofcode.com

leifericf09:12:20

Av annet nytt! Jeg sa opp jobben min i går, og har signert ny kontrakt med Funcom. Returnerer for å jobbe på MMORPG-tech. Det blir stas!

🎉 12
👏 5
Hagenek13:12:48

Apropos AoC, noen som har funnet en elegant løsning på part2? Synes den var helt overraskende vrien med Clojure, mulig jeg er sliten i hodet etter en lang uke..

Hagenek14:12:39

endte opp med dette på part two:

(def digit-dict {"one" "on1e" "two" "tw2o",
                 "three" "th3ree", "four" "4r",
                 "five" "5e", "six" "6e",
                 "seven" "7n", "eight" "eig8th",
                 "nine" "nin9e"})

(defn word->digit [str [word digit]]
  (s/replace str word digit))

(defn words->digit-string [string]
    (reduce word->digit
            string
            digit-dict))


(defn solve-part2 [data]
  (solve-part1 (s/join "\n" (map words->digit-string (s/split-lines data)))))

augustl14:12:01

klarte ikke den første engang, får riktig tall mot eksempelet men feil tall med ekte data. Hashtag noob

Hagenek14:12:38

haha! Det er fordi oppgaven ikke har klargjort hvordan man skal håndtere ting.. Faktisk en dårlig oppgave, så får håpe kvaliteten tar seg opp

augustl14:12:39

ah, fant feilen min

augustl14:12:54

first single digit, og testen har ingen eksempler som får det til å slå feil

Hagenek14:12:28

Er du på part1 nå?

augustl14:12:33

fikk til part1 nå ja

Hagenek14:12:25

Jeg tror at skaperen ønsket at gpt 4 ikke skulle klare oppgaven på dag 1, noe som førte til at den ble mye vanskeligere også enn vanlig.

augustl14:12:57

har ikke klart å få til part2 enda :thinking_face: Selv om testen kjører fint

augustl15:12:03

ah, eighthree skal parses på en morsom måte ja

augustl15:12:59

vet ikke om jeg vil si den var elegant, men… Den subs-matches løser det ihvertfall litt data-orientert, men den føles ikke helt smooth akkurat

augustl15:12:12

føler loop er symptom på at man har litt for lav stdlib-iq, burde kunne gå med en reduce eller mapcat eller noe sånt…

augustl17:12:19

der ja!

(defn subs-matches [re s]
  (loop [s s
         res []]
    (if (seq s)
      (if-let [[idx match] (re-find-idx re s)]
        (recur (subs s (inc idx)) (conj res match))
        (recur (subs s 1) res))
      res)))
ble nå til
(defn subs-matches [re s]
  (when-let [[idx match] (re-find-idx re s)]
    (cons match (lazy-seq (subs-matches re (subs s (inc idx)))))))