При выполнении (отображать объект) на выходе отображается хорошее представление. Но возможно ли записать это представление в строку? Я мог бы использовать это для лучшей обработки отладочной информации.
Самое близкое, что я мог бы получить, это отобразить объект в .txt, изатем прочитайте его обратно как строку:
(define (to-string obj)
(call-with-output-file "to-string.txt"
(lambda (output-port)
(display obj output-port)))
(call-with-input-file "to-string.txt"
(lambda (input-port)
(define str "")
(let loop ((x (read-char input-port)))
(if (not (eof-object? x))
(begin
(set! str (string-append str (string x)))
(loop (read-char input-port))))
str)))
)
(define obj (cons "test" (make-vector 3)))
(define str (to-string obj))
; str will contain "{test . #(0 0 0)}"