no title pasted by sz0ka on Wed Feb 27 12:51:40 2013
(use medea) (define keylist '(name foo)) (define (get-value key) (printf "~A: " key) (read-line)) (define (ask) (with-output-to-string (write-json (map cons keylist (map get-value keylist)))) )
Maybe this? (untested) pasted by mario-goulart on Wed Feb 27 13:14:24 2013
(use medea) (define keylist '(name foo)) (define (build-alist-from-user-input key) (printf "~A: " key) (cons key (read-line))) (define (ask) (with-output-to-string (lambda () (write-json (map get-value keylist)))))
build alist, then write json pasted by mario-goulart on Wed Feb 27 13:31:41 2013
(use medea) (define keylist '(name foo)) (define (build-alist-from-user-input key) (printf "~A: " key) (cons key (read-line))) (define (ask) (let ((alist (map build-alist-from-user-input keylist))) (with-output-to-string (lambda () (write-json alist)))))
Or alternatively using call-with-output-string added by DerGuteMoritz on Wed Feb 27 14:10:04 2013
(use medea) (define keylist '(name foo)) (define (get-value key) (printf "~A: " key) (cons key (read-line))) (define (ask) (call-with-output-string (lambda (out) (write-json (map get-value keylist) out))))