From 2d8cd83c646272c7c4d8f27af0155424d8f183fb Mon Sep 17 00:00:00 2001 From: jao Date: Sun, 9 Oct 2022 16:21:38 +0100 Subject: wee refactoring --- src/geiser/geiser.ss | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/geiser') diff --git a/src/geiser/geiser.ss b/src/geiser/geiser.ss index 960b71a..dae82c0 100644 --- a/src/geiser/geiser.ss +++ b/src/geiser/geiser.ss @@ -9,6 +9,12 @@ geiser:macroexpand) (import (chezscheme)) + (define-syntax as-string + (syntax-rules () ((_ b ...) (with-output-to-string (lambda () b ...))))) + + (define (write-to-string x) (as-string (write x))) + (define (pretty-string x) (as-string (pretty-print x))) + (define (call-with-result thunk) (let ((output-string (open-output-string))) (write @@ -20,17 +26,14 @@ (k `((result "") (output . ,(get-output-string output-string)) (error (key . condition) - (msg . ,(with-output-to-string - (lambda () (display-condition e)))))))) + (msg . ,(as-string (display-condition e))))))) (lambda () (call-with-values (lambda () (parameterize ((current-output-port output-string)) (thunk))) (lambda result - `((result ,(with-output-to-string - (lambda () - (pretty-print - (if (null? (cdr result)) (car result) result))))) + `((result ,(pretty-string + (if (null? (cdr result)) (car result) result))) (output . ,(get-output-string output-string)))))))))) (newline) (close-output-port output-string))) @@ -71,9 +74,6 @@ (map write-to-string (environment-symbols (interaction-environment)))))) - (define (write-to-string x) - (with-output-to-string (lambda () (write x)))) - (define (geiser:eval module form) (call-with-result (lambda () (if module (eval form (environment module)) (eval form))))) -- cgit v1.2.3