(define (read-file filename) (with-input-from-file filename (lambda () (let loop () (let ((line (read))) (if (eof-object? line) null (cons line (loop)))))))) (define survey-results (read-file "unsafe/survey.results")) (define pm (read-file "unsafe/post.mortem")) (require-library "cgi.ss" "net") (define (extract fieldname database) (map (lambda (rec) (extract-bindings fieldname rec)) database)) (require-library "functio.ss") (define (match fieldname value database) (filter (lambda (rec) (member value (extract-bindings fieldname rec))) database)) (define (list-fields database) (map car (car database))) ; assumes first record has all fields