part1.rkt 586 B

12345678910111213141516171819202122
  1. #lang racket
  2. (define fp (open-input-file "input"))
  3. (define sum 0)
  4. (define (get-lines fp)
  5. (let loop ((lines '()))
  6. (define l (read-line fp))
  7. (if (eof-object? l)
  8. (reverse lines)
  9. (loop (cons l lines)))))
  10. (define lines (get-lines fp))
  11. (define (extract-number line)
  12. (define number-list (filter char-numeric? (string->list line)))
  13. (set! number-list (map (lambda (c)
  14. (string->number (list->string (list c))))
  15. number-list))
  16. (+ (last number-list) (* 10 (car number-list))))
  17. (apply + (map extract-number lines))