This page is part of the web mail archives of SRFI 49 from before July 7th, 2015. The new archives for SRFI 49 contain all messages, not just those from before July 7th, 2015.
A naive formatter should be quite trivial to write. However, one that is smart when choosing what to format as S-expressions and what to format as I-expresions, is quite a bit trickier... Hm, now I just couldn't get to sleep, so I wrote one instaed (it i very naive, but works): (define (iformat-head msg) (define (iformat-head sep msg) (if (and (pair? msg) (not (pair? (car msg)))) (let ((sl (iformat-head " " (cdr msg)))) (cons (format #f "~A~A~A" sep (car msg) (car sl)) (cdr sl))) (cons "" msg))) (iformat-head "" msg)) (define (iformat-body ind msg) (cond ((null? msg) "") ((pair? msg) (string-append (iformat ind (car msg)) (iformat-body ind (cdr msg)))) (#t (format #f "~A.\n~A" ind (iformat ind msg))))) (define (iformat ind msg) (if (not (pair? msg)) (format #f "~A~A\n" ind msg) (let ((sl (iformat-head msg))) (format #f "~A~A\n~A" ind (if (equal? (car sl) "") "group" (car sl)) (iformat-body (string-append ind " ") (cdr sl)))))) -- http://redhog.org GPG Public key: http://redhog.org/PGP%20Public%20key.asc Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!