aboutsummaryrefslogtreecommitdiff
path: root/advent-of-code/2023/01/1.rkt
blob: 0c69be55083dc11f1819890da78094360f1a4e49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#lang racket

(define fp (open-input-file "input"))
(define sum 0)

(define (get-lines fp)
  (let loop ((lines '()))
    (define l (read-line fp))
    (if (eof-object? l)
      (reverse lines)
      (loop (cons l lines)))))

(define lines (get-lines fp))

(define (extract-number line)
  (define number-list (filter char-numeric? (string->list line)))
  (set! number-list (map (lambda (c)
                           (string->number (list->string (list c))))
                         number-list))
  (+ (last number-list) (* 10 (car number-list))))

(apply + (map extract-number lines))