尝试引用表达式,它应该足以显示它,并且它更容易操作(比操作字符串更容易):
(display '(+ 1 2))
=> '(+ 1 2) ; a quoted expression
Run Code Online (Sandbox Code Playgroud)
或者,如果你肯定需要一个字符串,在Racket中你可以做这样的事情 - 但是再一次,必须首先引用表达式:
(format "~a" '(+ 1 2))
=> "(+ 1 2)" ; a string
Run Code Online (Sandbox Code Playgroud)
换句话说,使用字符串输出端口:
(define o (open-output-string))
(write '(+ 1 2) o)
(get-output-string o)
(close-output-port o)
=> "(+ 1 2)" ; a string
Run Code Online (Sandbox Code Playgroud)
最后,使用Racket 漂亮的打印库的示例:
(require racket/pretty)
(define o (open-output-string))
(pretty-write '(+ 1 2) o)
(get-output-string o)
(close-output-port o)
=> "(+ 1 2)\n" ; a formatted string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |