As other people already said, this way of doing things is not the most "safe and beautiful" way of getting what you need done. If "long-code" is really long and important, I suggest investigating other solutions.
As Eli pointed out there are many weird conventions to pay attention depending on your shell. When you pass the string with quotes as in your example, I get an error like this: /bin/sh: Syntax error: EOF in backquote substitution Because bash is waiting for a second `. Using a string would also make it difficult to write strings, because you'd need to escape the double-quotes "\"this is a string\"" (and they will most likely conflict with your shell). The code below will show how the external code will be called and the stdout/stderr (so you can see what's going wrong). Using a quoted form instead of a string hides the problem of having ` and ' and instead use quasiquote and quote. []'s Rodolfo Carvalho #lang racket (define external-code (format "/opt/racket/bin/racket -e \" ~a \"" '(begin (require mzlib/defmacro) (define-macro (my-when test . body) `(if ,test (begin ,@body) '())) (my-when #t '(5 6 7))))) (displayln external-code) (newline) (display (string-join (let* ([p (process external-code)] [stdout (first p)] [stderr (fourth p)]) (map port->string (list stdout stderr))) "")) On Tue, Sep 13, 2011 at 08:22, Niitsuma Hirotaka < hirotaka.niits...@gmail.com> wrote: > > You could try something like this: > > #lang racket > > (require racket/system) > > (display (port->string (car (process (format "racket -e '~a' " '(+ 2 > 3)))))) > > That does not work in the following case > > (display (port->string (car (process (format "racket -e \" ~a \" " > " > (require mzlib/defmacro) > (define-macro (my-when > test . body)`(if ,test (begin ,@body) '() )) > (my-when #t '(5 6 7)) > " > ))))) > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users >
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users