mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-11 00:00:49 +02:00
15 lines
510 B
Scheme
15 lines
510 B
Scheme
;"pp.scm" Pretty-Print
|
|
(require 'generic-write)
|
|
|
|
(define (pp:pretty-print obj . opt)
|
|
(let ((port (if (pair? opt) (car opt) (current-output-port))))
|
|
(generic-write obj #f (output-port-width port)
|
|
(lambda (s) (display s port) #t))))
|
|
|
|
(define (pretty-print->string obj . width)
|
|
(define result '())
|
|
(generic-write obj #f (if (null? width) (output-port-width) (car width))
|
|
(lambda (str) (set! result (cons str result)) #t))
|
|
(reverse-string-append result))
|
|
|
|
(define pretty-print pp:pretty-print)
|