Skip to content

Instantly share code, notes, and snippets.

View asandroq's full-sized avatar

Alex Silva asandroq

View GitHub Profile
;; made tail-recursive
;; constant stack use
(define (file-lines file)
(call-with-input-file file
(lambda (port)
(let loop ([line (read-line port)]
[l '()])
(if (eof-object? line) (reverse l)
(loop (read-line port) (cons line l)))))))
(define-syntax define-page
(syntax-rules ()
((_ name title headers body ...) (define (name #!rest params)
(let* ([post-data (process-request)]
[form-data (if post-data
(append post-data
params)
params)])
(html-body name
(lambda ()