utils.rkt 390 B

1234567891011121314151617
  1. #lang racket
  2. (provide get-lines
  3. enumerate)
  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 (enumerate lst)
  11. (let loop ((i 1) (ret '()) (remain lst))
  12. (if (null? remain)
  13. (reverse ret)
  14. (loop (+ 1 i) (cons (list (car remain) i) ret) (cdr remain)))))