;; Copyright (C) 2022 ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . (define-module (advent-of-code) #:export (read-file read-file-lines should-equal)) (use-modules (ice-9 textual-ports)) (define (read-file file) (with-input-from-file file (lambda () (get-string-all (current-input-port))) #:encoding "utf-8")) (define (read-file-lines file) (string-split (read-file file) #\newline)) (define (should-equal a b) (unless (equal? a b) (error (format #f "Expected ~A\nActual ~A\n" a b))))