aboutsummaryrefslogtreecommitdiff
path: root/aoc2018/day-01/day-01.rkt
blob: b18f7c91008d41d8f2ff68794b1408d4ca33d3b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#lang racket

(require advent-of-code
         threading)

(define deltas
  (~>> (open-aoc-input (find-session) 2018 1 #:cache #true) port->lines (map string->number)))

;; part 1
(for/sum ([delta deltas]) delta)

;; part 2
(for/fold ([seen (set)] [current-frequency 0] #:result current-frequency) ([delta (in-cycle deltas)])
  (define new-frequency (+ current-frequency delta))
  #:final (set-member? seen new-frequency)
  (values (set-add seen new-frequency) new-frequency))