aboutsummaryrefslogtreecommitdiff
path: root/2024/aoc-utils.scm
blob: 7fafcc6c25250c0f91442e073898edf7cfedd3d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(define-module (aoc-utils)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-9)
  #:use-module (ice-9 regex)
  #:use-module (ice-9 rdelim)
  #:export (file->list
            lines->number-list))

(define (file->list filename)
  (let ((lines (string-split (call-with-input-file filename read-string) #\Newline)))
    ; Remove EOF token
    (take lines (1- (length lines)))))

(define (lines->number-list lines)
  (map (lambda (line)
         (map string->number (string-split line #\Space)))
       lines))