diff options
| author | Mistivia <i@mistivia.com> | 2024-02-14 18:51:22 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2024-02-14 18:51:22 +0800 |
| commit | 2cedcf3dfdf44863129c84a55218c265075fd229 (patch) | |
| tree | d8456f640288e0bfea86cf60b0bc4e38fe1dce5d /advent-of-code/2023/01/1.rkt | |
| parent | c3e3f8127767541a88c2c211878341f33c03f055 (diff) | |
refactor advent of code 2023 day 02 from c to racket
Diffstat (limited to 'advent-of-code/2023/01/1.rkt')
| -rw-r--r-- | advent-of-code/2023/01/1.rkt | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/advent-of-code/2023/01/1.rkt b/advent-of-code/2023/01/1.rkt new file mode 100644 index 0000000..0c69be5 --- /dev/null +++ b/advent-of-code/2023/01/1.rkt @@ -0,0 +1,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)) |
