Welcome to the CHICKEN Scheme pasting service

my retarded escape from badly written logfiles added by C-Keen on Fri Sep 9 13:05:05 2011

(use data-structures srfi-13 srfi-1)

; parses lines like
; sintel_fps_30_res_352:288_lvl_2.1.mkv MEASURING total frames :1850, dropped frames: 1425.

(define f (with-input-from-file "sintel.txt" read-lines))

(define-record measurement name fps resolution level total-frames dropped-frames)
(define name-fields `("_" ((name 0)
                           (fps 2)
                           (resolution 4 ,(lambda (r) (let ((l (string-split r ":")))
                                                        (cons (string->number (car l))
                                                              (string->number (cadr l))))))
                           (level 6 ,(lambda (l) (string-take l 3))))))

(define result-fields `(" " ((#f 0 ,(lambda (f) (get-fields f name-fields)))
                             (total-frames 4 ,(lambda (l) (string->number (string-filter char-set:digit l))))
                             (dropped-frames 7 ,(lambda (l) (string->number (string-filter char-set:digit l)))))))


(define (get-fields line fields)
  (let ((line (string-split line (car fields))))
    (let loop ((fs (second fields))
               (res '()))
      (cond ((null? fs) (flatten (reverse res)))
            (else (let* ((f (car fs))
                         (n (car f))
                         (t (list-ref line (second f)))
                         (c (and (= (length f) 3) ((third f) t)))
                         (r (if n (list n (or c t))
                                (or c t))))
                    (loop (cdr fs) (cons r res))))))))


(define (field-ref name f)
  (cond ((member name f) => cadr)
        (else (error "No such field name " name))))

(print " (map (lambda (f) (get-fields f result-fields)) f)")

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Given a list, which one-argument R5RS procedure returns the element at index 0?
Visually impaired? Let me spell it for you (wav file) download WAV